java面试题(杨晓峰)---第七讲谈谈int和integer有什么区别?
理解装箱和拆箱的过程.
对象由三部分组成:对象头,对象实例,对齐填充.
对象头:一般是十六个字节,分两部分,第一部分:哈希码,锁状态标志,线程持有的锁,偏向线程id,gc分代年龄等,第二部分是类型指针,虚拟机由类型指针指向的类型确定对象的类型.
对象实例:变量和方法,是父类继承或子类定义.
对齐填充:类似占位符的作用,因为内存使用都会被填为八字节的倍数.
1. int和integer
JDK1.5引入了自动装箱与自动拆箱功能,java可根据上下文实现int/Integer,double/Double,boolean/Boolean等基本类型与相应对象之间的自动转换,为开发过程带来极大便利.
对象可以应用常量池,在大量重复数据是可以节省内存,提高速度.
2.注意事项
[1]结果超出范围,大数*大数时可能会出现越界的情况.
[2]基本数据类型转换时,使用类型的声明方式
错:long result=1234567890*24*365
对long result=1234567890L*24*365
[3]慎用基本类型处理货币存储.如采用double常会带来差距,常采用BigDecimal,整形(如果要精确表示分,可将值扩大一百倍转化为整形)解决问题
[4]优先使用基本类型,原则上,避免无意中的装箱,拆箱行为. 尤其是在性能敏感的场合,
[5]如果有线程安全的计算需要,建议考虑使用类型Atomiclnteger,AtomicLong这样的线程安全类.部分比较宽的基本数据类型,比如float,double,甚至不能保证更新操作的原子性,可能出现程序仅读取一半数据位的数据
java面试题(杨晓峰)---第七讲谈谈int和integer有什么区别?的更多相关文章
- java面试题(杨晓峰)---第六讲谈谈动态代理是基于什么原理?
我在编译时不知道,而在运行时知道,那么肯定在运行时给了提示,这个提示就是额外功.好处是可以重复利用相同代码. 代理模式:通过代理静默的解决一些与业务无关的问题,例如远程,安全,事物,日志,资源关闭,. ...
- java面试题(杨晓峰)---第八讲谈谈Vector,ArrayList,LinkedList有何区别?
Vector,ArrayList,LinkedList均为线性的数据结构,但是从现实方式与应用场景中又存在差别. 1 底层实现方式 ArrayList内部数组来实现,LinkedList内部采用双向链 ...
- java面试题(杨晓峰)---第四讲强引用、软引用、弱引用、幻想引用有什么区别?
在java语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象,理解引用对于掌握java对象生命周期和JVM内部相关机制非常有帮助. 今天问题:强引用.软引用.弱引用.幻想引 ...
- java面试题(杨晓峰)---第五讲String、StringBuffer、StringBuilder有什么区别?
线程 字符 操作频繁度 1 String (1)String的创建机制 由于String在java世界中使用过于频繁,java为了避免在一个系统中产生大量重复的String对象,引入了字符串常量池,其 ...
- Java面试题(1):详解int与Integer
Java面试题(1):详解int与Integer int与Integer的区别 int是Java的基本数据类型之一,Integer是int的包装类 int直接再内存中储存值,Integer进行new操 ...
- java面试题(杨晓峰)---以面试题为切入点,有效提升你的java内功
java是一门历史悠久的编程语言,可以毫无争议的说,java是最主流的编程语言之一.全球有1200万以上的java程序猿以及海量的设备,还有无所不能的java生态圈. 我所知道的诸如阿里,京东,百度, ...
- java面试题(杨晓峰)---第二讲Exception和Error有什么区别?
本人总结: Exception和Error:正常问题和意外问题,以自行车举例:没气和爆胎. ①理解Throwable,Exception,Error的设计和分类. ②掌握哪些应用最广泛的子类, ③如何 ...
- java面试题(杨晓峰)---第一讲谈谈你对java平台的理解
本人总结: 面向对象(封装,继承,多态) 平台无关性(jvm运行,class文件) 语言(泛型,lambda) 类库(集合,并发,网络,io/nio) jre(java运行环境,JVM,类库) JDK ...
- java面试题(杨晓峰)---第三讲谈谈final、finally、finalize有什么不同?
java语言有很多看起来相似,但用途却完全不相同的语言要素,这些内容往往容易成为面试官考察你知识掌握程度的切入点. 今天我要问你一个基础的java经典题目,谈谈final.finally.finali ...
随机推荐
- 6. webshell文件上传分析溯源
这道题也是借助大佬的帮助才成功,具体我们来看: 既然人家扫描发现后台目录有文件上传,我们也不能落后,顺便拿出了传说中的御剑,并进行一波扫描: 发现了几个比较有用的目录,特别是upload1.php跟u ...
- Go中函数作为值、类型传递。
在Go中函数也是一种变量,我们可以通过type来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型 type typeName func(input1 inputType1 , input ...
- 虚拟机vmware11装Mac ox 10.8 解决windows8.1下unlocker202 vmxsmc.exe已停止工作的问题
转载:http://tieba.baidu.com/p/3485956366 先说说故事吧,相信很多图钉都用过VMware Workstation这个软件.我系统是win8.1up1,之前用VMwar ...
- TSubclassOf的一些说明
注:补充下SpawnActor的用法 TSubclassOf<AActor> TS = LoadClass<AActor>(NULL, TEXT("Blueprint ...
- 51nod1101(dp)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1101 题意:中文题诶- 思路:dp 我们用dp[i][j]存 ...
- codeforces494C Helping People【treedp+概率dp】
区间不交叉,可以看出区间构成了树形结构,建出树之后,设f[u][i]为u这个区间最大值最多加i的概率,转移是\( f[u][i]=p[u]*\prod f[v][mxu-mxv-1]+(1-p[u]) ...
- Ubuntu英文版中无法输入中文标点符号的问题
问题: 不管是中文还是英文输入法,输入的标点符号都是英文的 解决方法: ctrl + . 进行切换,一个是lation 符号,一个是全角符号
- 原型设计模式(prototype
# 什么是原型设计模式 > 这里与软件工程中的原型开发模式有那么一点类似的地方,我们首先需要构建出一个原型,这个原型可以在现实开发中抽象出来的具体类型,但是这个类型与具体的类又不同,需要抽取公共 ...
- HDU-1068-GirlsandBoys(最大独立集,二分图匹配)
链接:https://vjudge.net/problem/HDU-1068#author=0 题意: 学校对n个学生(男女都有)进行的调查了,发现了某些学生暗生情愫,现在需要你选出一个最大的集合,这 ...
- HTML——表单
总结: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...