数据类型及其拓展
Posted "ⁿᵃⁿᵒ"
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据类型及其拓展相关的知识,希望对你有一定的参考价值。
数据类型
整型的区分
区别long类型可以在定义的整数后面加上L
int num1 = 100;
short num2 = 100;
long num3 = 100L;
浮点数的区分
float类型后面可加上F
float num4 = 3.14F;
double num5 = 3.14;
拓展
整数拓展
二进制开头:0b
八进制开头:0
十六进制开头:0x(x为小写)
public class Demo1 {
public static void main(String[] args) {
int num1 = 10;//十进制
int num2 = 0b10;//二进制
int num3 = 010;//八进制
int num4 = 0x10;//十六进制
System.out.println(num1);//输出为10
System.out.println(num2);//输出为2
System.out.println(num3);//输出为8
System.out.println(num4);//输出为16
}
}
浮点数拓展
银行业务(钱)不要用float和double
public class Demo1 {
public static void main(String[] args) {
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f);//输出为0.1
System.out.println(d);//输出为0.1
System.out.println(f == d);//判断f与d是否相等(结果输出为false)
}
}
以上虽然都为0.1,但是输出不相等
还有更容易出错的如下
public class Demo1 {
public static void main(String[] args) {
float f1 = 123f;
float f2 = f1 + 1;
System.out.println(f1 == f2);//判断f1与f2是否相等(结果输出不等)
float f3 = 123456789f;
float f4 = f3 + 1;
System.out.println(f3 == f4);//判断f3与f4是否相等(结果输出相等)
}
}
当数字比较长时,发现计算会出现问题,所以处理银行业务时不使用float和double
出现以上问题的原因:浮点数是有限的,离散的,存在舍入误差,无法表示一个精确的数(可以大概理解为约数),接近,但不等于。所以避免使用浮点数进行比较。当我们需要比较时,可以用一个类:BigDecimal,数学工具类。
字符拓展
public class Demo1 {
public static void main(String[] args) {
char c1 = \'A\';
char c2 = \'中\';
System.out.println(c1);//强制转换,输出A
System.out.println((int)c1);//强制转换,输出65
System.out.println(c2);//强制转换,输出中
System.out.println((int)c2);//强制转换,输出20013
}
}
字符的本质还是数字(通过编码实现)
比如我们通过转义字符,写出以下代码,会输出a
public class Demo1 {
public static void main(String[] args) {
char c3 = \'\\u0061\';
System.out.println(c3);//a
}
}
转义字符
如\\t代表制表符,\\n换行等
涉及到对象,内存的
public class Demo1 {
public static void main(String[] args) {
String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1==s2);//输出false
String s3 = "abc";
String s4 = "abc";
System.out.println(s3==s4);//输出true
}
}
布尔值拓展
以下代码的两条if语句,表示的含义相同
less is more!
boolean flag = true;
if (flag) {}
if (flag == true) {}
以上是关于数据类型及其拓展的主要内容,如果未能解决你的问题,请参考以下文章
Java学习笔记之八java二维数组及其多维数组的内存应用拓展延伸