Java 基础
关键字
java中用于特殊用途的英文单词,所有的英文单词都是小写。
标识符
除关键字以外,凡是由程序自己命名的元素都称为标识符;包括:类名,方法名,属性名,参数名,变量名,常数名;
命名规则
-
标识符由数字、字母、下划线和$组成。
-
不能由数字开头命名。
-
不能是关键字和保留字。
约定规则
- 标识符必须有含义,要做到见名知意。
- 尽量使用英语单词作为标识符名称。
- 所有标识符严格区分大小写。
- 包名建议全部使用小写。
- 类名称使用大驼峰命名方法,变量名和方法名用小驼峰命名方法。
- 空格不能出现在标识符之间。
命名规则
大驼峰命名规则:如果多个单词,从第一个单词开始首字母大写——HelloWorldName;常用类名,接口名。
小驼峰命名规则:如果多个单词,从第二个单词开始首字母大写——helloWorldName;常用常量名。
大写+下划线:所有单词大写,用下划线分割——HELLO_WORLD_NAME。
变量
用于存放数据的容器。
- 容器的大小;
- 容器的属性(特点);
定义变量的语法
-
数据类型 变量=[=数据] int i = 0 ;
-
数据类型:决定容器的大小和特性;
变量名:方便调用;
基本数据类型
数值型
整数型
- byte : 1 byte = -2^(8-1) ~ 2^(8-1)-1
- short : 2 byte = -2^(16-1) ~ 2^(16-1)-1
- int :4 byte ;常用整数型命名;
- long : 8 byte
浮点型
- float : 4 byte float f = 1.1f ;
- double : 8 byte double d = 1.1 ;
字符型
- char : 2 byte ; char c = ‘a’ ;
布尔型
- boolean : 仅定义 true 、false;
数据类型转换
byte → short/char → int → long → float → double
-
箭头方向自动转换
-
箭头反方向强制转换
-
强制转换:数据类型 = (数据类型) 变量名
float f = 1.1f ; double d = 1.234 ; float = (float) d;
运算符
算术运算符
- % :对两个运算数进行取余数,获得两个数相除以后所得的余数。例如3/2余1;
- ++/-- : 自增自减,对变量进行自增自减操作;
注意事项
- 任何整数类型进行算术运算都会将结果转换为int类型;
- 任何数值类型跟浮点进行算术运算都会将结果转换为double类型;
关系运算符
-
关系运算一般用于对于基本类型的大小比较、等于比较,另外也可以用于两个引用对象的地址比较。
-
关系运算符包括以下:>、<、>=、<= 、==、!=。
-
运算之后的结果是布尔类型;==和!=可用于对引用对象的地址比较;
布尔逻辑运算
- & :逻辑与
- | : 逻辑或
- ! : 非
- || : 短路或
- && : 短路与
a | b | !a | a&b | a|b | a&&b | a||b |
---|---|---|---|---|---|---|
true | false | false | false | true | false | true |
true | true | false | true | true | true | true |
false | false | true | false | false | false | false |
false | true | true | false | true | false | true |
&与&&的区别
- &:逻辑与,在进行运算时不论运算符左侧的表达式是否为true,右侧表达式始终会执行。
- && :短路与,运算时运算符左侧表达式为false,则右侧表达式不再执行。
位运算
符号 | 说明 | 运算说明 |
---|---|---|
~ | 取反 | 二进制取反 |
& | 按位与 | 二进制同为一取一 |
| | 按位或 | 二进制有一取一,无一取零 |
^ | 按位异或 | 二进制相同为零,不同为一 |
>> | 右移 | 二进制右移,正数最高位补零,负数最高位补一;每移一位 /2 |
<< | 左移 | 二进制左移,最低位补零;每移一位 *2 |
>>> | 无符号右移 | 二进制右移,无论正负最高位补零 |
int a = 5,b = 12,c = 0;
//a = 0000 0000 0000 0000 0000 0000 0000 0101
//b = 0000 0000 0000 0000 0000 0000 0000 1100
c = ~a ; //~a = 1111 1111 1111 1111 1111 1111 1111 1010
// c = 0000 0000 0000 0000 0000 0000 0000 0110
c = a & b ;//c = 0000 0000 0000 0000 0000 0000 0000 0100
c = a | b ;//c = 0000 0000 0000 0000 0000 0000 0000 1101
c = a ^ b ;//c = 0000 0000 0000 0000 0000 0000 0000 1001
c = a>>1 ; //c = 0000 0000 0000 0000 0000 0000 0000 0010
c = b<<1 ; //c = 0000 0000 0000 0000 0000 0000 0001 1000
c = a>>>1 ;//c = 0000 0000 0000 0000 0000 0000 0000 0010
三目运算符
三目运算符也称为三元运算符,具备逻辑判断的功能,语法:
布尔表达式?真:假
- 不限制数据类型,但两个返回值的数据类型必须一样。
//三目运算符嵌套判断
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
String s = i < 18 ? "未成年人" : i < 36 ? "成年人" : i < 48 ? "壮年人":"老年人" ;
System.out.println(s);
注意事项
- 计算机在保存数字的过程中保存的是补码;正数:补码为其本身;负数:补码为取反+1;
b = b + 1 ;//报错
b += 1 ;//不报错
byte b1 = 1 , b2 = 3 ;
byte b = b1 + b2 ; //报错
byte b = 1 + 3 ; //不报错
char c = "a" ;
System.out.println(c); // 输出值为: a ;
System.out.println(c+1); // 输出值为:98 ; 运算时将c的值转换为整型