java学习笔记2--面向对象编程( 八 )


20.3 包装类转为基本数据类型
包装类转为基本数据类型,可以进行运算;常用自动拆箱
//方式1:通过包装类的xxxValue()方法Integer i = new Integer(123);int i1 = i.intValue();System.out.println(i1);//方式2:自动拆箱int i2 = i;System.out.println(i2);
20.4 基本数据类型、包装类转为
//方式1:直接与""连接Integer i = new Integer(123);String s = i + "";System.out.println(s);//方式2:调用String的valueOf()方法int i1 = 234;String s1 = String.valueOf(i1);System.out.println(s1);
20.5 转为基本数据类型
使用包装类的()方法,返回值类型是基本数据类型;
使用包装类的()方法;
没有()方法,使用的()方法就行;
int i2 = Integer.parseInt(s1);System.out.println(i2+1);
20.6 面试题 20.6.1 习题1
类中内置了一个数组,里面存放的是[-128,127]的所有整数,如果使用自动装箱的方式赋值并且数值在[-128,127],那么就可以直接使用数组中的元素,不用new新的对象,提高了效率;如果超过这个范围,就需要new新对象;
public void method1() {Integer i = new Integer(1);Integer j = new Integer(1);System.out.println(i == j); // falseInteger m = 1;Integer n = 1;System.out.println(m == n);// trueInteger x = 128;Integer y = 128;System.out.println(x == y);// false}
20.6.2 习题2
通过方法可以得知,缓存在第一次使用时初始化,所以说如果已经创建了一个缓存中的整数,使用创建第二次时,不会使用new关键字,而用已经缓存的对象 。所以使用方法创建两次对象,若对应的数值相同,且数值在-128~127之间时,两个对象都指向同一个地址 。i = 400这样的方式来创建对象,与方法的效果是一样的 。

java学习笔记2--面向对象编程

文章插图
public static Integer valueOf(int i) {if (i >= IntegerCache.low && i <= IntegerCache.high)return IntegerCache.cache[i + (-IntegerCache.low)];return new Integer(i);}
20.7 int和进行比较
int1 ==,是int的封装类,当与int进行==比较时,就会拆箱成一个int类型,所以还是相当于两个int类型进行比较,这里的,不管是直接赋值,还是new创建的对象,只要跟int比较就会拆箱为int类型,所以就是相等的 。
21.关键字
完整笔记
21.1 意义
我们有时候希望无论是否产生对象,无论产生了多少个对象,某些特定的内容在内存中只有一份,这样可以节省内存空间 。
21.2 使用
可以用来修饰属性、方法、代码块、内部类,表示这些内容都是属于类的,所有对象共享一份,任何对象去访问修改都是同一个 。
21.2.1 修饰属性21.2.2 修饰方法21.3 细节21.4 内存解析
21.5 什么时候需要静态变量和静态方法 21.5.1 静态变量
如果需要让一个类中的所有对象都共享一个变量,那么就可以考虑静态变量 。例如:定义了一个类,需要统计所有学生个数,可以使用静态变量来做计数器 。
21.5.2 静态方法21.6 单例模式 21.6.1 设计模式定义
设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式 。可以理解为套路 。就像是经典的棋谱,不同的棋局,我们用不同的棋谱 。不同的英雄拥有不同的连招 。
21.6.2 单例模式
定义:所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法 。