1.八个基本数据类型和包装类 及其区别?
基本: byte short char int long float double boolean
包装类: Byte Short Character Integer Long Float Double Boolean
大小/(byte):1 2 2 4 8 4 8 1
区别:基本数据类型放在栈里 编译前确定大小 速度快 功能弱
包装类放在堆里 运行时确定大小 速度慢 功能强
原因:
Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入不是对象的基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从JDK 1.5开始引入了自动装箱/拆箱机制,使得二者可以相互转换
2.什么是装箱 ?什么是拆箱?
装箱:基本数据类型转为包装类
拆箱:包装类转为基本数据类型
3.”==“与”equals()"的区别
主要区别在于前者是方法,后者是操作符
(1)比较java基本类型:
比较基本类型只能用"==",不能用"equals",这里的"=="比较的是两个基本类型的值
(2) 比较String
==比较的是存放内存地址是否相同
equals比较的存放的内容是否相同
4.String,StringBuffer与StringBuilder的区别??String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全
String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的
对于三者使用的总结: 1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
会一直根据自己的学习持续更新的