Class02
1.自动类型值转换
隐式类型转换
显式类型转换
隐式类型转换(自动类型转换)
隐式类型转换是小范围向大范围转换
实际上小范围包含在大范围内
整数类型的默认类型为int
浮点数类型的默认类型为double
显式类型转换(强制类型转换)
将大范围手动操作放到小范围的过程
数据溢出
大范围的数据转换成小范围的数据,就如同大水缸里面的水到入小水缸中,很容易将水灌满小水缸将剩下的水撒出来,这时候就发生了数据溢出。
//long类型强制转换成int类型,发生数据丢失int num2=(int)123456789L;System.out.println(num2);
精度丢失
将整数类型转换成浮点数类型时,常常只会取整数部分,而丢失的小数部分的情况就叫精度丢失
//浮点数类型强制转换成int类型,发生精度损失int num3=(int)1.23456;System.out.println(num3);
byte,short类型在计算过程中会自动转换成int类型
byte num4=40;byte num5=50;//byte+byte==>int+int==>intint result=num4+num5;System.out.println(result);
char类型也可以用于计算
char zifu='a';//char字符可以进行数据运算System.out.println(zifu+1);
2.编码表
ASCII表:美国信息交换标准代码(0~127)
Unicode表:万国码(全)
public class Demo03DataTypeChar {public static void main(String[] args) {char zifu1='0';System.out.println(zifu1+0);//打印输出48char zifu2='A';char zifu3='a';int num=zifu3;System.out.println(num);//打印输出97char zifu4='中';System.out.println(zifu4+0);//打印输出20013}
}
3.运算符与表达式
运算符:进行运算的符号
表达式:用运算符连接的式子
四则运算符
+, -, *, /, 取模(%)
public class Demo05Plus {public static void main(String[] args) {String str1="Hello";//定义字符串System.out.println(str1);//打印输出Hello// + 起连接作用System.out.println("Hello"+"World");//打印输出HelloWorldString str2="Java";System.out.println(str2+20);//打印输出Java20System.out.println(str2+20+30);//打印输出Java2030System.out.println(str2+(20+30));//打印输出Java50}
}
自增自减运算符
++, –
单独使用:前增和后增 / 前减和后减没区别
int num1=10;System.out.println(num1);//输出10num1++;//后++System.out.println(num1);//输出11++num1;//前++System.out.println(num1);//输出12
混合使用:前增/减 在输出的时候直接改变原值,而后增/减则是先直接输出值,然后才改变值的大小
int num2=10;System.out.println(++num2);//输出11System.out.println(num2);//输出11int num3=10;System.out.println(num3++);//输出10System.out.println(num3);//输出11int num4=40;int result1=--num4;//System.out.println(result1);//输出39System.out.println(num4);//输出39int num5=50;int result2=num5--;System.out.println(result2);//输出40System.out.println(num5);//输出39int x=10;int y=20;int result3=++x+y--;System.out.println(result3);//输出31System.out.println(x);//输出11System.out.println(y);//输出19
赋值运算符
=
基本赋值运算符:
复合赋值运算符:
public class Demo07Operator {public static void main(String[] args) {int a=10;//实例化变量a+=5;//a=a+5System.out.println(a);//输出15int x=10;//实例化变量x%=3;//x=x%3System.out.println(x);//输出1byte num=30;//实例化变量num+=5;//num=num+5System.out.println(num);//输出35}
}
比较运算符
public class Demo08Operator {public static void main(String[] args) {System.out.println(10>5);//输出trueint num1=10;int num2=20;System.out.println(num1<num2);//输出trueSystem.out.println(num2>=100);//输出falseSystem.out.println(num2<=100);//输出trueSystem.out.println(num2<=12);//输出trueSystem.out.println(10==10);//输出trueSystem.out.println(20!=25);//输出trueSystem.out.println(20!=20);//输出falseint x=2;//System.out.println(1<x<2);不能连写,编译报错}
}
逻辑运算符
||:逻辑或
&&:逻辑与
!:非
System.out.println(true&&false);//输出falseSystem.out.println(3<4&&10>5);//输出trueSystem.out.println(true||false);//输出trueSystem.out.println(true||true);//输出trueSystem.out.println(false||false);//输出falseSystem.out.println(true);//输出trueSystem.out.println(!true);//输出fasle
||和&&具有短路效果,如果左边的代码执行完已经可以判断结果,将不会执行右边的代码了,有助于节省性能。
int a=10;System.out.println(3>4&&++a<100);//输出falseSystem.out.println(a);//输出10int b=20;System.out.println(3<4||++b<100);//输出trueSystem.out.println(b);//输出20
三元运算符
变量名称=条件判断?表达式1:表达式2
4.方法
public static void 方法名称() {方法体
}
注意:
1.方法定义先后顺序无所谓
2.方法之间不能嵌套
3.方法的执行需要调用
public class Demo11Method {//农民public static void farmer(){System.out.println("播种");System.out.println("浇水");System.out.println("施肥");System.out.println("除虫");System.out.println("收割");System.out.println("卖给小商贩");}//小商贩public static void seller(){System.out.println("运输到农贸市场");System.out.println("抬高价格");System.out.println("卖给厨子");}//厨子public static void cook(){System.out.println("洗菜");System.out.println("切菜");System.out.println("炒菜");System.out.println("装盘");}//我public static void me(){System.out.println("吃");}public static void main(String[] args) {farmer();seller();cook();me();}}