使用静态导入可以使被导入类的静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名
import static java.lang.Math.abs; //静态导入 方法abs public class StaticImport { public static void main(String[] args) { System.out.println(Math.max(123, 45));; System.out.println(abs(3-6)); //静态导入方法 调用时可以省略方法的类名 } }
package tips; public interface Constants { public static final int PORT_NUMBER = 90; public static final String APP_NAME = "DOOLY"; public static class StaticNestedClass {}//子类 } //通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。 例如: import static tips.Constants.*; public class StaticImportTip { public static void main(String []args) { System.out.println(PORT_NUMBER); System.out.println(APP_NAME); System.out.println(StaticNestedClass.class); } }
注:基本数据类型没有可调用的方法,
拆箱与装箱
创建一个类的实例的时候,需要使用关键字new
在Java中给我们提供了基本数据类型的包装类,要创建一个基本数据类型的时候我们按照Java默认的语法,需要使用new关键字来创建一个对象
Integer num=new Integer(10);
在程序中我们直接对num1赋值
Integer num1=10; //装箱 System.out.println(num1); //拆箱
没有报错,在后面输出显示的结果也是10,也没有错误。
这就证明在Java中,Java虚拟机直接根据运行的实际环境给我们将数据类型进行了转换(这里的转换是指在类和基本数据类型之间的转换)
享元设计模式
运用共享技术有效地支持大量细粒度的对象。
解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。
比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象那么内存早就爆了。那么如果要是每个字母都共享一个对象,那么就大大节约了资源。
//享元模式 Integer i1=13; Integer i2=13; //共享,而不是新建一个Integer对象 //如果基本数据类型的对象缓存 <=127,则共享一个对象,所以下列语句打印结果为true System.out.println(i1==i2); Integer i3=Integer.valueOf(144); Integer i4=Integer.valueOf(144); System.out.println(i3==i4); //基本数据类型的对象缓存 >127非共享,结果为false