其他分享
首页 > 其他分享> > keypoint

keypoint

作者:互联网

String、stringbuilder、stringbuffer区别:

String源码中的value char数组用final修饰,表明其引用的地址不可改变,另外string的substring和concat等方法,返回值都是value数组复制出来的,因为说string不可改变。

stringbuffer可以说是可修改的string,因为其主要方法都是由synchronized修饰,因而是线程安全的。

stringbuilder是单线程下可变的字符串对象,相较于stringbuffer线程不安全,但是效率更高。

 

对象的深浅复制:浅复制只是单存的复制对象,对于对象内部关于其他对象的引用则不复制。深复制则是对象及其内部的引用都会复制,复制出来的对象跟原来的没有什么关联关系了。

实现浅复制的办法是重写对象的clone方法,直接通过super.clone()方法实现。深复制的办法也可以通过重写clone方法,对对象的每个属性都进行复制,还可以通过对象的序列化把信息存放到磁盘上,然后再通过反序列化解析出,实现深复制,很明显,对于transient修饰的属性,就不会保留下来了。

 

一个十进制的数在内存中是如何存储的:是以原码的补码形式存储的,正数的补码就是其原码,负数的补码是其反码加一,在求反码的过程中是符号位不变,其他位求反。

 

Java支持的基本数据类型:整数型byte、short、int、long,浮点类型float、double,字符型char,布尔型boolean。

 

自动拆装箱:就是指基本数据类型与对应的包装类型之间的一个转化,基本数据类型转包装类型叫装箱,反之则叫拆箱。

 

Integer和int的区别及什么时候用int和Integer:int是基本数据类型,默认值是0,Integer是包装类型,是一个对象,默认值是null,在实际场景中如果需要区分0和null,就可以使用Integer。除此之外,Integer里边定义了整数的最大值和最小值。

 

==比较的是什么:对于基本数据类型,比较的是值,对于引用你类型,比较的是地址。

标签:string,对象,数据类型,int,复制,keypoint,Integer
来源: https://www.cnblogs.com/20158424-hxlz/p/14022660.html