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==>int
int 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);//打印输出48
char zifu2='A';
char zifu3='a';
int num=zifu3;
System.out.println(num);//打印输出97
char 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");//打印输出HelloWorld
String str2="Java";
System.out.println(str2+20);//打印输出Java20
System.out.println(str2+20+30);//打印输出Java2030
System.out.println(str2+(20+30));//打印输出Java50
}
}
自增自减运算符
++, –
单独使用:前增和后增 / 前减和后减没区别
int num1=10;
System.out.println(num1);//输出10
num1++;//后++
System.out.println(num1);//输出11
++num1;//前++
System.out.println(num1);//输出12
混合使用:前增/减 在输出的时候直接改变原值,而后增/减则是先直接输出值,然后才改变值的大小
int num2=10;
System.out.println(++num2);//输出11
System.out.println(num2);//输出11
int num3=10;
System.out.println(num3++);//输出10
System.out.println(num3);//输出11
int num4=40;
int result1=--num4;//
System.out.println(result1);//输出39
System.out.println(num4);//输出39
int num5=50;
int result2=num5--;
System.out.println(result2);//输出40
System.out.println(num5);//输出39
int x=10;
int y=20;
int result3=++x+y--;
System.out.println(result3);//输出31
System.out.println(x);//输出11
System.out.println(y);//输出19
赋值运算符
=
基本赋值运算符:
复合赋值运算符:
public class Demo07Operator {
public static void main(String[] args) {
int a=10;//实例化变量
a+=5;//a=a+5
System.out.println(a);//输出15
int x=10;//实例化变量
x%=3;//x=x%3
System.out.println(x);//输出1
byte num=30;//实例化变量
num+=5;//num=num+5
System.out.println(num);//输出35
}
}
比较运算符
public class Demo08Operator {
public static void main(String[] args) {
System.out.println(10>5);//输出true
int num1=10;
int num2=20;
System.out.println(num1<num2);//输出true
System.out.println(num2>=100);//输出false
System.out.println(num2<=100);//输出true
System.out.println(num2<=12);//输出true
System.out.println(10==10);//输出true
System.out.println(20!=25);//输出true
System.out.println(20!=20);//输出false
int x=2;
//System.out.println(1<x<2);不能连写,编译报错
}
}
逻辑运算符
||:逻辑或
&&:逻辑与
!:非
System.out.println(true&&false);//输出false
System.out.println(3<4&&10>5);//输出true
System.out.println(true||false);//输出true
System.out.println(true||true);//输出true
System.out.println(false||false);//输出false
System.out.println(true);//输出true
System.out.println(!true);//输出fasle
||和&&具有短路效果,如果左边的代码执行完已经可以判断结果,将不会执行右边的代码了,有助于节省性能。
int a=10;
System.out.println(3>4&&++a<100);//输出false
System.out.println(a);//输出10
int b=20;
System.out.println(3<4||++b<100);//输出true
System.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();
}
}