Java基础之基本数据类型容易忽略的问题

Wesley13
• 阅读 447

1.Integer与Long对象初始化

Integer a = 100,b = 100; Integer a1 = 128,b1 = 128; System.out.println(a==b); System.out.println(a1==b1); Long m = 100L,n = 100L; Long m1 = 128L,n1 = 128L; System.out.println(m==n); System.out.println(m1==n1); 执行结果: true false true false

解释说明:

   装箱的本质是什么呢?当我们给一个Integer(Long)对象赋一个int(long)值的时候,会调用Integer类的静态方法valueOf,如果整型字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引用常量池中的Integer对象

参考源码:

Java基础之基本数据类型容易忽略的问题

Java基础之基本数据类型容易忽略的问题

2.自动类型转换

低  ------------------------------------>  高
byte,short,char—> int —> long—> float —> double 
long l = 128L;

float f = l; //long可以自动转成float

应用:switch(expr),expr可以是byte,short,char,int,还可以是枚举

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java 复制Map对象(深拷贝与浅拷贝)
java复制Map对象(深拷贝与浅拷贝)CreationTime2018年6月4日10点00分Author:Marydon1.深拷贝与浅拷贝  浅拷贝:只复制对象的引用,两个引用仍然指向同一个对象
Wesley13 Wesley13
2年前
java中的public void是什么意思
最基本的语法:publicclassHelloWorld{publicstaticvoidmain(Stringargs){System.out.println("HelloWorld");}}java里public是类的访问修饰符,void是表示
Wesley13 Wesley13
2年前
java常用类(2)
三、时间处理相关类Date类:计算机世界把1970年1月1号定为基准时间,每个度量单位是毫秒(1秒的千分之一),用long类型的变量表示时间。Date分配Date对象并初始化对象,以表示自从标准基准时间(称为“历元”(epoch),即1970年1月1日08:00:00GMT)以来的指定毫秒数。示例:packagecn.tanjian
Wesley13 Wesley13
2年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Wesley13 Wesley13
2年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
2年前
Java中的BigDecimal类和int和Integer总结
前言我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题。如下一段代码:System.out.println(0.050.01);System.out.println(1.00.42);System.out.println(4.015100);System.out.println(1
Wesley13 Wesley13
2年前
Java会出现"unreachable code"错误的几个例子
Java会出现"unreachablecode"错误的几个例子1.throw关键字Java代码:publicvoidXXX()throwsThrowable{thrownewThrowable();System.out.println("test");
Wesley13 Wesley13
2年前
Java int与Integer的区别
int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别:int是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象1.Java中的数据类型分为基本数据类型和复杂数据类型int是前者而integer是后者(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为n
Stella981 Stella981
2年前
Integer使用双等号比较会发生什么
话不多说,根据以下程序运行,打印的结果为什么不同?Integera100;Integerb100;System.out.println(ab);//print:trueIntegera200;Integerb200;
Wesley13 Wesley13
2年前
JAVA、python、Go的复制语句
一、JAVA的自增、自减语法//对自增(减)变量来说,"a"和"a"是一样的inta100;System.out.println("a:"a);a;System.out.println("a:"