一、编译指令
javac是编译成.calss文件(字节码文件),java是运行文件
二、标识符
由数字、字母、下划线(_)和美元符($)组成
注意:
- 不能以数字开头
- 不能是关键字
- 区分大小写
三、运算符
- 算术运算符
操作符 | 描述 | 例子 |
---|---|---|
+ | 加法 - 相加运算符两侧的值 | A + B 等于 30 |
- | 减法 - 左操作数减去右操作数 | A – B 等于 -10 |
* | 乘法 - 相乘操作符两侧的值 | A * B等于200 |
/ | 除法 - 左操作数除以右操作数 | B / A等于2 |
% | 取余 - 左操作数除以右操作数的余数 | B%A等于0 |
++ | 自增: 操作数的值增加1 | B++ 或 ++B 等于 21(区别详见下文) |
-- | 自减: 操作数的值减少1 | B-- 或 --B 等于 19(区别详见下文) |
- 关系运算符
运算符 | 描述 | 例子 |
---|---|---|
== | 检查如果两个操作数的值是否相等,如果相等则条件为真。 | (A == B)为假。 |
!= | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 | (A != B) 为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 | (A> B)为假。 |
< | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 | (A <B)为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 | (A> = B)为假。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 | (A <= B)为真。 |
- 位运算符
操作符 | 描述 | 例子 |
---|---|---|
& | 如果相对应位都是1,则结果为1,否则为0 | (A&B),得到12,即0000 1100 |
| | 如果相对应位都是 0,则结果为 0,否则为 1 | (A | B)得到61,即 0011 1101 |
^ | 如果相对应位值相同,则结果为0,否则为1 | (A ^ B)得到49,即 0011 0001 |
〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 | (〜A)得到-61,即1100 0011 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A << 2得到240,即 1111 0000 |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A >> 2得到15即 1111 |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | A>>>2得到15即0000 1111 |
- 逻辑运算符
操作符 | 描述 | 例子 |
---|---|---|
&& | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 | (A && B)为假。 |
| | | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 | (A | | B)为真。 |
! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 | !(A && B)为真。 |
- 赋值运算符
(%)= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 | C%= A等价于C = C%A |
<< = | 左移位赋值运算符 | C << = 2等价于C = C << 2 |
>> = | 右移位赋值运算符 | C >> = 2等价于C = C >> 2 |
&= | 按位与赋值运算符 | C&= 2等价于C = C&2 |
^ = | 按位异或赋值操作符 | C ^ = 2等价于C = C ^ 2 |
| = | 按位或赋值操作符 | C | = 2等价于C = C | 2 |
- instanceof
Object reference variable ) instanceof (class/interface type)
比较对象类型是否相等
- 三元运算符
b = (a == 10) ? 20 : 30;
a=10则b取值为20,反之为30
四、基本类型
八大基本类型:
bety(2字节)、short(4字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、char(2字节)、boolean(1字节)。
四、运算
隐式转换,默认会向上转换在比较
字符相加:
字符相加先转换为int类型,记住几个重要的ASCII码值:
- ‘A’ 65 A-Z是连续的
- ‘a’ 97 a-z是连续的
- ‘0’ 48 0-9是连续的
五、字符串String
字符串String是final修饰的,是不可变的,如果想要改变可以使用StringBuffer和StringBuilder。
字符串相加:
主要注意一下情况
System.out.println("aa"+22+66);//aa2266-先执行字符串,后面就是字符串拼接
System.out.println(33+22+"bb");//55bb-先执行运算在拼接字符串
六、条件、循环、选择语句
foreach循环语句:
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
System.out.print(x);
System.out.print(",");
}
//结果:10,20,30,40,50,
if语句:主要注意是括号里面要用布尔表达式
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
switch case语句 :
注意:
- switch语句中支持的变量类型有 byte、short、int、char
- Java SE 5 开始,支持新特性enum
- 从 Java SE 7 开始,switch语句支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
brake、continue关键字
continue:是跳出本次循环接着下一次循环。
for (int i = 0; i <5 ; i++ ) {
if (i == 2) {continue;}
System.out.print(i+",");
}
//结果:0,1,3,4,(跳过了i=2的值)
brake:是结束本次循环。
注意:在双层for循环中只跳出当前循环。
public static void main(String[] args) {
for (int i = 0; i <5 ; i++ ) {
for (int j = 0; j < 3; j++) {
if (j == 2) {
break;//这里只跳出里面j的循环层,i的循环层不影响
}
}
}
}
七、方法使用注意
(1)方法不能嵌套使用:也就是方法里面不能定义方法
(2)方法的定义注意
- 方法定义要明确返回值类型,没有就写void
- 方法参数列表要明确参数类型,比如:字符串String、int等等