Java第二天
文章目录
- Java第二天
- 1.java中加号的使用
- 2. java基本数据类型
- 3.java中浮点数运算注意
- 4.java自动类型转换规则(低精度转换为高精度)
- 5.强制类型转换(高精度转换为低精度)
- 6.数据类型转换练习题
- 7基本数据类型与String类型的相互转换
1.java中加号的使用
- 当加号左右两边都是数值型时,做加法运算,得到的结果也是数值型
- 当加号两边任意一方为字符串型时,做字符拼接,得到的结果是字符串型
举个例子:
System.out.println(100 + 98) 输出结果为198,数值型
System.out.println(“100” + 98) 输出结果为“10098”,字符串型2. java基本数据类型

注意与c语言类型的区别:
- java中char类型占2字节,可以存储单个汉字。c语言中char存放单个字符(ASCII码)只占1字节,不可存储汉字
- char类型可存放数字,输出时,输出的是该数字(Unicode码)对应的字符
- boolean类型不可用0或非0代替true或false
- java各整数类型在不同的os操作系统上,其所占字段长度(字节大小)相同,范围固定
- java整型常量默认为int,声明long型常量须在后加L,例如long n = 100L;
- java浮点型常量默认为double,声明float型常量须在后加L,例如float n = 100.1f;
- 可以把小范围赋值给大范围(等号两边左大右小,或者相等),反之不行。例如:double n = 10.1f(正确),float = 10.1(错误)。
- 浮点数,小数点前面是0,则0可以省略如double n = .1等价于double n=0.1
- 科学计数法5.12e2等价于5.12 *
3.java中浮点数运算注意
- java进行浮点数运算时,运算结果不是精确值,而是在一定精度范围内正确的值,例如double n1=8.1/3;double n2=2.7;此时在java内n1!=n2
public class floatt
{
public static void main(String[] args)
{
double n1 = 8.1/3;
double n2 = 2.7;
if(n1==n2)
{
System.out.println("n1与n2完全相等");
}
else
{
System.out.println("不完全相等");
}
}
}//输出结果为不完全相等- 若要判断相等,可用两者差的绝对值小于给定精度的方法来判断。
4.java自动类型转换规则(低精度转换为高精度)
- 多种类型混合计算,默认都转换为容量大的数据类型
- 把容量小的类型赋值给容量大的类型会自动转换,反之提示错误
- 转换规则:
1. char -> int -> long -> float -> double
2. byte -> short -> int -> long -> float -> double
3. (byte,short)与char不可相互自动转换- 定义并赋值byte时,如果赋值常量,首先判断是否符合byte范围,如果是就ok,不考虑默认int
- 如果是一个比byte范围大的变量赋值,则无论是否符合byte范围都不可给byte赋值
- byte,short,char三者在计算时,计算结果会返回Int型
byte a1 = 1,a2 = 2;
byte a3 = a1 + a2;//报错,此时a1 + a2的类型是int不可赋值给小精度byte5.强制类型转换(高精度转换为低精度)
- 强转符号优先级高,只会对最近的操作数有效
- char类型可以保存int的常量值(符合char表示范围的整数),但不能保存int的变量值,除非用强转
6.数据类型转换练习题
short s = 12 ; //ok 在short范围内,正确
s = s - 9; //错误,s-9转换为int,相当于把int赋值给short报错
byte b = 10; //ok常量赋值,且在byte范围内
b = b + 11; //错误b+11为int型,相当于把int赋值给byte报错
b=(byte)(b + 11);//ok 相当于把b+11的int型强制转换为byte再赋值给bchar c = ‘a’;//ok
int i = 16;//ok
float d = .314f;//ok //省略了0,相当于0.314f
double result = c + i + d //ok依据char -> int -> float ,等号右边结果为float,赋值给double类型byte b = 16;//ok
short s = 14;//ok
short t = s + b;//错误s+b为int型,不可赋值给short7基本数据类型与String类型的相互转换
- 基本数据类型->String类型:
在基本数据类型的变量后面直接写加号和双引号。
public class change
{
public static void main(String[] args)
{
int n1 = 100;
float n2 = 3.14f;
double n3 = 3.14;
boolean n4 = true;
String str1 = n1 + "";
String str2 = n2 + "";
String str3 = n3 + "";
String str4 = n4 + "";
System.out.println(str1 + " " + str2 + " " + str3 + " " + str4 + " ");
}
//输出结果100 3.14 3.14 true- String类型转基本数据类型
调用x.parsex()函数
public class change
{
public static void main(String[] args)
{
int n1 = 100;
float n2 = 3.14f;
double n3 = 3.14;
boolean n4 = true;
String str1 = n1 + "";
String str2 = n2 + "";
String str3 = n3 + "";
String str4 = n4 + "";
int m1 = Integer.parseInt(str1);
System.out.println(m1);
float m2 = Float.parseFloat(str2);
System.out.println(m2);
double m3 = Double.parseDouble(str3);
System.out.println(m3);
boolean m4 = Boolean.parseBoolean(str4);
System.out.println(m4);
}
}
/*输出结果100
3.14
3.14
true*/
















