02.java的数据转换,运算符,方法等
一,数据转换
1.1自动转换:
将取值小的类型自动转换为取值大的类型
byte,short,char->int->long->float->double
/*
数据类型转换:
自动转换(隐性转换):将取值小的类型自动转换为取值大的类型
转换规则:byte.short,char->int->long->float->double
强制转换(显性转换):将大的数值转换为小点得类型
强制类型转换注意事项:
1.强制类型转换会导致有可能导致数据溢出,精度损失
2. byte,short,char发生可以进行数学运算
3.byte,short ,char发生数学运算时都会先提升为int类型,再进行运算
4.布尔类型在java里不能进行数据转换
*/
public class DataType{
public static void main(String[] args){
//隐性转换
long num1=100;//正常long 类型,数字后面需要加L,现在默认数字int转换为Long
System.out.println(num1);
//浮点型隐性转换:单精度浮点转换为双精度浮点
double num2=2.5F;
System.out.println(num2);
//整数转换为小数
double num3=100;
System.out.println(num3);
/*
强制类型转换: 范围小的类型 范围小的变量名=(范围小的类型)数值;
*/
//int num4=100L;//会报错
//System.out.println(num4);
int num4=(int)100L;
System.out.println(num4);
int num5=(int)6000000000L;//long强制转换为int
System.out.println(num5);//1705032704,数据溢出
int num6=(int)3.99;
System.out.println(num6);//3,精度损失,小数位会丢失
//char类型强制转换
char word1='A';//65
System.out.println(word1+1);//66,ASCII表
byte num7=50;
short num8=100;
// 首先会类型转换byte+short=>int+int
//byte num9=num7+num8;//会报错
int num9=num7+num8;//150
System.out.println(num9);
}
}
1.2 强制转换
1.将大的数值转换为小点得类型
2.强制转换需要注意:
- 强制转换会导致数据溢出,精度丢失
- byte,short,char可以进行算数运算
- byte,short,char进行算术运算时会先将类型强制提升转换为int类型,再运算
- 布尔类型不能进行转换
1.3 ASCII码表
在计算机的内部,所有数据都是由0和1组成
ASCII
:American Standard Code for Information Interchange 美国标准信息交换码
人们规定
字符 | 数值 |
---|---|
0 | 48 |
9 | 57 |
A | 65 |
Z | 90 |
a | 97 |
z | 122 |
小贴士:
在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。char类型提升
为了int类型。char类型内存2个字节,int类型内存4个字节。
二.运算符
2.1 算数运算符
算数运算符 | 表达式 |
---|---|
加 | + |
减 | - |
乘 | ** |
除 | / |
取余(取模) | % |
==自增== | ++ |
==自减== | -- |
==++==:前置++;先++,再运算
后置++;先运算,再++
==--==:前置--;先--,再运算
后置--;先运算,再--
==+==:加号在连接两个字符串时起到的连接符
作用
2.2 赋值运算符
赋值运算符 | 表达式意思 |
---|---|
+= | 先加法运算,再赋值 |
-= | 先减法运算,再赋值 |
*= | 先乘法运算,再赋值 |
/= | 先除法运算,再赋值 |
%= | 先取余运算,再赋值 |
= | 等于 |
2.3 比较运算符
比较运算符 | 表达式意思 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
比较运算符的结果都是布尔值:true或者false
2.4 逻辑运算符
逻辑运算符 | 表达式意思 |
---|---|
&& | 1. 两边都是true,结果是true 2. 一边是false,结果是false 短路特点:符号左边是false,右边不再运算 |
|| | 1. 两边都是false,结果是false 2. 一边是true,结果是true 短路特点: 符号左边是true,右边不再运算 |
! | 1. ! true 结果是false 2. ! false结果是true |
逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false
2.5 三元运算符
数据类型 变量名 = 布尔类型表达式?结果1:结果2
==TIPS==:
- 三元运算符计算方式:
- 布尔类型表达式结果是 true,三元运算符整体结果为结果1,赋值给变量。
- 布尔类型表达式结果是 false,三元运算符整体结果为结果2,赋值给变量。
public static void main(String[] args) {
int i = (1==2 ? 100 : 200);
System.out.println(i);//200
int j = (3<=4 ? 500 : 600);
System.out.println(j);//500
}
三.方法
3.1 方法定义:就是讲==功能==抽取出来,把代码定义在一个大括号内,形成一个单独的功能。
//方法格式
修饰符 数据类型 方法名(参数列表){
方法体;
return;
}
3.2 方法的调用
public static void main(String[] args) {
//调用定义的方法method
method();
}
//定义方法,被main方法调用
public static void method() {
System.out.println("自己定义的方法,需要被main调用运行");
}
3.3 注意事项
-
方法注意事项:
- 一个方法不能定义在另一个方法里
- 方法只能定义在类外面