博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态导入,断言
阅读量:5965 次
发布时间:2019-06-19

本文共 9048 字,大约阅读时间需要 30 分钟。

静态导入

在JDK 1.5之后提供了静态导入功能,那么什么叫静态导入呢?如果一个类中的方法全部是使用static声明的静态方法,则在导入的时候就可以直接使用“import static”的方式导入,导入的格式如下:

import static 包.类.* ;

 

//静态导入包

import static java.lang.System.out;

import static com.jy.test.Person.show;

 

public class Test {

 

       public static void main(String[] args) {

              System.out.println("adfasdfa");

              out.println("aaaaaaaaa");

              //调用person中的方法

              show();

       }

}

断言

在JDK 1.4之后,Java中增加了断言的功能,那么什么叫断言呢?断言就是肯定某一个结果的返回值是正确的,如果最终此结果的返回值是错误的,则通过断言检查肯定会为用户提示错误信息。断言的定义格式如下所示:

assert boolean表达式 ;

assert boolean表达式 : 详细的信息

 

public class Test {

       public static void main(String args[]){

              int[]  x= {1,2,3} ;         // 定义一个数组,长度为3

              assert  x.length == 0 ;             // 此处断言数组长度为0,肯定是错误的

       }

}

 

 

编译程序:javac Test.java

验证程序:java –ea Test

String的常用操作:

public class str {    //字符串与字符串数组的转换    public static void main(String[] args) {        //字符串与字符串数组的转换        String test1 = "12adc32";        char [] arr1 = test1.toCharArray();        System.out.println(arr1);        //从字符串中取出指定位置的字符,一个汉字占两个字节        System.out.println(test1.charAt(2));//        把一个字符串变为byte数组,也可以吧一个byte数组变成字符串        byte[] byte_test1 = test1.getBytes();        System.out.println(byte_test1);        //再转回去,用构造方法        String ss = new String(byte_test1,0,byte_test1.length);        System.out.println(ss);        //是否包含某个字段        System.out.println(test1.contains("c3"));        //去掉左右空格        String test2 = "  fss daf  ";        System.out.println(test2.trim());        //替换        System.out.println(test2.replaceAll(" ",""));        //截取字符串        String test3 = "123456";        System.out.println(test3.substring(0,2));        System.out.println(test3.substring(0));//直到末尾        //拆分字符串,如果是"|","."需要写成\\|,\\.的形式        String test4 = "fasdf twetwe safasd";        String [] str_spl = test4.split(" ");        System.out.println(Arrays.toString(str_spl));        //查找一个指定的字符串是否存在“你好”        boolean flag = test4.contains("fasdf");        System.out.println(flag);//true        //字符串大小写转换        String test5 = "Zym";        test5 = test5.toLowerCase();        System.out.println(test5);        System.out.println(test5.toUpperCase());        //判断是否以指定的字符串开头或者结尾        System.out.println(test5.startsWith("Z"));        System.out.println(test5.endsWith("m"));        //不区分大小写比较        String test6 = "ZYM";        boolean b6 = test5.equalsIgnoreCase(test6);        System.out.println(b6);        //     返回指定字符在此字符串中第一次出现处的索引。        String sr="aaaaaabbcc";        System.out.println(sr.indexOf("a")); //如果不存在查找的字符,返回-1//         返回指定字符在此字符串中最后一次出现处的索引。        System.out.println(sr.lastIndexOf("a"));//        当且仅当 length() 为 0 时返回 true。        System.out.println(sr.isEmpty());    }}

StringBuffer

线程安全

当一个字符串的内容需要被经常改变时就要使用StringBuffer

在StringBuffer中使用append()方法,完成字符串的连接操作

StringBuffered是线程安全的字符串操作,效率低;

public synchronized StringBuffer append(String str) {

        super.append(str);

        return this;

}

这样写的方法,每次操作后方法返回的都是自身类型this,都可以使用链式访问!!!

public class str {    static StringBuffer stringBuffer;    public static void main(String[] args) {        StringBuffer test = new StringBuffer("1111");        test.append("222").append("3333");        System.out.println(test.toString());    }}

SringBuilder类:

线程不安全,效率高!

        //reverse 字符串反转

               String ss="abc";

               StringBuffer sf1 = new StringBuffer(ss);

               System.out.println(sf1.reverse());

 

StringBuilder si = new StringBuilder(ss);

