基本数据类型包含8个类型 不同的基本数据类型之间可以进行转换:
隐式转换: 小范围—>大范围(可以直接转换)显示转换: 大范围—>小范围(强制转换) //隐式转换 //在定义值的时候,不能超过该数据类型的长度,如果超过了,那么它就会直接报错,编译无法通过 byte a=124; int b=1;//一半情况整形都使用int b=a; System.out.println("隐式转换:"+b); //显示转换 byte c=124; int d=1; //强转,通过在需要转换的字段前加上(对应需要转换类型) c=(byte)d; System.out.println("显示转换:"+c); //int值大于byte范围 int e=200; //强转,通过在需要转换的字段前加上(对应需要转换类型) c=(byte)e; System.out.println("int值大于byte范围:"+c); //小数默认是double类型,古人要将1.0复制给float类型: //强制转换 //添加f或者F //float f1=1.0;是错误的 float f1=1.0f; float f2=(float)1.0; System.out.println("float:"+f1); //小数默认为double类型,使用d或D可以显示表示该小数是double类型 double d1=1.0; double d2=1.01d; System.out.println("double:"+d1); //布尔值类型 //默认false boolean testFlag=false; //boolean只有两个值,true和false //可以判断表达式,将表达式结果作为赋值内容 boolean testFlag2=true; boolean testFlag3=(1==1);输出结果: 注意:
数值类型和Boolean类型之间不能转换(强转也不行,会出现编译错误提示)char类型可以使用‘’单引号字符赋值,也可以使用非负整数进行赋值char占两个字节,表示一个字符;英文字母占一个字节,中文占两个字节,但是char只能存放一个字母或一个汉字(char a='ab',//编译错误)小数默认是double类型,如果要将1.0赋值给float类型,可以强转或在后面添加f/F布尔类型默认为false,可以将表达式的结果作为赋值内容输出结果: 解: 当定义的两个变量float和double都是整数时,后面小数位都是0——那么在进行判断时两边是相等的(因为没有小数位,会把这两个值当整数来处理)
当定义的两个变量是小数时,小数位不为0,那么float和double就算值一样也不会对等(需要考虑数据的范围)
String之间的比较: //基本数据类型和引用数据类型 //声明两个引用类型的变量s1和s2,并使用new赋值 System.out.println("-----引用类型-------"); String s1=new String("Hello");//通过new创建的字符串回在堆里开辟一个新的空间 String s2=new String("Hello"); String s3="Hello";//直接通过=赋值,s3s4指向同一个堆的内容,可以直接比较 String s4="Hello"; //使用==和!=比较s1和s2的地址 System.out.println("s1==s2"+(s1==s2)); System.out.println("s1==s3"+(s1==s3)); System.out.println("s3==s4"+(s3==s4)); System.out.println("s3==s4"+s3.equals(s4));//比较内容,一般字符串用 System.out.println("s1==s2"+s1.equals(s2));输出结果:
a++和++a的区别: //运算 int num1=1; int num2=2; int sum=0;//赋初始值 sum=num1+num2; System.out.println("-----------------"); //加法 num1=num1+num2;//等号后面重新赋值,将num1+num2的结果赋值给num1 num1+=num2;//将左边的值重新赋值,赋值结果为左边加上右边的结果集 //先运算,再自增 num1++; System.out.println("直接输出num1++:"+(num1++));//先输出,再运算 System.out.println("num1++之后:"+num1); //先自增,再运算 ++num1; System.out.println("直接输出++num1:"+(++num1));//先运算,再输出 System.out.println("++num1之后:"+num1);输出结果:
常见运算符: 赋值:= int a=1; 算数运算 +, - ,*, / ,%(除余) , ++, – 比较:== != > < >= <= (返回boolean类型true/false) 逻辑符号 :&& 、 || 、! 条件运算符(三元运算符):表达式1?表达式2:表达式3; 复合赋值运算 += , -= , *= , /= , %=条件运算符:
//除法 System.out.println("----------------"); int x=101; int y=x/10;//除法 System.out.println(y); int z=x%10;//除余 System.out.println(z); int g=x>y?x+y:2; System.out.println(g);输出结果: 解: 判断表达式的值,true返回?前内容,false返回?后内容