目录
四、数据类型(基本数据类型,四类八种:整数、浮点、字符、布尔)
一、表达式、语句、代码块
- 表达式:Java中最基本的一个运算,比如一个加法运算表达式,1+2、2+8……
- 语句:类似于一句话,由表达式组成,以 ; 结束。如: a = 1+3; System.out.println(y); 都是语句
- 代码块:一对大括号括起来的就是代码块
二、基本点
- 关键字和标识符都是区分大小写的
- 类名必须与文件名一致,包括大小写要求
- 使用变量时,名字必须和声明变量时的标识符大小写一致
- 方法名也区分大小写,main和Main是两个名字
- 类型写区分大小写。int是数据类型,Int则不是
- System.out.println可以被识别,但System.out.printlN则不行
三、二进制
1、十进制
每一位可以是0~9这10个值,到10进位。一百用十进制表示为100,十就是10
2、二进制
每一位可以是0和1,到2进位。一百用二进制表示是1100100,十就是1010
3、十六进制
每一位可以是0~F这16个值,到16进位。一百用十六进制表示为64,十就是A
4、bit 和 byte
- 一个二进制的位叫做一个bit。网络带宽中的单位,都是bit
- 八个二进制的位,组成一个byte。硬盘等存储的单位,都是byte
- byte是计算机中基本的衡量存储的单位,计算机在对外使用时不会用bit作为划分存储的单位
四、数据类型(基本数据类型,四类八种:整数、浮点、字符、布尔)
1、数字的基本数据类型
(1)整数类型
- byte:占用1个byte,值域是 -128~127
- short:占用2个byte,值域是 -32768~32767
- int:占用4个byte,值域是 -2147483648~2147483647。Java中整数缺省是int类型
- long:占用8个byte,值域是 -9223372036854774808~9223372036854774807
(2)浮点(小数)类型
- float:占用4个byte,有精度,值域复杂±340282346638528859811704183484516925440
- double:精度是float的两倍,占用8个byte。Java中浮点数缺省是double类型
(3)符号位
2、布尔和字符数据类型
- boolean:占用1个byte,值域是true,false
- char:占用2个byte,值域是所有字符
public class Datatype {
public static void main(String[] args) {
byte byteNum = 99;
System.out.println(byteNum);
short shortNum = 10000;
System.out.println(shortNum);
int intNum2 = 1000000000;
System.out.println(intNum2);
long longNum1 = 1;
long longNum2 = 10000000000000000L;
System.out.println(longNum1);
System.out.println(longNum2);
float floatNum = 100.1f;
System.out.println(floatNum);
double doubleNum = 100.1;
System.out.println(doubleNum);
boolean booleanVar = true;
System.out.println(booleanVar);
char charVar = '才';
System.out.println(charVar);
}
}
3、数据类型自动转换
- 不会出现问题的类型转换,编程语言可以做自动类型转换,比如低精度的数字向高精度的数字转换。
- 自动类型转换可以发生在算数运算,也可以发生在赋值
- 数值精度顺序:double > float > long > int > short > byte
- char可以转换为int
- 虽然同样是两个byte,但是因为char是无符号数,值域超出了short可以表示的范围,所以不可以自动转为short
4、强制类型转换
- 可能出现问题的类型转换,需要使用强制类型转换,比如高精度数值向低精度数值转换
- 强制类型转换也是操作符
- 语法是用小括号括起来的目标类型放在被转换的值前面
- 强制转换会造成数据精度丢失
- 数值计算一旦溢出,结果将失去其原有意义。比如:两个正数会加出负数
- 要对能够处理的值有大概得估计
long longVar = 10000;
int intVar = (int) longVar; // 强制类型转换
int int1 = 1999999999;
int int2 = 1999999999;
System.out.println(int1 + int2); // 加出来了一个负数
5、 和JavaScript不一样的String
- 字符串的名字叫做String
- String 并不是java中的基本数据类型,但是可以用 String str = "lcy";的方式创建
- String不是java中的保留字
String strName = "lcy";
int String = 0;
String strName1 = "lcy";
System.out.println(strName1);
System.out.println(strName);
System.out.println(String);
五、运算符
1、加减乘除
2、取模运算符:%
- 用来计算余数(负数可以取模,负数也可以被取模,小数也可以取模)
public class ModCalc {
public static void main(String[] args) {
int num = 10;
System.out.println(num % 2);
System.out.println(num % -3);
System.out.println(num % 4);
System.out.println(num % 5);
System.out.println(num % -6);
}
}
3、整数的除法运算
- int除以int还是int,不会变成浮点数
public class ModCalc {
public static void main(String[] args) {
// int num = 10;
// int num1 = 3;
// float num2 = 3.0f;
System.out.println(10 / 3); // 3
System.out.println(10 / 3.0); // 3.3333333
}
}
4、比较运算符
- > >= <= != ==
5、布尔运算符
- !:非运算符,not运算符。!true是false,!false是true,可以理解为取反
- &:且运算符,and运算符。true&true是true,true&false是false
- &&:且且运算符,andand运算符。运算结果和&一样
- |:或运算符,or运算符。true|false是true,false|false是false,true|true是true
- ||:或或运算符,oror运算符。运算结果和|一样
6、小括号运算符
7、运算符优先级
- ()
- !
- * / %
- + -
- > >= < <=
- ==
- !=
- & && | ||
- =
- 等号 < 布尔运算符 < 比较运算符 < 算数运算符
8、按位运算符
- 按位并(AND):&
- 按位或(OR):|
- 按位异或(XOR):^
- 按位取反:~
- 不会改变原本的变量的值,要改变需要重新赋值
9、位移运算符
- >>:符号位不对,其余位右移,符号位后边正数补0,负数补1.又称带符号右移
- >>>:符号位一起右移,左边没有补0,又称无符号右移
- <<:左移,右边补0.左移没有带符号位一说,因为符号位再最左侧
- 不会改变原本的变量的值,要改变需要重新赋值
六、转义符语法和常用的转义符
- \n 换行符
- \" 双引号
- \t 制表符
- \uXXXX unicode编码对应的字符