您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第3章:Java基础程序设计】_Java数据类型
发布时间:2020-11-15 10:41:27编辑:雪饮阅读()
数据溢出
当定义一个变量的值超过该变量类型的范围时会导致数据溢出,编译都无法通过
public class TestJava{
public static void main(String args[]){
int n=99999999999999999999999999999999;
}
}

Integer(int最大范围)的最大值
public class TestJava{
public static void main(String args[]){
int n=Integer.MAX_VALUE;
System.out.print(n);
}
}

最大值加1是最小值,再加1就是次小值依此类推
public class TestJava{
public static void main(String args[]){
int n=Integer.MAX_VALUE;
System.out.println(n+1);
System.out.println(n+2);
}
}

用长整型强制转换可以解决最大值加1就是最小值的问题
public class TestJava{
public static void main(String args[]){
int n=Integer.MAX_VALUE;
System.out.println((long)n+2);
}
}

字符的本质也是数值(ascill码),所以字符不仅仅单双引号进行定义,只要是char类型,则也可以用数值代替
public class TestJava{
public static void main(String args[]){
char ch1='a';
char ch2=97;
System.out.println(ch1);
System.out.println(ch2);
}
}

转义字符
public class TestJava{
public static void main(String args[]){
char ch1='\"';
char ch2='\\';
System.out.println(ch1);
System.out.println(ch2);
}
}

定义浮点型数据要指定精度,否则默认精度会有默认转换的情况损失精度
这里定义浮点型3.0,那么也就是说要的是float的目的数据,而默认是double,double转换到float是会损失精度的。
public class TestJava{
public static void main(String args[]){
float num=3.0;
}
}

指定精度后就没有问题了
public class TestJava{
public static void main(String args[]){
float num=3.0f;
}
}

布尔类型
public class TestJava{
public static void main(String args[]){
boolean flag=true;
System.out.print(flag);
}
}

自动转型
这里整数除以浮点型最后的结果自动转换为浮点型了。
public class TestJava{
public static void main(String args[]){
int x=30;
float y=22.19f;
System.out.print(x/y);
}
}

public class TestJava{
public static void main(String args[]){
System.out.print(10/3.5);
}
}

整型相除问题
这里相除的结果很明显损失了精度
public class TestJava{
public static void main(String args[]){
System.out.print(10/3);
}
}

用强转float可以解决该问题
public class TestJava{
public static void main(String args[]){
System.out.print((float)10/3);
}
}

字符串与int的运算
public class TestJava{
public static void main(String args[]){
String str="gaojiupan";
int x=30;
str=str+x;
System.out.print(str);
}
}
上面这是正常情况,再看一个比较异常的情况
public class TestJava{
public static void main(String args[]){
System.out.print("1+2="+1+2);
}
}

这种情况是字符串直接进行追加了,没有把后面两个先计算再追加,像是下面这样就好了
public class TestJava{
public static void main(String args[]){
System.out.print("1+2="+(1+2));
}
}

强制类型转换丢失精度
public class TestJava{
public static void main(String args[]){
float f=30.3f;
int x=(int)f;
System.out.print(x);
}
}

关键字词:java,数据类型