Java基础-Long简析

摘要:
long是long类型的包装器类型。Long的默认零值为null,Long的默认值为0。Long类中有一个静态内部缓存类,用于缓存-128和127之间的长包装对象实例。在类加载期间,LongCache的静态代码块将被初始化,自动装箱的-128和127之间的Long将直接返回缓存数组中的对象引用。经度=125;它直接指向静态常量池中的值。publicstaticLongvalueOf{finantoffset=128;如果{//willcachereturnLongCache.cache[l+offset];}returnnewLong;}//3.注意:如果使用newLong创建的对象总是在堆内存中。请注意,当指定long时,数字后面需要“l”;
  • Long 是long类型的包装类型。
  • Long默认零值为null, long的默认零值为 0.
  • Long类中有个静态的内部缓存类,用来缓存 -128 ~ 127 之间的long包装对象实例,类加载的过程中会对LongCache的静态代码块进行初始化,后面自动装箱的 -128 ~ 127 之间的Long会直接返回缓存数组里面的对象引用。Long i = 125; 会直接指向静态常量池里面的值。
//1. Long的内部类,当Class字节码文件被加载的时候,会执行静态代码块,对cache数组进行初始化。
private static class LongCache {
        private LongCache(){}
        static final Long cache[] = new Long[-(-128) + 127 + 1];
        static {
            for(int i = 0; i < cache.length; i++)
                cache[i] = new Long(i - 128);
        }
}
//2. 后面用Long.valueOf(Long l) 方法获取对应的Long对象的时候,或者直接用“=”给Long类型变量赋值的话,如果缓存数组有,则直接返回缓存数据里的对象引用。
public static Long valueOf(long l) {
final int offset = 128;
if (l >= -128 && l <= 127) { // will cache
return LongCache.cache[(int)l + offset];
}
return new Long(l);
}

//3. 注:如果用 new Long(x) 创建出来的对象始终在堆内存中。

//4. 该特性,int的包装类型Integer类似。
  • Effective java中建议,在循环中不要使用包装类型,会进行频繁的装箱和拆箱动作,严重影响性能。
  • 注意,long 赋值的时候,需要给数字后面带“l”;

(复习笔记整理,若有出入后续修缮)

免责声明:文章转载自《Java基础-Long简析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Unity3D之Mesh(七)绘制长方体DrawerLayout 设置为滑动范围全盘下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql 缓存机制

了解mysql缓存吗(顺丰) mysql缓存机制就是缓存sql 文本及缓存结果,用KV形式保存再服务器内存中,如果运行相同的sql,服务器直接从缓存中去获取结果,不需要在再去解析、优化、执行sql。 如果这个表修改了,那么使用这个表中的所有缓存将不再有效,查询缓存值得相关条目将被清空。表中得任何改变是值表中任何数据或者是结构的改变,包括insert,upd...

使用instruments工具调试性能

Instruments     Instruments是Xcode套件中没有被充分利用的一个工具。很多iOS开发者从没用过Instruments,或者只是用Leaks工具检测循环引用。实际上有很多Instruments工具,包括为动画性能调优的东西。     你可以通过在菜单中选择Profile选项来打开Instruments(在这之前,记住要把目标设置成...

浏览器对象存储数据详解

          浏览器对象存储数据详解   前言       随着需求的发展,浏览器的功能正变的越来越强大,在本地存储数据可以极大的方便人们进行各种操作,如localStroage/sessionStroage等,下面我就记录在项目中碰到然后进行处理的方式,在以后如果有碰到相关或者有更深的理解,会进行补充。   Cookie     Cookie技术是...

Django框架深入了解——Django中的缓存

Django框架深入了解——Django中的缓存 一、Django中的缓存: 前言: ​ 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. 缓存是将一些常用的数...

vue页面配置缓存,使页面跳转时填写的数据不丢失

1、项目文件配置App.vue的内容 <template> <div id="app"> <!--所有界面设置缓存--> <keep-alive> <router-view></router-view> </keep-alive>...

Centos 7 解决free -m 下buff/cache缓存很高

Linux服务器运行一段时间后,由于其内存管理机制,会将暂时不用的内存转为buff/cache,这样在程序使用到这一部分数据时,能够很快的取出,从而提高系统的运行效率,所以这也正是linux内存管理中非常出色的一点,所以乍一看内存剩余的非常少,但是在程序真正需要内存空间时,linux会将缓存让出给程序使用,这样达到对内存的最充分利用,所以真正剩余的内存是f...