1、JAVA数据类型
JAVA的数据类型
A:基本数据类型
整型:byte、short、int、long
浮点型:float、double
布尔型:boolean
字符型:char
B:引用数据类型
类:class
接口:interface
数组:Array
C:八种基本数据类型的包装类(引用数据类型)
Byte: 类将基本类型 byte 的值包装在一个对象中
Short: 类在对象中包装基本类型 short 的值
Integer:Integer 类在对象中包装了一个基本类型 int 的值
Long: 类在对象中包装了基本类型 long 的值
Float: 类在对象中包装一个基本类型 float 的值
Double: 类在对象中包装一个基本类型 double 的值
Character: 类在对象中包装一个基本类型 char 的值
Boolean: 类将基本类型为 boolean 的值包装在一个对象中
问题
面试官的问题一:JAVA为什么需要这么多数据类型呢?
答:我们电脑上的内存大小是有极限的,我们在使用内存的时候要本着一些原则:
1:使用完毕之后立即释放内存
2:尽量不要浪费内存
3:java的不同的数据类型就是要让使用者按需分配内存大小。
合理开销
面试官的问题二:JAVA基本数据类型的包装类到底能干嘛?
1:存储着这个基本数据类型的最大、最小值
2:表示基本类型 short 的 Class 实例。
3:java的不同的数据类型就是要让使用者按需分配内存大小。
合理开销
面试官的问题三:小周,你工作三年了,有什么难忘的事情?
小周答:
我们公司有一个小郑,下班时间不走,很纠结,因为程序出
错,找不到地方,于是,我挺身而出,帮他解决了。java中的基本数据
类型都有极限值,如果超越这个极限值,将发生无法预知的后果 。
面试官的问题四:程序中遇到带小数点的数据运算如何处理?
Java中遇到带小数点的数都认为是double型,所以开发中尽量不要使用float,如果使用混合数据类型运算会强制转换。遇到浮点数据类型的运算推荐使用BigDecimal,可以保留精度。
面试官的问题五:包装的常量池数组:-128到127
超过了这个范围返回的是一个对象,没有超出,返回的则是一个基本数据类型的值
1:基本概念
比如:请您谈谈对JAVA的数据类型的理解
java只所以对数据进行类型的区分,是为了合理的分配和使用
内存的开销,主要分为两大类型:基本数据类型和引用数据类型
基本数据类型的分类:
整形、浮点型、布尔型、字符型
引用数据类型的分类:
类、接口、数组
那我来详细阐述下基本数据类型:
byte、short、int、long、float、double、boolean、char
这八种类型分别对应八种包装类:
包装类存储着此种基本数据类型的最大值、最小值
2:深度拓展
每一种基本数据类型因为有存储的极限值,如果超过这个值将导致 不可预知的结果
比如:因为超过极限导致的死循环
byte b1=127;
b1++;
System.out.println(b1);//结果不是128
for(byte b=1;i<=Byte.MAX_VALUE;b++){}
混合数据类型进行算时有一些规则:
混合数据类型进行算将先进行类型的统一
将小类型向大类型进行转换,再进行运算。
float f1=3.14f;
System.out.println(3.14==f1);
结果是false
实际项目开发中,不使用float double来进行浮点数的运算
使用BigDecimal来准确的控制精度
Integer包装类在进行声明赋值时有两种方式:
如果是用简便的方法进行则要注意值如果大于127或小于等于127,结果不同
一个表示new对象,一个表示类似于基本数据类型
Integer i1=128;
Integer i2=128;
System.out.println(i1==i2);
System.out.println(i1.equals(i));
JAVA表达中如果数据类型不统一,则要注意运算的规则:
如果遇到不带小数点值默认为int,带小数点的默认为double
类型如果不统一,就进行统一之后再运算
3:项目运用
防止数据类型不统一的情况下产生的强制转换
使用推荐做法:s++
如果是浮点数据类型进行运算推荐使用BigDecimal,它可以保证精度
小心数据类型存储的极限范围,防止溢出
4:常见异常
java.util.InputMismatchException: Value out of range. Value:"129"