首页 > 编程语言 >java基础

java基础

时间:2022-12-10 12:22:11浏览次数:35  
标签:缓存 java 字节 基础 System Long 取值 out

基本类型包装类注意点:

  Byte, Short, Long,Integer类会将 -128~127范围内的值,创建初始化对象存入jvm内存中缓存。Character 缓存的范围是 0~127。

  以上类的valueof()方法生成的包装类,会先从jvm缓存中获取,缓存中没有才创建。

  valueof方法源码:

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);
    }

  包装类型“==”比较,例:

@Test
    public void test09(){
        Long a = Long.valueOf(2),a1 = Long.valueOf(2);
        System.out.println(a == a1);   // 结果 true
        Long b = 2L,b1 = 2L;
        System.out.println(b == b1);    // true
        Long c = new Long(2),c1 = new Long(2);
        System.out.println(c == c1);   //false
        Long d = 129L,d1 = 129L;
        System.out.println(d == d1);   // false
    }

由上面例子可知,Long b =2L;这种方式的赋值,值在 -128~127范围内,从缓存中获取对象; Long d =129L,不在缓存中,使用new Long()创建新对象。这种模式可叫做"享元模式":将类的某些对象初始化,重复使用。

 基本类型的内存大小和取值范围

byte:  占1字节,取值 -2^7 ~ 2^7-1;

short:  占2个字节,取值 -2^15 ~ 2^15-1;

int:占4个字节,取值 -2^31  ~  2^31-1;

long:占8个字节,取值 -2^63  ~  2^63-1;

float:占4个字节,取值 ... ; double:占8个字节,取值...;

char:占2个字节,取值0 ~ 65535;boolean:占1个字节,取值 true,false;

 

标签:缓存,java,字节,基础,System,Long,取值,out
From: https://www.cnblogs.com/in-here/p/16971275.html

相关文章

  • Linux基础-学会使用命令帮助
    Linux命令及其参数繁多,大多数人都是无法记住全部功能和具体参数意思的。在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助......
  • Linux 基础-文件及目录管理
    在Linux中一切皆文件。文件管理主要是涉及文件/目录的创建、删除、移动、复制和查询,有mkdir/rm/mv/cp/find等命令。其中find文件查询命令较为复杂,参数丰富,功......
  • Linux 基础-新手必备命令
    Linux新手必备命令:tar、grep、which、find、cut等。Linux基础-新手必备命令概述常见执行​​Linux​​命令的格式是这样的:命令名称[命令参数][命令对象......
  • java-net-php-python-jspm智守护学生健康管理系统软件设计与开发计算机毕业设计程序
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • 基础逻辑门
    VerilogHDL简介VerilogHDL设计语言支持3种设计风格:门级,数据流级和行为级。门级和数据流级设计风格通常用于设计组合逻辑电路,而行为级设计风格既可以用于设计组合逻辑电......
  • 解决 JavaScript 中 parseInt() 的一个怪异行为
    原文链接​​SolvingaMysteryBehaviorofparseInt()inJavaScript​​--作者​​DmitriPavlutin​​​​parseInt()​​​是一个内置的​​JavaScript​​​函......
  • java-net-php-python-jspm招警考试模拟题库计算机毕业设计程序
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • 【Java】【数据库】索引为何使查询变得更快?--B+树
    排序数据的二分查找二分查找的时间复杂度是\(O(log_2n)\),明显快于暴力搜索。索引建立索引的数据,就是通过事先排好顺序,在查找时可以应用二分查找来提高查询效率。所以......
  • 方法引用基础使用
    packagecom.Lucky.Function;importjava.util.Arrays;importjava.util.Comparator;importjava.util.stream.Collector;/*方法引用:将已经存在的方法进行引用......
  • Java读取csv导入solr
    publicstaticvoidmain(String[]args){try{//CsvReadercsvReader=null;CsvReadercsvReader=newCsvReader("F:\\ImportData\\01.......