访问修饰符与缓存池

9、访问修饰符,private protected public以及不写的区别
(1)private:同一类内可见。可以修饰对象:变量,方法
(2)default:即默认,同一包内可见,可以修饰对象:变量、方法、接口、类
(3)protected:对同一包内的类和子类可见,,修饰对象:变量、方法不能修饰类
(4)public:所有类可见,修饰对象:类、接口、变量、方法

**跨平台性:**因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。
因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。

8、int和Integer有什么区别
(1)为了编程方便,java有8种基本数据类型。又为了能将这8种基本数据类型当做对象处理,又为每个基本数据类型引入了对应的包装类型。JDK1.5之后,引入了自动拆箱机制,基本数据类型可以和包装数据类型互换。
(2)Ingeter是int的包装类,必须实例化才能使用。Integer变量实际上是对象的引用,指向对象,默认值为null。
(3)int是基本数据类型,不必实例化就可以使用,他直接存数据,默认是0.
(4)Integer和int比较时,只要两个变量的值相等,就是true,因为自动装箱拆箱。
(5)非new生成的Integer变量和new生成的integer变量比较为false。
(6)两个非new生成的integer变量,只要范围在[-128,127]之间就为true。

缓存池

new Integer(123) 与 Integer.valueOf(123) 的区别在于:

  • new Integer(123):每次都会新建一个对象
  • Integer.valueOf(123):会使用缓存池中的对象,多次调用取得同一个对象的引用
Integer x = 100;	//自动装箱,底层调用 Integer.valueOf(1)
Integer y = 100;
System.out.println(x == y);   	// true

Integer x = 1000;
Integer y = 1000;
System.out.println(x == y);   	// false,因为缓存池最大127

int x = 1000;
Integer y = 1000;
System.out.println(x == y);		// true,因为 y 会调用 intValue 自动拆箱返回 int 原始值进行比较
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值