JAVA基本类型(第1节)

1 JAVA基本数据类型

基本数据类型:

  • 数值型:整数类型(byte,short,int,long)、浮点类型(float,double)
  • 字符型(char)
  • 布尔型(boolean)

1.1 数值类型

1.1.1 整数类型 byte,short,int,long

  1. 整数类型默认值为int
  2. byte:占1字节=8个内存位,取值范围-128~127,即2的8次方
  3. short:占2字节=16个内存位,取值范围约为-32***~32***"(写全我也记不住,所以就记3万2千多就好了),即2的16次方
  4. int:占4字节=32个内存位,取值范围约为-21亿~21亿,即2的32次方
  5. long:占8个字节=64个内存位,取值范围为-2的64次幂~2的64次幂,即2的64次方
  6. 把超过int类型长度的整数赋值给long,需要再数字末尾加上大写的L(推荐)或小写的l,如果整数未超int范围,则可以不加L
byte b = 127;
byte b = 128;// 超范围,报错
short s = 32000;
short s = 40000; // 超范围,报错
int i = 1234567890;
int i = 12345678901; // 超范围,报错
long l1 = 12345678910L;
long l2 = 1234567891L;
long l3 = 1234567891;
System.out.println(l1);// 12345678910
System.out.println(l2);// 1234567891
System.out.println(l3);// 1234567891

拓展:整型不同进制的赋值

int n1 = 10;// 十进制
int n2 = 010;// 八进制,以0开头
int n3 = 0x10;// 十六进制,以0x开头
int n4 = 0b10;// 二进制,以0b开头
int n1 = 10;// 十进制
int n2 = 010;// 八进制
int n3 = 0x10;// 十六进制
int n4 = 0b10;// 二进制
System.out.println("十进制 10 :");
System.out.print(n1);//10
System.out.println("八进制 010 :");
System.out.print(n2);//8
System.out.println("十六进制 0x10 :");
System.out.print(n3);//16
System.out.println("二进制 0b10 :");
System.out.print(n4);//2

 

1.1.2 浮点类型float,double

  1. 浮点类型默认值是double
  2. 浮点类型有float和double两种,float占4字节,double占8字节
  3. float类型需要在末尾追加F或f,double类型因浮点默认类型是double,可以追加D或d,也可以不加
  4. float类型有效数字只有6~7位,有效数字超多7位的float会精度丢失
  5. double类型有效数字只有15~16位
  6. PS:有效数字是指从左往右第一个不是0的数字开始到末尾的所有数字。例如:0.001023,有效数字为4位
float f1 = 3.1415926F;
System.out.println("3.1415926F≈"+f1);// 3.1415926F≈3.1415925 丢失精度
float f2 = 3.14159F;
System.out.println("3.14159F="+f2);// 3.14159F=3.14159
double d1 = 3.1415926;
System.out.println("3.1415926="+d1);// 3.1415926=3.1415926
double d2 = 3.14159265358979323846264338327950288D;
System.out.println("3.14159265358979323846264338327950288D≈"+d2);// 3.14159265358979323846264338327950288D≈3.141592653589793 丢失精度

 

1.2字符类型char

  1. 字符类型char,单引号内的单个字符
  2. char类型只能存储一个字符,不能多也不能少,包括空格字符
  3. 不能存储空字符
  4. 不能存储多个空格
  5. char类型输出的时候只展示字面常量,但是实际存储是存储的该字面常量对应的unicode数字
  6. char类型可以以其对应的编码数字直接用+号和数字字面常量进行计算,也可以直接和数字类型相互转换

 

char c1 = 'a';
System.out.println(c1);
char c2 = 'A';
System.out.println(c2);
char c3 = '1';
System.out.println(c3);
char c4 = '?';
System.out.println(c4);
char c5 = ''; // 会报错,不能存储空字符
char c6 = '  ';// 会报错,不能存储多个空格
char c7 = '\n';// 转义符
System.out.println("aaa"+c7+"bbb");
System.out.println("换行转义符:换行");
System.out.println("aaa\nbbb");
System.out.println("制表符:自动对齐8个字符的整数倍");
System.out.println("aaa\tbbb");
System.out.println("退格符:回退一格开始打印");
System.out.println("aaa\bbbb");
System.out.println("单引号和双引号:");
System.out.println("aaa\'bbb\"");
System.out.println("转义反斜杠\\");
System.out.println("aaa\\bbb");
System.out.println("char类型输出的时候只展示字面常量,但是实际存储是存储的该字面常量对应的unicode数字:");
char c8 = 'a';
System.out.println(c8);// a
System.out.println("char类型可以以其对应的编码数字直接用+号和数字字面常量进行计算:");
System.out.println(c8+1);// 98
System.out.println("也可以直接和数字类型相互转换:");
int i1 = (int) c8;
System.out.println("int i1 = (int) c8 输出i1为:"+i1);// int i1 = (int) c8 输出i1为:97
char c9 = (char) 65;
System.out.println("char c9 = (char) 65 输出c9为:"+c9);// char c9 = (char) 65 输出c9为:A
System.out.println("面试题:");
System.out.println("\'2\'+2=?");
int v1 = '2'+2;
System.out.println(v1);// 52
char v2 = '2'+2;
System.out.println(v2);// 4
//'2'对应的accii值为50,50+2=52,52对应的字符为4

 

1.3布尔类型boolean

  1. 布尔类型只有两个值,true和false
  2. 不支持大写的TRUE和FALSE

 

boolean b1 = true;
//boolean b2 = TRUE; // 报错
boolean b3 = false;
System.out.println(b1);// true
System.out.println(b3);// false

 

posted @ 2021-12-22 16:15  风铃如沧海  阅读(154)  评论(0编辑  收藏  举报