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