Java学习问题记录

1.特殊基本数据类型

除了这两个,其他的变量都不需要加符号

//定义时需要在变量的值后面加 L或l
long count=300000L;
//定义时需要在变量的值后面加 f或F
float code=10.3f;

2.常量定义

//在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:(通常使用大写字母表示常量)
final double PI = 3.1415927;
//定义一个静态常量
public static final String DEPARTMENT = "开发部";

3.字符型字面值char

char只能使用单引号

//char只能使用单引号
char a='$';

4.类型转换(java中)

取值范围大的类型要转换范围小的类型,只能强制转换;
取值范围小的类型要转换范围大的类型,能自动隐式转换。

(取值范围从小到大排序,从后往前都需要强制转换,逗号之间也需要强制转换:byte,char,short<int<long<float<double)

//int转byte需要强制转换
int num = 127;
//byte bs = num;      //wrong
byte bs = (byte)num;  //correct
System.out.println(bs);

5.精度丢失

double和float小数点相加都会有精度丢失的问题

//double精度丢失
double dnum1=1.01;
double dnum2=2.01;
double dnum3=dnum1+dnum2;
System.out.println("double计算结果 = " + dnum3); //double计算结果 = 3.0199999999999996

//float精度丢失
float fnum1=1.1f;
float fnum2=2.000001f;
float fnum3=fnum1+fnum2;
System.out.println("float计算结果 = " + fnum3); //float计算结果 = 3.1000009

//BigDecimal保持精度
BigDecimal bnum1 = new BigDecimal(String.valueOf(1.1f));  //必须传字符串类型的参数
BigDecimal bnum2 = new BigDecimal(String.valueOf(2.000001f));
BigDecimal bnum3 = bnum1.add(bnum2);
System.out.println("BigDecimal计算结果 = " + bnum3); //BigDecimal计算结果 = 3.100001
posted @ 2023-06-01 16:38  千山淼  阅读(30)  评论(0)    收藏  举报