数据类型转换
自动类型数据转换
1、特点:代码不需要进行特殊处理,自动完成。
2、规则:数据范围从小到大。
public class test3 {
public static void main(String[] agrs){
System.out.print(1024);//这是一个整数,默认就是int整型
System.out.print(3.14);//这就是一个浮点数,默认就是double类型
//左边是long类型,右边是默认的int类型,左右不一样
//一个等号代表赋值,将右侧的int常量,给左侧的long进行变量存储
//发生了自动类型转换
long num1=100;
System.out.print(num1);//100
double num2=2.5F;
System.out.print(num2);//2.5
float num3=30L
System.out.print(num3);//30.0
}
强制类型转换
1、格式:代码需要进行特殊格式处理,不能自动完成
2、格式:范围小的类型,范围小的变量名=(范围小的类型)原本范围大的数据;
注意事项:
1、强制类型转换可能会发生,数据溢出、精度损失
2、byte/short/char这三种类型都可以发生数学运算。
3、byte/short/char这三种类型在运算的时候,都会被首先提升为int类型,然后再进行计算。
4、boolean类型不能发生数据类型转换
代码展示
public class test3 {
public static void main(String[] args){
//格式:范围小的类型 范围小的变量名=(范围小的类型)原本范围大的数据;
int num=(int)100L;
System.out.print(num);
//long强制转换成int类型
// int num2=(int)60000000000;
//System.out.print(num2);数据溢出,显示整数过大
//double---int,强制类型转换
int num3=(int)3.99;
System.out.print(num3);//结果:3.导致精度溢出
char zifu1='A';//这是一个字符变量,里面是大写字母A
System.out.print(zifu1+1);//66 ASCII:A代表65、a代表的是97、0代表的是4
}
}
运算符
1、对于一个整数来说,除法用的是整除,整数除以整数只看商,不看余数。对于有整数的除法来说,取模运算才有余数的意义 `
public class test3 {
public static void main(String[] args){
//两个常量之间可以进行数学运算
System.out.print(20+30);
int a=20;
int b=30;
System.out.print(a-b);//-10
//变量之间可以混合使用
System.out.print(a*10);//200
int x=10;
int y=3;
int result1=x/y;
System.out.print(result1);//3
int result2=x % y;
System.out.print(result2);//余数,%为1
//数据类型不统一,首先是将数据类型统一,结果将会是数据类型范围大的一方
double result3=x+2.5;
System.out.print(result3);//12.5
}
}
四则运算当中“+"常见的三种用法
- 对数值来说是加法。
- 对于字符char类型来说,在计算之前,char会被提升为int,然后再计算。char类型字符,和int类型数字,之间的对照关系表,ASCII、Unicode
- 对于字符串String(首字母大写)并非是关键字,加号代表的是连接作用。任何数据类型和字符串连接的时候都会变成字符串
- 小括号优先于其它运算符,小括号可以无限嵌套
public class test3 {
public static void main(String[] args){
String str1="hello";
System.out.print(str1);//hello
System.out.print("Hello"+"world");//Helloworld
String str2="java";
//String+int---String
System.out.print(str2+20);//java20
/*
优先级问题
String +int +int
String +int
String
*/
System.out.print(str2+20+30);//java2030
System.out.print(str2+(20+30));//java50
}
}
自增运算符:++
自减运算符:–
注意事项:只有变量可以使用自增自减运算符常量不可以使用,常量不可以改变
/*
基本含义:让一个变量张一个数字1,或者让一个变量降数字1
使用格式:写在变量名称之前,或者写在变量名称之后,++num1或这num1++
使用方式:
1.单独使用
2.混合使用
使用区别 :
1.在单独使用的是时候,前++和后++没有什么区别,完全一致
2.在混合使用的时候有区别
A如果前++,那么变量立刻马上加1
B如果后++,那么首先使用变量本来的数值,
*/
public class test3 {
public static void main(String[] args){
int num1=10;
System.out.print(num1);//10
++num1;//单独使用
System.out.print(num1);//11
num1++;//单独使用,后++
System.out.print(num1);//12
//与打印操作混合的时候
int num2=20;
System.out.print(++num2);//21
System.out.print(num2);//21
int num3=30;
//混合使用后,后++,首先使用变量本来的30,然后再让变量+1得到31
System.out.print(num3++);//30
System.out.print(num3);//31
}
}
赋值运算符
基本赋值运算符,就是一个“=”,代表将右侧的数据交给左侧的变量
int a =30
复合赋值的运算符:
+= 、-=、*=、/=、%=
注意事项:
1、只有变量才嫩使用赋值运算符,常量不能进行赋值运算符
2、复合赋值运算符隐含了一个强制类型转换
代码演示
public class test3 {
public static void main(String[] args){
int a =10;
/*
a=10+5
//a本来是10,现在重新赋值得到15
*/
a +=5;
System.out.print(a);
int x=10;
/*
x=x%3;
x=10%3
x=1
x本来是10,现在重新赋值得到1
*/
x %=3;
System.out.print(x);//1
}
}
比较运算符
大 于 >
小 于 <
大于等于 >=
小于等于 <=
相 等 ==
比 较 !=
注意事项
- 比较运算符一定是个boolean值,只有ture和false。
- 如果进行多次判断不能连着写
代码展示
public class test4 {
public static void main(String[] agrs){
System.out.print(50>30);//ture
int num1=10;
int num2=12;
System.out.print(num1<num2);//ture
System.out.print(num2>=100);//false
System.out.print(num2<=12);//true
System.out.print(num2==12);//true
System.out.print(num1!=num2);//true
}
}
逻辑运算符
与(并且) && 全都是true,才是true,否则就是false
或(或者) || 至少一个是true,就是true;全都是false,才是false
非(取反) ! 本来是true,变成false;本来是false,变成true
与“&&“,或“||”,具有短路效果;如果根据左边已经可以判断得到最终的结果,那么右边的代码将不再执行,从而节省一定的性能。
注意事项:逻辑运算只能用于boolean值
与和或需要,左右都有一个boolean值,取反只需要有唯一一个boolean值即可。
public class test4 {
public static void main(String[] agrs){
System.out.print(true&&false);//false
System.out.print(3<4||10>5);//true
System.out.print(true||false);//true
System.out.print(false||false);//false
//取反!
System.out.print(true);
System.out.print(!true);//false
int a=10;
//false&&...
System.out.print(3<4&&++a>100);//true
System.out.print(a);//10
}
}
一元运算符:只需要一个数据就可以进行操作的运算符。举例:自增,自减,取反。
二元运算符:需要两个数据才可以进行操作的运算符。举例:加法+、赋值=、
三元运算符:需要三个数据才可以进行操作的运算符。
格式
数据类型 变量名称 =条件判断 ?表达式 A : 表达式B;
流程
首先判断条件是否成立:
如果不成立为ture,那么将表达式A的值赋值给左侧的变量;
如果不成立为false,那么将表达式的B值赋值给左侧的变量;
注意事项
1、必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
2、三元运算符的结果必须被使用