八大基础数据类型有哪些?
整形:
- byte 一个byte类型在内存中占8位,表示数的范围是-128~+127
- short 16位,-32768~32767
- int 32位,-2147483648~2147483647
- long 64位,(-263)~(263)
浮点型 - float
- double
字符型 - char
- 布尔型
- boolean
小结
所以String类型不属于基础数据类型,但是为什么会有这么一问呢?
分析:
- 当我们在给一个String类型的变量赋值的时候我们是可以不使用 “new” 关键字的, 例如: String name = “小明”; 这样就ok了
- 这种写法和基本数据类型的使用是很像的,如果基础不扎实,整天的业务代码,还真有可能被唬住.
- 再有就是,java中的设计,String类型的值是存储在常量池中的.String类型是我们在编程中经常使用的数据类型.因此java的设计者将String类型做了一定的特殊处理.
String类型在java中的存储:
一小段测试的代码:
结合这个测试我们能得出以下结论:
- str和str1和str2最终存储的都是同一个对象,因为他们的hashCode码是相同的.
- str和str1不但最终存储的对象是相同的,而且直接指向的对象地址也是相同的,因为使用==返回的是true
- str和str2虽然最终存储的对象是同一个对象,但是他们直接指向的对象是不同的,因为打印出来的hashCode码相同但是使用==返回的是false.