目录接上一张内容
基本数据类型
- 3.2、基本数据类型变量间转换
- 3.2.1、自动类型提升
- 3.2.2、强制类型转换
- 3.3、基本数据类型与String间的转换
- 3.3.1、String运算题
- 3.4、进制与进制间的转换
- 3.4.1、进制
- 3.4.2、二进制原码、反码、补码
- 3.4.3、进制间的转化
- 4、运算符
- 4.1、算术运算符
- 4.2、赋值运算符
- 4.3、比较运算符(关系运算符)
- 4.4、逻辑运算符
- 4.5、左移右移位运算符
- 4.6、三元运算符
class VBTest {
public static void main(String[] args) {
byte b1=2;
int i1=3;·
int i2=b1+i1;
System.out.println(i2);//5
short s1=10;
short s2=s1+b1;
System.out.println(s2);//结果错误,结果应该用int型接收
}
}
3.2.2、强制类型转换
class VBTest2 {
public static void main(String[] args) {
double d1=12.3;
int i1=(int)d1;//强转
System.out.println(i1);//12 损失了精度
}
}
3.3、基本数据类型与String间的转换
class StringTest {
public static void main(String[] args) {
String s1="我是";
String s2="字符串";
System.out.println(s1+s2);//我是字符串
boolean b1=true;
s2=s2+b1;
System.out.println(s2);//字符串true
}
}
3.3.1、String运算题
class StringTest {
public static void main(String[] args) {
char c='a';//97 A:65
int n1=10;
String s1="hello";
System.out.println(c+n1+s1);//107hello
System.out.println(c+s1+n1);//ahello10
System.out.println(c+(s1+n1));//ahello10
System.out.println(c+(n1+s1));//a10hello
System.out.println((c+n1)+s1);//107hello
System.out.println(s1+n1+c);//hello10a
}
}
3.4、进制与进制间的转换
3.4.1、进制
12进制:一年12个月
24进制:一天24个小时
60进制:一个小时有60分钟
class StringTest {
public static void main(String[] args) {
int n1=0b110;
int n2=110;
int n3=0127;
int n4=0x110A;
System.out.println("n1 = "+n1);//n1 = 6
System.out.println("n2 = "+n2);//n2 = 110
System.out.println("n3 = "+n3);//n3 = 87
System.out.println("n4 = "+n4);//n4 = 4362
}
}
3.4.2、二进制原码、反码、补码
二进制转十进制
class StringTest {
public static void main(String[] args) {
//(前++):先自增1,后运算
int a1 = 10;
int b1 = ++a1;
System.out.println(a1);//a1=11
System.out.println(b1);//11
//(后++):后运算,后自增1
int a2 = 10;
int b2 = a2++;
System.out.println(a2);//a1=11
System.out.println(b2);//10
}
}
= 、 += 、-=、 *=、/=、%=
class StringTest {
public static void main(String[] args) {
int n1=10;
n1 += 2;//n1=n1+2
System.out.println(n1);//12
int n2=11;
n2 %= 5;//n1=n1%5
System.out.println(n2);//1
int n3=11;
n3 /= 5;//n1=n1/5
System.out.println(n3);//2
short s1=10;
//s1=s1+2;//编译不通过
s1+=2;//不会改变变量本身的数据类型
System.out.println(s1);//12
}
}
int类型乘浮点型 得截取为int类型 所以0.1最终被截取为0
开发中,推荐使用短路与||和短路或&&
class StringTest {
public static void main(String[] args) {
//求两个数的最大值
int n=10;
int m=18;
int max=(m>n)?m:n;
System.out.println(max);//18
//求三个数的最大值
int n1=12;
int n2=30;
int n3=-43;
int max1=(n1>n2)?n1:n2;
int max2=(max1>n3)?max1:n3;
System.out.println("三个数最大值为:"+max2);三个数最大值为:30
}
}
凡是可以使用三元运算符的地方,都可以改写为if-else,反之不成立
如果程序可以使用三元运算符,又可以使用if-else,那么优先使用三元运算符 原因:代码简洁,执行效率高



