整型:byte(1字节 (-128 ~ 127)) short(2字节) int(4字节) long(8字节)
浮点型: float(4字节) double(8字节)
字符型:char(2字节)
布尔类型 :boolean(忽略大小因为只有true和false)
类, 接口,数组
格式:变量的类型 变量名 = 变量值
方式:
1.声明和赋值同时进行:int a = 10;
2.先赋值后声明:int a; a = 10;
3.同时声明多个变量:int a,b,c; a = b = c = 10;
4.同时声明多个变量和赋值:int a = 10; int b = 20;
1.变量应该先声明后使用
2.同一个变量可以被多次赋值,后一次赋值覆盖前一次的值
3.作用域 :声明那个变量所在的那对大括号内
4.在同一作用域内的变量名不能相同
1.java的整型常量默认为 :int
2.Java 的浮点型常量默认为 : double
1.long类型数值后面加要"l/L": long l = 406666666L
2.float类型的数值后面要加"f/F":列入 float f = 4.6F
1.自动类型提升:小容量的变量和大容量的变量做运算,结果用大容量的变量来接收。(容量指的是表数范围)
byte,short,char -> int -> long -> float -> double
**注意:**1.byte,short,char三者之间做运算会先将自身提升为int
2.强制类型转换:自动类型提升的逆过程 (把大容量的变量赋值给小容量)
格式 :(强转的类型) (int)4.6
注意:强制类型转换可能会损失精度
保存数据
定义:被java赋值了特殊的含义的单词或字符串
特点:所有的字母都是小写
java现版本暂未使用,但以后的版本可能作为关键字来使用
定义:凡是需要自己起名字的地方都叫做标识符
规则:①由26个英文字母大小写,0-9 ,_或 $ 组成
②数字不可以开头。
③不可以使用关键字和保留字,但能包含关键字和保留字。
④Java中严格区分大小写,长度无限制。
⑤标识符不能包含空格。
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,
第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
注意 :一定要做到见名知意
正号
负号
加
乘
减
除
取模(取余)
前加加:先自加一后取值(赋值)
后加加:先取值(赋值)后自加一
前减减:先自减一后取值
后减减:先取值后自减一
字符串连接符
=
扩展赋值运算符 :+=, -=, *=, /=, %=
注意: short s = 3;
s = s+2; 编译不通过,因为short和int做运算会将short提升为int,只能用int来接收。
s += 2; 编译能通过,不会改变原来的变量的数据类型
==
!=
<
>
<=
>=
&
逻辑与
&&
短路与
|
逻辑或
||
短语或
!
逻辑非
^
逻辑异或
说明:
&和&& : 两边都为true结果为true
|和|| : 两边只要有一个为true结果为true
! : 取反
^ : 相同为false,不同为true
[面试题]& 和 && , | 和 ||的区别?
&和&&的区别?
&和&&左边式子的结果为true的时候,右边的式子都会执行。(因为判断不出结果)
&左边的式子结果为false的时候,右边的式子仍然执行(无论左边结果为true还是false右边都执行)。
&&左边的式子结果为false的时候,右边的式子不再执行(因为可以判断出结果就为false)。
|和||的区别?
|和||左边的式子的结果为false的时候,右边的式子都会执行。(因为判断不出结果)
|左边的式子结果为true的时候,右边的式子仍然会执行(无论左边结果为true还是false右边都执行)。
||左边的式子结果为true的时候,右边的式子不再执行(因为可以判断出结果就为true)
格式:(条件表达式)? 表达式1 :表达式2;
说明:1.条件表达式的结果只能为boolean类型
2.如果条件表达式的结果为true则执行表达式1,如果为false则执行表达式2
3.表达式1和表达式2的类型应该保持一致,如果表达式1和表达式2可以进行自动类型提升那么也可以
例:double d = (m > n)? 5 : 12.3;
4.三元运算符可以嵌套使用但不建议
5.三元运算符可以使用if语句所替代。反之不行。如果两者都可以使用建议使用三元运算符,因为
效率高一些。
代码: 求三个数的最大值
int aa = 10,bb = 20,cc = 30;
int maxNumber = (aa > bb)? aa : bb;
maxNumber = (maxNumber > cc)? maxNumber : cc;
char x = 'x';
int i = 10;
int j = 10 + 'x';
j = x;
System.out.println(true? x : i);//120
System.out.println(true? 80 : x); ?
System.out.println(true? x : 10);//x
System.out.println(false? 'x' : i);//10
System.out.println(j);//130
System.out.println(true? 10.5 : i);//10.5
System.out.println(true ? 'a' : 120);//a
/*
* *int和char使用三元运算符总结:有一个变量就变为变量的类型,都是常量就变为char,都是变量就自动提升。
* 其它long int float double 使用三元运算符和基本运算符一样,会自动提升。
*/
1.二进制,八进制,十进制,十六进制
二进制 : 以0b或0B开头
八进制 : 以0开头
十六进制 : 以0x或0X开头
2. 二进制 -> 十进制
1011 => 2的0次方 + 2的1次方 + 2的3次方
十进制 -> 二进制
除2取余,最后将余数反过来
二进制 -> 八进制 :三位二进制 -> 一位八进制
二进制 -> 十六进制:四位二进制 -> 一位十六进制
运算符
<< 左移:在一定的范围内,原来的数乘以2
>> 右移:在一定的范围内,原来的数除以2
>>> 无符号右移
& 与运算
| 或运算
~ 反码
>> 与 >>> 的区别:>> 右移:正数右移最高位用0补,负数右移最高位用1补
>>> 无符号右移 : 无论正负,最高位都是用0补
程序从上到下逐行地执行,中间没任何判断和跳转。
根据条件,择性地执行某段代码。
根据循环条件,重复性的执行某段代码。(while、for、do ... while)
死循环
一 格式 :
for(;?{}
while(true){}
do{}while(true);
二 如何终止循环:
1.将循环条件改成false
2.使用break关键字
嵌套循环
一 嵌套循环 :一个循环a中再嵌套一个循环b。a循环叫做外层循环b循环叫做内层循环。
二 执行的次数 = 外层循环执行的次数 * 内层循环执行的次数
三 说明 :
1. 外层循环控制行,内层循环控制列。
2.外层循环执行一次,内层循环执行一轮。
//外层循环
for(int i = 1; i < 10; i++){
//内层循环
for(int j = 1; j < 10;j++){
}
}
break和continue
continue:
使用范围 :1.在循环结构中
作用 :用来结束当次循环
在嵌套循环中 :用来结束包含它的那个循环的当次循环
break :
使用范围 :1.在switch-case结构中 2.在循环结构中
作用 :用来结束当前循环
在嵌套循环中 :用来结束包含它的那个循环的当前循环
三 说明 :
1. 外层循环控制行,内层循环控制列。
2.外层循环执行一次,内层循环执行一轮。
如何结束外层循环? - 可以给外层循环起名字
//lable : 给外层循环起的名字
lable : for(int i = 1; i <= 3; i++){
for(int j = 1; j <= 3; j++){
System.out.print(“j=” + j + " ");
if(j == 2){
break lable; //用来结束外层循环
//注意:break和continue的后面不能直接再写其它语句,因为不可能被访问到
//System.out.println(“aaaa”);
}
}
System.out.println(“i=” + i);
}