自动类型转换
![]()
package 自动类型转换;
public class AutoConvert {
public static void main(String[] args) {
int num ='a';//char>int 小转大自动转
double d1=80;//int>double
System.out.println(num);
System.out.println(d1);
}
}
package 自动类型转换;
public class AutoConvertDetail {
public static void main(String[] args) {
int n1=10;
double d1 =n1 + 1.1; //double>float 加f才是float,否则double
float d2 =n1 + 1.1f;
System.out.println(d1);
System.out.println(d2);
//表达式结果自动提升为最大类型,byte short char 三者计算时转为int类型
byte b1=10;//当把数赋给byte时,先判断该数是否在byte范围内,如果是就可以,不是再判断类型
//byte short char 三者计算时转为int类型
byte b2=1;
short s1=1;
int s2=b2+s1;//byte+short>int
int s3=b1+b2;//byte+byte>int
//boolean不参与转换
}
}
强制类型转换
package 强制类型转换;
public class ForceConvert {
public static void main(String[] args) {
int n1=(int)1.9;
System.out.println(n1);//降低精度
int n2=2000;
byte b1=(byte)n2;
System.out.println("b1="+b1);//溢出
byte b=10;
b=(byte)(b+11);//int>byte
System.out.println(b);
package 强制类型转换;
public class ForceConvertDetail {
public static void main(String[] args) {
//强制转换只针对最近操作有效,使用小括号提升优先级
double x1=(int)10*3.5+6*1.5;
int x2=(int)(10*3.5+6*1.5);
System.out.println(x1);
System.out.println(x2);
char c1=128;
int m=100;
char c3=(char)m;
System.out.println(c1);
System.out.println(c3);
}
}
基本数据类型和String类型转换
package 基本数据类型和String类型转换;
public class StringToBasic {
public static void main(String[] args) {
float f1=1.1f;
boolean b1=true;
String s1=f1+"";
String s2=b1+"";
System.out.println(s1+s2);
System.out.println("=====================================");
String s5="123";//数字字符串能转,英文如hello不能转
int num1 = Integer.parseInt(s5);
double num2=Double.parseDouble(s1);
float num3=Float.parseFloat(s5);
boolean b=Boolean.parseBoolean("true");
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(b);
System.out.println("=====================================");
System.out.println(s5.charAt(0));//字符串转字符
}
}
算数运算符使用
package 算数运算符使用;
public class ArithmeticOperator {
public static void main(String[] args) {
System.out.println(10/4);
System.out.println(10.0/4);
double x=10/4;
System.out.println(x);
System.out.println("================");
int i=1;
i=i++;
System.out.println(i);//temp=i i=i+1 i=temp
System.out.println("================");
int d=1;
d=++d;
System.out.println(d);// d=d+1 temp=d d=temp
}
}
逻辑运算符
package 逻辑运算符;
public class LogicOperator {
public static void main(String[] args) {
int a=4;
int b=9;
if (a<1&++b<50){
System.out.println("ok");
}
System.out.println("a="+a+"b="+b);
int c=4;
int d=9;
if (a<1&&++b<50){//短路与
System.out.println("ok");
}
System.out.println("c="+c+"d="+d);
//同理 ||短路或 第一个条件为真,不执行第二个条件,结果为真
}
}