               System.out.println(si.reverse());

 

System工具类:

System工具类是一些与系统相关的属性和方法的集合,而且在System类中所有的属性都是静态的,要想引用这些属性和方法,直接使用System类调用即可。

public static void main(String[] args) {

              try {

                     int a=1;

                     System.exit(1);//退出JVM

              } catch (Exception e) {

                     e.printStackTrace();

              }finally{

                     System.out.println("finally");

              }

 

       }

 

退出系统后,及使是finally中的代码,也不会被执行!!!

对象生命周期:

新生代的对象,不会垃圾回收;

年老代:可以垃圾回收的;

Runtime

public class TestRunTime {    public static void main(String[] args) {               //创建实例        Runtime rt = Runtime.getRuntime();        //返回 Java 虚拟机试图使用的最大内存量。        long maxMemory = rt.maxMemory();        System.out.println(maxMemory);        long freeMemory = rt.freeMemory();//空闲内存        System.out.println(freeMemory);        System.out.println(maxMemory-freeMemory);//使用内存大小        //        执行本机命令 .调用windows中的记事本        try {            rt.exec("notepad.exe");        } catch (IOException e) {            e.printStackTrace();        }            }}

Object类

clone :如果下代码写的是浅克隆,深刻克隆,需要编码完成;(了解)//空内容的接口成为标志接口;public class Person implements Cloneable{    private String id;    private int age;            public Person() {        super();    }    public Person(String id, int age) {        super();        this.id = id;        this.age = age;    }        public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    //重写Object继承下来的clone方法    @Override    protected Object clone() throws CloneNotSupportedException {                return super.clone();    }    @Override    public int hashCode() {        final int prime = 31;        int result = 1;        result = prime * result + age;        result = prime * result + ((id == null) ? 0 : id.hashCode());        return result;    }    @Override    public boolean equals(Object obj) {        if (this == obj)            return true;        if (obj == null)            return false;        if (getClass() != obj.getClass())            return false;        Person other = (Person) obj;        if (age != other.age)            return false;        if (id == null) {            if (other.id != null)                return false;        } else if (!id.equals(other.id))            return false;        return true;    }    @Override    public String toString() {        return "Person [id=" + id + ", age=" + age + "]";    }        }public class Test {    public static void main(String[] args) {        try {            Person zs = new Person("00123", 20);            Person zz=zs;//zz 和zs都在指向new Person("00123", 20);            Person zs1 =(Person) zs.clone();//出现了一个新的对象在内存中            zs1.setId("123");            System.out.println(zs);            System.out.println(zs1);            System.out.println(zs==zs1);        } catch (CloneNotSupportedException e) {            e.printStackTrace();        }            }}

Objects

Jdk7新增了一个Objects工具类,提供了一些静态方法操作对象,这些方法是“空指针安全的”,比如你不确定一个引用变量是否为null,调用该引用变量的toString()方法会引发NullPointerException异常,如果使用Objects工具类提供的toString()方法就不会引发空指针异常public static void main(String[] args) {        TestObjects tm=null;        //        System.out.println(tm.toString());        String str = Objects.toString(tm);        System.out.println(str);    }

Math类:

public static void main(String[] args) {        // π        System.out.println(Math.PI);        //返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。        System.out.println(Math.random());        //  返回两个 int 值中较大的一个。        System.out.println(Math.max(10, 11));        //返回两个 int 值中较小的一个。        System.out.println(Math.min(10, 11));                        double num=12.4691d;        //round,返回最接近参数的 long。        System.out.println(Math.round(num));//四舍五入        //floor  返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。        System.out.println(Math.floor(num));//去掉小数部分        //ceil(double a)  返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。        System.out.println(Math.ceil(num));//去掉小数部分,整数部分+1    }

Date类:

Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期 。public static void main(String[] args) {        Date date = new Date();        System.out.println(date);        // 格式化时间//        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//        DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//        DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SS");//        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");//        DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");        DateFormat df = new SimpleDateFormat("yy年MM月dd日 HH时mm分ss秒");        String str=df.format(date);        System.out.println(str);                //获得毫秒数        long dd = System.currentTimeMillis();        System.out.println(dd);        SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String format = d.format(dd);        System.out.println(format);                    }

Calendar类(日历)

public static void main(String[] args) {        //获得系统时间        Calendar c = Calendar.getInstance();//实例化        System.out.println(c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DAY_OF_MONTH));        //时间设置        c.set(1990, 3, 12, 16, 19, 30);        System.out.println(c.getTime());    }

NumberFormat类

NumberFormat表示数字的格式化类,     即:可以按照本地的风格习惯进行数字的显示。     public static void main(String[] args) {//        DecimalFormat df = new DecimalFormat("###,###,###.###");//        DecimalFormat df = new DecimalFormat("¥###,###,###.###");//        DecimalFormat df = new DecimalFormat("###,###,###.###%");        DecimalFormat df = new DecimalFormat("###,###,###.###\u2030");//        DecimalFormat df = new DecimalFormat("000,000.000");        System.out.println(df.format(12365.1236d));

 

转载于:https://www.cnblogs.com/taozizainali/p/10801549.html

你可能感兴趣的文章
如何在指定的内容中找出指定字符串的个数
查看>>
我的友情链接
查看>>
浅谈如何用We7站群平台打造垂直性政务网站
查看>>
我的友情链接
查看>>
Traversing Mapping Filtering Folding Reducing
查看>>
Go bytes包
查看>>
Spring MVC请求处理流程分析
查看>>
ORACLE--Connect By、Level、Start With的使用(Hierarchical query-层次查询)
查看>>
生产环境MySQL 5.5.x单机多实例配置实践
查看>>
Web应用工作原理、动态网页技术
查看>>
EXCEL工作表保护密码破解 宏撤销保护图文教程
查看>>
Catalan数(卡特兰数)
查看>>
Linux shell的条件判断、循环语句及实例
查看>>
JPA常用注解
查看>>
简单的设置
查看>>
ORA-00845: MEMORY_TARGET not supported on this system
查看>>
Spring学习总结(5)——IOC注入方式总结
查看>>
常用命令1
查看>>
Block 在不同情况下的变量存储区域
查看>>
js获取自定义属性的值
查看>>