java中的数据类型分为两大类:
一、基本数据类型 (4类8种):
①整型(byte,short,int[默认类型],long),他们之间取值范围不同
②浮点型(float,double[默认类型]),他们之间取值范围不同
③字符型(char)
④布尔型(boolean)
二、引用数据类型,从数组开始接触
常见进制,字符,转义符:
1.进制(二进制,八进制,十进制,十六进制)
同一个块内,不能声明同名变量
变量的作用域:变量的有效范围,从声明它的位置开始,到它所在的块结束
算术运算符
1.算术运算符: +、﹣、*、/、%、++、 --
// + : 如果+两侧是数值表达式,做的就是加法;如果+有一侧有字符串,加号就是连接符号
// System.out.println(5+6+7);// 18
// System.out.println(5+"6"+7);// 567
// System.out.println(5+6+"7");// 117
// System.out.println(5+6+'7');// 66
// System.out.println(5+","+6);// 5,6
2.整型与整型相除,结果还是整型(取整,不是四舍五入)
// System.out.println(11/3); // 3
// System.out.println(11.0/3);// 3.6666666666666665
// System.out.println(11/3.0);// 3.6666666666666665
% 取余数(模运算):结果的正负,只与被除数有关
System.out.println(5%2);// 1
// System.out.println(-5%2);// -1
// System.out.println(5%-2);// 1
// System.out.println(-5%-2);// -1
// System.out.println(4%5);//4
自增,自减
++在后,先运算,再自增 。 --在后,先运算,再自减
++在前,先自增,在运算 。 --在前,先自减,在运算
i++;// i = i + 1; i + = 1;
i--;// i = i - 1; i - = 1;
例:
int num1 = 20;
int num2 = 30;
System.out.println((num1++)+num2);// 50
System.out.println(num1+","+num2);// 21,30
System.out.println((num1++)+num2++);// 51
System.out.println(num1+","+num2);// 22,31
System.out.println((num1++)+(++num2));// 54
System.out.println(num1+","+num2);// 23,32
逻辑运算符
逻辑运算符:&&与、||或、!非
比较运算符:>、=、 <=、==、!=
赋值运算符:=、+=、﹣=、*=、/=、%=
位运算符: &、|、^ 、 ~、>>、<>>(pass)
按位与& , 按位或 | 和 逻辑与 &&,逻辑或 || 都能进行逻辑判断
// 按位与&,按位或|能够参与位运算**(位运算:针对的是二进制整数)**
// & :只有参加运算的两位都为1,&运算的结果才为1,否则为0
/*
* 101 5
110 6
----------
100 4
*/
// System.out.println(5&6);
// System.out.println(3&5);
// | :只有参加运算的两位都为0,|运算的结果才为0,否则为1
/*
* 101 5
110 6
----------
111 7
*/
// System.out.println(5|6);
// ^:只有参加运算的两位不同,^运算的结果才为1,否则为0
/*
* 101 5
110 6
---------
011 3
*/
// System.out.println(5^6);
// << :a<
// 3*2^2 = 12
// 5*2^3 = 40
// 4*2^4=64
// a<
// System.out.println(4<<4);
// >> : a>>b 64/(2^2) 128/(2^3)
// a>>b等效于a/(2^b)
// System.out.println(128>>3);
// int num = 2; "以效率最高的形式变成8"
// int num = 2;
// num = num<<2;
// System.out.println(num);
&,|和&&,||有什么异同
1.都能参与逻辑运算
2.&,|还能参与位运算,&&,||不能
3.&&,||有短路性,&,|没有
三元运算符
条件运算符(三元运算符): (?:)
(表达式1)?( 表达式2): (表达式3)
**当表达式1是true时,返回表达式2,否则返回表达式3 **
int num = 1451 > 999 ? 0 : 1;
类型转换
1.自动类型转换 :两种类型彼此兼容的,目标类型取值范围大于原类型
2.强制类型转换:两种类型彼此不兼容的,目标类型取值范围小于原类型
将目标强行加上类型:
char ch='G';
ch =(char)(ch+32);
System.out.println("输出字符为:"+ch);
运算时的兼容
byte short char int 运算方向为int
向范围大的方向兼容
+=(直接转换),有自动转换,无需强转
获取数据
Scanner scanner=new Scanner(System.in);
int scanner=new Scanner.nextInt();
nextInt()获取数字。
nextDouble()获取双精度数字。
nextLine()获取字符,可以是空格。
next()代表只要有空格就结束。