一、数据类型
1、整型变量(4字节)
基础语法格式:int 变量名 = 初始值;
int num = 10;//定义一个整型变量
System.out.println(num);
范围:-231 ~ 231-1
2、短整型变量(2字节)
基础语法格式:short 变量名 = 初始值;
short num = 0;//定义一个短整型变量
System.out.println(num);
范围:-215 ~ 215-1
3、长整型变量(8字节)
基础语法格式:long 变量名 = 初始值;
long num = 10L;//定义一个长整型变量,初始值也可以写为10l
System.out.println(num);
范围:-263 ~ 263-1
4、单精度浮点型变量(4字节)
基础语法格式:float 变量名 = 初始值;
float num = 1.0f;//定义一个单精度浮点型变量,初始值也可以写为1.0F
System.out.println(num);
范围:-231 ~ 231-1
5、双精度浮点型变量(8字节)
基础语法格式:double 变量名 = 初始值;
double num = 1.0;//定义一个双精度浮点型变量
System.out.println(num);
范围:-263 ~ 263-1
6、字符类型变量(2字节)
基础语法格式:char 变量名 = 初始值;
char ch = 'A';//定义一个字符类型变量
System.out.println(ch);
范围:0 ~ 216-1
7、字节类型变量(1字节)
基础语法格式:byte 变量名 = 初始值;
int value = 0;//定义一个字节类型变量
System.out.println(value);
范围:-27 ~ 27-1
8、布尔类型变量
基础语法格式:boolean 变量名 = 初始值;
boolean value = true;//定义一个布尔类型变量
System.out.println(value);
注意:
- boolean类型变量只有两种取值:true表示真,false表示假
- java的boolean类型和int不能相互转换,不存在1表示true,0表示false的用法
- boolean类型有些JVM的实现是占1个字节,有些是占1个比特位,这个没有明确的规定
9、字符串类型变量(引用类型)
把一些字符放到一起就构成了字符串。
基础语法格式:Sring 变量名 = “初始值”;
String name = "zhangshan";
System.out.println(name);
注意:java使用双引号+若干字符的方式表示字符串字面值。有一些不太方便表示的字符需要进行转义。
//字符串的+操作,表示拼接
//字符串的拼接
String a = "hello";
String b = "world";
String c = a + b;
System.out.println(c);
//字符串和整数的拼接
String str = "sum = ";
int a = 1;
int b = 2;
String result = str + a + b;
System.out.println(result);
10、常量
(1)字面值常量
例如:10;010;0x10;10L;1.0;1.5e2;1.0f;true;"abc";'a' 等。
(2)final关键字修饰常量
在Java当中,使用final关键字来定义一个常量。
final int a = 10;//final定义的常量
a = 2;//此处编译出错。
注意:
常量不能在程序运行的过程中发生修改。
一定要初始化之后才能使用,不一定在定义时初始化。
只能初始化一次。
常量和变量的区别
- 常量:运行期间可以改变,并且在运行时才知道它的值。
- 变量:在编译期间,就已被替换成常量,即能确定值,并且在运行期间不能进行修改。
11、作用域
变量能生效的范围,一般是变量定义所在的代码块。(找花括号)
二、运算符
1、算数运算符
基本四则运算符:+ - * / %
注意事项:
(1)int/int的结果还是int
(2)0不能作为除数
(3)%表示取余数
增量赋值运算符:+= -= *= /= %=
自增自减运算符:++ –
注意事项:
(1)如果不取自增自减运算的表达式的返回值,则前置自增和后置自增没有区别
(2)如果取表达式的返回值,则前置自增的返回值是自增之后的值,后置自增的返回值是自增之前的值。
2、关系运算符
== != < > <= >=
注意事项:关系运算符的表达式返回值都是boolean类型
3、逻辑运算符
逻辑与&&:表达式1 && 表达式2
都为true结果才为true,只要表达式1为false就不会执行表达式2
逻辑或||:表达式1 || 表达式2
都为false结果才为false,只要表达式1为true就不会执行表达式2
逻辑非!:!表达式
单目操作符,只有一个操作数,操作数为true结果为false,操作数为false结果为true
4、位运算符
操作的最小单位为二进制,即按二进制位运算。
按位与&:如果两个二进制位都是1,则结果为1,否则结果为0。
按位或|:如果两个二进制位都是0,则结果为0,否则结果为1。
按位取反~:如果该位为0则转为1,如果该位为1则转为0。
按位异或^:如果两个数字的二进制位相同,则结果为0,相异则结果为1。
注意:
当&和|的操作数作为整数(int,short,long,byte)的时候,表示按位运算,当操作数为boolean的时候,表示为逻辑运算。
5、移位运算符
左移<<:最左侧位不要了,最右侧补0
右移>>:最右侧位不要了,最左侧补符号位(正数补0,负数补1)
无符号右移>>>:最右侧位不要了,最左侧补0
注意事项:
- 左移N位相当于原数字*2的N次方
- 右移N位相当于原数字/2的N次方
- 当某个代码正好乘除2的N次方的时候可以用以为操作符代替
- 移动负数位或者移位位数过大都没有意义
6、条件运算符
表达式1 ? 表达式2 :表达式3
当表达式1的值为true时,整个表达式的值为表达式2,否则为表达式3。
这是Java中唯一一个三目运算符。
int a = 10;
int b = 20;
int max = a > b ? a :b;