目录:一.数据类型
二.变量
三 .运算符
一.数据类型
内置类型:
整数型:byte short int long
小数型:float double
字符型:char
布尔类型:boolean
引用数据类型:这些类型定义的变量,都是存储地址的变量
String
数组
接口
类
...
String类型:
String str ="hello" ; //没有所谓的‘\0’就是字符串的结尾这个说法
str 属于引用变量(变量里面存的是地址)
拼接: java当中的字符串 和 其他数据类型进行 + 就是拼接的意思
String str3 = str1+str2;
在有些情况下,需要将字符串和整形数字之间进行转换:
1. int 转成 String
int num = 10;
// 方法1
String str1 = num + "";
// 方法2
String str2 = String.valueOf(num);
2. String 转成 int
String str = "100";
int num = Integer.parseInt(str);
二.变量:
对于经常改变的内容,在Java程序中,称为变量。而数据类型就是用来定义不同种类变量的。
注:
1. java当中,不允许使用未初始化的局部变量(局部变量:定义在方法内部的变量)
2.java当中,所有的类型定义的数据都是有符号的
3.可以一行定义多个相同类型的变量
例如: int a=10,b=20,c=30;
字符型变量:
注:1. java中的字符型可以存放整形
2.java中使用单引号+单个字母的形式标识字符字面值
3.计算机中的字符本质上是一个整数,在C语言中使用ASCll表示字符,而Java中使用Unicode 表示字符,因此一个字符占用两个字节,表示的字符种类更多,包括中文。
类型转换:
强制类型转换: a=(int)b; 弊端:当较大数据类型转换成较小数据类型,可能丢失内容
类型提升: 不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。
整型提升:小于4字节的数据,会提升为4字节再运算
整形和浮点型的运算:
在Java中,int类型和float类型进行计算,得到的结果应该是float类型的。
这是因为在Java中,整数类型和浮点数类型是不同的数据类型,它们在内存中的表示方式也不同。
在进行计算时,Java会自动将整数类型转换为浮点数类型,然后进行计算,最终得到的结果也是浮点数类型。
如果需要将浮点数类型转换为整数类型,可以使用强制类型转换。
注:强制类型转换不一定成功,不相干的类型不能相互转换
操作符:
关系运算符: == , != , < , > , <= , >=
计算结果是 false ,true
例如:int a=10,b=20 ; System.ou.println(a==b); //false
逻辑运算符: && || !
运算结果都是boolean类型
短路求值:
例如: System.out.println(10>20&&10/0==0); //打印false
System.out.println(10<20 || 10/0==0); //打印true
解释: 计算10/0会抛出异常,但上面的代码可以正常执行,说明10/0并没有被计算
短路效应:
对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.
对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式.
注:& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值.
例如: System.out.println(10>20 & 10/0==0); //抛出异常
System.out.println(10<20 | 10/0==0); //抛出异常
位运算符:
&:按位与
| :按位或
~:按位反转
^:按位异或
注:当 & 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻辑运算.
位移运算:
<<左移:最左侧不要了,最右侧补0
注:向左移位时,丢弃的是符号位,因此正数左移可能会变成负数
>>右移:最右侧不要了,最左侧补符号位(正数补0,负数补1)
<<<无符号右移:最右侧不要了,最左侧补0
注:
1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
4. 移动负数位或者移位位数过大都没有意义.
条件运算符(只有一个):表达式1 ? 表达式2 : 表达式3
Java中唯一一个三目运算符,是条件判断语句的简化写法
注:1. 表达式2和表达式3的结果要是相同类型的,除非能够发生隐式类型转换
例如: int a=10,b=20 ; int c =a>b ? 1 : 2.0
2. 表达式不能单独存在,其产生的结果必须要被使用
例如: int a=10,b=20; a>b?a:b ; //报错