java的8大基本类型

java8种基本类型: 占用字节 默认值
整数型:byte short int long 1   2   4   8     0
字符型: char     2       ‘\u0000'
精度型:float double 4           8   0.0
布尔型:boolean 唯一的线索:boolean的大小JVM规范并没有指定。     false





1. 整数型和精度型,容易丢失精度: 
 
    例:


byte a = 128;     //定义一个 byte 类型的变量 a ,把128赋值给 a
System.out.println(a);

float b = 1.3;
System.out.println(a);


*       short c=1;
short c = c + 1;


* float d = 1.3;




这段代码会编译通不过,反馈的信息为"可能丢失精度"
所以我们要了解每个基本类型的取值范围。
像:
byte 范围为: -2^7~2^7-1
short        -2^15~2^15-1
int …………31     31
long 63     63


对于精度型和整数型: 
float 和 double 基本上是没什么区别的 ,唯一的区别就是精度不一样  double 范围比 float 大 
byte short int long  也是范围不同,long最大   byte最小




那么上面的带   *   的代码感觉是对的,因为 1 也是 short 范围内的值,而 1.3 也是 float 范围内的值
但报错的原因是:
1. c 是 short 型,但 c + 1 是 int 型 ,不能显示的转化为 short 型,可以修改为 c =(short)(c + 1)
2. 也是和上面类似, 精度不准确, 应该用强制类型转换  float d =(float)1.3; 这个是java面试题的经典题目
  或者 float d = 1.3f;


这两个是java面试题的经典题目




2 . char 型 :


char 型  能存放 一个 英文字母  ,一个汉字 ,一个数字,一个空格 等等什么之类的符号
它的表现形式为:
char a = '刘 ';
char a = '1 ';
char a ='ab';   //这行代码有错


java经典面试题中就有  java中的能不能存储 一个中文汉字?  
结果是可以的  因为:
在Java中,char类型占2个字节,而且Java默认采用Unicode编码,
以个Unicode码是16位,所以一个Unicode码占两个字节,
Java中无论汉子还是英文字母都是用Unicode编码来表示的。
所以,在Java中,char类型变量可以存储一个中文汉字。
  
3 . boolea 型


System.out.println(3>4);
System.out.println(4>3);

这两行代码打印的是  返回一个 boolean 值,就相当于  一个判断,true是真(对)的,flase假(错)的
false
true





你可能感兴趣的:(java基础)