首页 > 编程知识 正文

java开发个人博客,java博客系统

时间:2023-05-03 05:56:07 阅读:162966 作者:2953

java对象池技术的出现是为了方便快捷地创建特定对象。 如果需要对象,可以从池中取出一个,如果不在池中,则可以创建一个。 如果需要重复创建相同的变量,可以节省大量时间。 与使用new关键字创建的对象所在的堆空间不同,对象池实际上是内存空间。 本文只是从java用户的角度来讨论java连接池技术,而没有讨论连接池的原理和实现方法。 我个人认为,如果真的要集中于java的话,就必须对这些细节有一定程度的了解。 但是,知道其原理和具体的实现方法并不是必须的。

1、目标池中的对象和堆中的对象

公共类测试{

integerI1=newinteger(1; integerI2=newinteger(1; //i1,i2分别位于堆内不同的存储器空间

system.out.println(I1==I2; 输出假

Integer i3=1; Integer i4=1; //i3,i4是指对象池内的同一内存空间

system.out.println(I3==I4 ); 输出true

//显然i1,i3在不同的存储器空间中

system.out.println(I1==I3 ); 输出假

}

2、8种基本类型包装类和目标池塘

在java中,基本型的包装器几乎都实现了对象池技术,这些类为Byte、Short、Integer、Long、Character、Boolean,其他两种浮点数型的包装器没有实现Byte、Short、Integer、Long和Character这五种整数包类也只能在相应值小于或等于127时使用对象池。 这意味着对象没有责任创建和管理127个以上这些类的对象。 列出了一些对应的测试代码。

公共类测试{

publicstaticvoidmain (string [ ] args ) {

//5种格式化的软件包类型Byte、Short、Integer、Long和Character的对象

//如果值小于127,则可以使用对象池

Integer i1=127;

Integer i2=127;

system.out.println(I1==I2 )//输出true

如果//值大于127,则不从目标池中提取目标

Integer i3=128;

Integer i4=128;

system.out.println(I3==I4 )//输出false

//Boolean类也实现了对象池技术

布尔布尔1=true;

布尔2=true;

system.out.println (bool1==bool 2; 输出true

//浮点类型的包类没有实现目标池技术

Double d1=1.0;

Double d2=1.0;

system.out.println(D1==D2 ) /输出false

}

}

3、String也实现了大象池技术

String类也是java中经常使用的类,同样,为了便于创建String对象,还实现了对象池技术。 测试代码是以下:

公共类测试{

publicstaticvoidmain (string [ ] args ) {

//s1,s2分别位于堆内的不同空间

stringS1=newstring(Hello );

stringS2=newstring(Hello );

system.out.println(S1==S2 ) /输出false

//s3,s4位于池中的同一空间

String s3='hello ';

String s4='hello ';

system.out.println(S3==S4 ); 输出true

}

}

最后的:

细节决定成败,如果要写代码就更不用说了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。