数据类型转换
- java程序中要求参与计算的数据,必须保证数据类型一致,如果数据类型不一致将发生类型的转换
自动转换
1、特点:代码不需要进行特殊处理,自动进行
2、规则:从【数据范围小的】转为【数据范围大的】
byte、short、char ‐‐> int ‐‐> long ‐‐> float ‐‐> double
public class Datetype {
public static void main(String[] args) {
//将int常量赋值给long类型变量
// int --> long 符合范围小的转为范围大的,所以不报错,自动将int转为long类型
long num1 = 300;
}
}
强制转换
1. 特点:代码需要特殊处理,不能自动进行;
2. 规则:从【数据范围大的】转为【数据范围小的】
3.注意:进行强转时,可能会造成数据损失精度和数据溢出
int a = 2.5; // 错误,右边为double类型大于int类型,所以会报错
int a = (int) 2.5; //进行强制转换为int类型,结果输出为2,小数点丢失即损失精度。
int a = (int) 1000000000000L; //结果输出为1705032704,超出int范围,数据溢出。
ASCII编码表
char zifu = 'A';
System.out.println(zifu + 0); // 打印65
int a = 1;
System.out.println(zifu + 1); // 打印66
int num = zifu;
System.out.println(num); // 打印65
char zifu2 = '中'
System.out.println(zifu2 + 0); // 打印20013
运算符
算数运算符
-加 +
-减 –
-乘 *
-除 / (整型除法只取商,且商只能是整型,弃掉余数)
-取模 % (只对整型除法有用,只取余数,即取模)
-自增/自减运算符 ++变量、变量++、–变量、变量– (变量自己+1/-1)
-1、单独使用自增自减运算符时,放在变量前还是后无区别
-2、如果是和打印或者赋值语句混合使用,则:
-a、++变量时,变量先加上1再对变量结果进行使用。即先加后用
-b、变量++时,先对变量本来的值进行使用,再+1。即先用后加
//字符串相加表示字符串的拼接
String str1 = "Hello";
String str2 = "World";
System.out.println(str1 + str2); // HelloWorld
//优先级
System.out.println(str1 + 50); // Hello50
System.out.println(str1 + 50 + 10); // Hello5010
System.out.println(str1 + (50 + 10)); // Hello60
//自增自减运算符
int a = 10;
System.out.println(a); // 10
++a;
System.out.println(a); // 11
a++;
System.out.println(a); // 12
int b = 20;
System.out.println(++b); // 21
System.out.println(b); // 21
int b = 20;
System.out.println(b++); // 20
System.out.println(b); // 21
int x = 10;
int y = 20;
int result = ++x + y--
System.out.println(result); // 31
System.out.println(x); // 11
System.out.println(y); // 19
复合赋值运算符
-=、+=、*=、/=、%=
//赋值运算自带强制转换类型
short a += 1; // short a = (short) (a + 1)
比较运算符
>、<、>=、<=、==、!=
//不能进行连续比较
1 < x < 3 //这种是错误的
逻辑运算符
与 && :遇false则false
或 || :遇true则true
非 ! :遇true则false,遇false则true
-短路逻辑:
-与左边若是false,则右边不计算
-或左边若是true,则右边不计算
int a = 10;
System.out.println(4 < 3 && ++a); // false
System.out.println(a); // 10 与运算的短路,右边++a不计算
int b = 10;
System.out.println(3 < 4 || ++b); // true
System.out.println(b); // 10 或运算的短路,右边++b不计算
三元运算符
数据类型 变量名 = 条件判断 ? 表达式A : 表达式B
-若条件成立则为true,将A赋值给变量
-若条件不成立则为false,将B赋值给变量
int a = 10;
int b = 20;
int max = a > b ? a : b;
//若a > b为true,则将a赋值给max,max == 10,否则将b赋值给max,max == 20.
// 右侧表达式数据类型必须和左侧变量的数据类型一致
方法入门
格式
修饰符 返回值类型 方法名(参数列表) {
代码;
return;
}
public static void 方法名() {
}
//返回值类型是void,多以大括号内不用写return
调用
方法名()
调用练习
public class Demo {
public static void main(String[] args) {
practice(); // 调用practice方法
}
public static void practice() { // 创建practice方法
int i = 1 == 2 ? 100 : 200;
System.out.println(i);
int j = 1 < 2 ? 11 : 22;
System.out.println(j);
}
}
/* 结果打印为
200
11
*/
注意事项:
1、 方法必须定义在一个类中
2、方法不能定义在另一个方法中