1.基本数据类型的转换
1.boolean不参与基本数据类型转换的
2.基本数据类型精度的排序
byte short char int long float double
3.隐式数据类型转换【自动数据类型转换】
数据类型精度低的转换成数据类型精度高的这个过程就是隐式数据类型转换【自动数据类型转换】
低---->高 隐式数据类型转换【自动数据类型转换】
4.显式数据类型转换【强制数据类型转换】
数据类型精度高的转换成数据类型精度低的这个过程就是显式数据类型转换【强制数据类型转换】
高---->低 显式数据类型转换【强制数据类型转换】
格式:低类型 变量名称 = (低类型)高[值/变量];
例如:
public class DateType{
public static void main(String args[]){
int intnumber1=100;
double dnumber1=intnumber1;
double dnumber2=123;
System.out.println("dnumber1=="+dnumber1+",dnumber2=="+dnumber2);
double dou1=133.3;
int num1=(int)dou1;
System.out.println("num1=="+num1);
}
}
5.char 与 int 也是可以进行转换的
char num2='人';
int numi1=num2;
System.out.println("numi1=="+numi1);
int numb=20154;
char numcha1=(char)numb;
System.out.println("numcha1=="+numcha1);
6.int与byte的转换
当整数超过取值范围以后,会从最小值往前推进计算
int number1=130;
byte numbyt1=(byte)number1;
System.out.println("numbyt1=="+numbyt1);
int number2=-130;
byte numbyt2=(byte)number2;
System.out.println("numbyt2=="+numbyt2);
1.当整数int转换成byte时,int取值正数超过byte范围以后,会从byte最小值向前推进计算。
2.当整数int转换成byte时,int取值负数超过byte范围以后,会从byte最大值向后推进计算。
2.Java中的运算符
1.赋值运算符 =
int num1=1;
2.算术运算符 【+ - * / %(求余) ++(自动加1) --(自动减1)】
public class Yun{
public static void main(String args[]){
int num1=30;
int num2=5;
System.out.println(num1+"+"+num2+"="+(num1+num2));
System.out.println(num1+"-"+num2+"="+(num1-num2));
System.out.println(num1+"*"+num2+"="+(num1*num2));
System.out.println(num1+"/"+num2+"="+(num1/num2));
System.out.println(num1++);
System.out.println(num1);
System.out.println(num1--);
System.out.println(num1);
}
}
【++自动加1】
变量++ 【先用后加1】
++变量 【先加1后用】
【--自动减1】
变量-- 【先用后减1】
--变量 【先减1后用】
3.比较运算符 【> < >= <= == !=】
比较运算符的运算结果为Boolean值
int a=30;
int b=60;
System.out.println(a+">"+b+"=="+(a>b)); //false
System.out.println(a+"<"+b+"=="+(a<b)); //true
4.逻辑运算符 【|| && ! 】使用逻辑运算符的数据是boolean值
||【短路或】 运算符号的左边结果为true时,右边不计算,结果为ture
System.out.println(a<b|| (10/0>0)); ture ||前面对就对,与后面无关
&&【短路与】 运算符号的左边结果为false时,右边不计算,结果为false
System.out.println(a>b&& (10/2>1)); false &&前面错就错,与后面无关
!【求反】 黑变白 白变黑
System.out.println(!(a>b)); ture a>b错误 求反则正确
{位运算符 | & ! ~ ^ >> << }:需要将数据转换成2进制数据进行运算
首先掌握10进制转2进制:短除法 8421码转换
1024 512 256 128 64 32 16 8 4 2 1
7=4+2+1=00000111
14=8+2+4=00001110
负数的2进制:
就是补码表示:负数的补码就是:是原码基础上符号位不变,其余各位取反,最后+1.(反码+1)
负数的反码是:是原码基础上符号位不变,其余各位取反。
-7的二进制 首先得到 7的二进制
7的二进制:00000111
-7的原码: 10000111
-7的反码: 11111000
-7的补码: 11111001 即-7的二进制
| 按位或 相同为只要一个为1即为1 【7 | -7】 01=1,10=1,11=1
00000111
11111001
结果: 11111111 =-1 System.out.println(7 | -7);
& 按位与 相同1为1,不同为0 11=1,01=0,10=0,00=0 【7&-7】
00000111
11111001
结果: 00000001 =1 System.out.println(7 & -7);
^ 按位异或 相同位不同为1,相同为0 01=0,10=1,00=0,11=0
00000111
11111001
结果: 11111110 =-2 System.out.println(7 ^ -7);
~ 取反 0和1全部取反
<<左移位 2进制整体向左移动指定的位数
7<<2
7的二进制:00000111
7<<2 00011100 =28 System.out.println(7 << 2);
>>右移 2进制整体向右移动指定的位数
7>>2
7的二进制:00000111
7>>2 00000001 =1 System.out.println(7 >> 2);
5.三元运算符 【(判断)? 数据值1 :数据值2】
先判断,判断结果为true,整运算表达式的结果取数据值1
判断结果为false,整运算表达式的结果取数据值2
a=30;
b=60;
char ch1=(a>b)?'T':'F';
System.out.println("ch1=="+ch1);
输出ch1==F
3.Java中的语句
1.顺序结构(从上往下一行一行逐个执行)
2.选择结构【if语句 switch结构】
if(判断){java代码}
先执行判断,ture时执行 {java代码},false时不执行
public class If{
public static void main(String args[]){
int num=60;
if(num>=60){
System.out.println("及格");
}
}
}
if(判断){java代码}else{java代码1}
先执行判断,ture时执行 {java代码1},false时执行 {java代码2}
int num=59;
if(num>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
不及格
if(判断1){java代码1}else if(判断2) {java代码2}.........else {java代码n}
所有的判断都为false,则执行最后一个else中的 {java代码n}
int num=59;
if(num>=60 && num<=79){
System.out.println("及格");
}else if(num>=80 && num<90);
System.out.println("良好");
}else if(num>=90 && num<100);
System.out.println("优秀");
}else {
System.out.println("不及格");
}
}
if else的代码是可以相互嵌套的
3.循环结构 【for循环 while循环 do...while循环】
4.break语句 continue语句