1 //DateTyoe数据类型
2 public classDateType {3 public static voidmain(String[] args) {4 //整数类型
5 byte b = 10; //占一个字节,-128~127
6 short s = 20; //占两个字节
7 int i = 30; //占四个字节
8 long x = 88888888888888L; //占八个字节 如果long类型后面加L进行标识最好加大写L,因为小写l太像一了
9 System.out.println(b);10 System.out.println(s);11 System.out.println(i);12 System.out.println(x);13
14
15 //浮点类型
16 float f = 12.3F; //占四个字节
17 double d = 33.4; //占八个字节 小数默认的数据类型是double
18 System.out.println(f);19 System.out.println(d);20
21 //字符类型
22 char c = 'a'; //占两个字节
23 System.out.println(c);24
25 //布尔类型
26 boolean b1 = true;27 boolean b2 = false;28 System.out.println(b1);29 System.out.println(b2);30 }31 }
使用变量的主要事项:
*作用域问题
同一个区域不能使用相同的变量命
*初始化值问题
局部变量在使用之前必须赋值
*一条语句可以定义几个变量
int a,b,c...;
数据类型之隐式转换和强势转换:
隐式转换案列:
A:int + int
B:byte + int 结果分别用byte和int类型接受,看效果
*Java有默认的转换规则
强制转换案例:
A:强制转换问题
*int a =10;
*byte b = 20;
*b = a + b;
B:强制转换格式
*b = (byte)(a + b);
C:
变量和常量相加的坑
1 public classDateType {2 public static voidmain(String[] args) {3 byte b1 = 3;4 byte b2 = 4;5 byte b3 = b1 +b2;6
7 System.out.println(b3);8 #zs#从两方面9 1、byte与byte(或short,char)进行运算的时候会提升为int类型,两个int类型相加结果是int类型10 2、b1和b2是两个变量,变量储存的值是变化的,在编译的时候无法判断里面具体的值,相加有可能会超过byte的取值11 #fzs#
12 byte b4 = 3 + 4;13 System.out.println(b4);14 //3和4都是常量,Java编译器有常量优化机制,就是在编译的时候直接把3和4的结果赋值给b4了
15 }16 }
long与float的取值范围谁大谁小
*进行混合运算的时候,byte,short,char不会相互转化,都会自动类型提升为int类型,其他类型进行混合运算的时候是小的数据类型提升为大的
*byte,short,char -- int -- long -- float -- double
*long:8个字节
*float:4个字节
*IEEE754
*4个字节是42个二进制位
1位是符号位
8位是指数为
00000000 11111111
0到255
1到254
-126到127
23位是尾数为
每个指数为减去127
*A:他们底层存储结构不同。
*B:float表示的数据范围比long的范围要大
*long: 2*63-1
*float:3.4*10^38 > 2*10^38 >2*8^38 =2*2^3^38=2*2^114>2^63-1
字符和字符串参与运算
1 public classDateType {2 public static voidmain(String[] args) {3 System.out.println('a'+1); //98,因为有ASCII码表,a字符对应的是int类型的97
4 System.out.println((char)('a'+1));//相加后等于98,98在ASCII码表对应的是b
5
6 System.out.println("hello"+'a'+1); //任何数据类型用➕与字符串相连接都会产生新的字符串
7 System.out.println('a'+1+"hello");8 }9 }
char字符类型
A:char c = 97; 0到65535
B: java语言中的字符char可以存储一个中文汉字吗?为什么?
可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占用两个字节
所以Java中的字符可以存储一个中文汉字
算术运算符的基本用法
A:什么是运算符
*就是对常量和变量进行操作的符号。
B:运算符的分类
*算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符
C:算术运算符的分类
* +,-,/,%,++,--
D:注意事项
a:+号在Java中有三种作用,代表正号,做加法运算,字符串的连接符
b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
c:/获取的是除法操作的商,%获取的是除法操作的余数
%运算符
当左边的绝对值小于右边绝对值时,结果是左边
当左边的绝对值大于右边绝对值时,结果是余数
当左边的绝对值等于右边绝对值时,结果是0
%运算符结果的符号只和左边有关系,与右边无关
任何一个正整数%2结果不是0就是1可以用来当作切换条件
算术运算符++和--的用法
a:单独使用:
*放在操作数的前面和后面效果一样
举例: int a = 3; a++相当于a = a + 1 ,++a也相当于a = a + 1
b:参与运算使用:
*放在操作数的前面,先自增或者自减,然后再参与运算。
*放在操作数的后面,先参与运算,再自增或者减。
赋值运算符的基本用法
A:赋值运算符有哪些
*基本的赋值运算符:=
把=右边的数据赋值给左边。
b:扩展的赋值运算符啊:+=,-=,*=,/=,%=
+=把左边和右边做加法,任何赋值给左边
关系运算符的基本用法及其注意事项
A:关系运算符有哪些(比较运算符,条件运算符)
*==,!=,>,>=,
注意事项
*无论你的操作是简单还是赋值,结果是boolean类型
*“==”不能写成“=”