关于java数据类型拓展
在上一篇文章中,我们介绍了数据类型,变量等内容。
本篇文章向大家拓展一下数据类型常见的问题,讲学习到的知识点,结合实际生活中的项目上问题或者是参加面试的时候,常见的一些问题,都是比较典型值得思考的问题😶🌫️
整型拓展
整型中涉及到最常见的问题,就是进制问题。
- 二进制 0b
- 八进制 0
- 十进制
- 十六进制 0x
下面代码中举例说明,大家也可以自己去敲代码体验一下,尽量不要直接复制走,要多敲多练😀
public class Demo{
public static void main(String[] args){
int num=10; //声明一个值为10的整型变量
int num1=0b10;//二进制,在10前面加0b
int num2=010;
int num3=0x10;
System.out.println(num1);//输出结果是10
System.out.println(num1);//输出结果是2
System.out.println(num2);//输出结果是8
System.out.println(num3);//输出结果是16
}
}
浮点型拓展
- 浮点型分为两种,一种单精度浮点型float,一种双精度浮点型double。
- 有时候结合生活,面试官可能会问银行的业务用什么去做?因为银行需要算钱,算金额,所以大多数人都会说用float和double去计算,其实就是掉到了陷阱里面🥲下面举例说明一下。
public class Demo{
public static void main(String[] args){
float num=0.1F;//首先声明一个值为0.1的单精度浮点型变量
double num1=1.0/10;//再声明一个值同样为0.1的双精度浮点型变量
System.out.println(num);//输出结果为0.1
System.out.println(num1);//输出结果为0.1
//判断一下两个值是否相等,用==,相等输出结果为true,反之为false
System.out.println(num==num1);//输出结果为false
}
}
虽然看着输出结果,两个都是等于0.1,但是判断相等的时候,程序显示这两个值并不相等!
- 通过上面例子可以知道,float是有限的,是离散的,比如上面的0.1,只是四舍五入,大约是0.1,无限接近但是不等于。
- 银行业务,一般都会用BigDecimal,是一个数学工具类(至于类的定义以后的文章中会说到😀)
字符拓展
- 首先定义两个字符类型的变量
public class Demo{
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(强类型转换,将字符类型强转换为整数类型)
}
}
- 可见,所有的字符,本质还是数字。
- char类型涉及到编码问题。
- 编码 UniCode 感兴趣的小伙伴可以去搜索一下 “编码UniCode列表” 这里就不一一讲述了。
转义字符拓展
- 转义符常用于表示,无法直接输入,或者显示的字符,像回车,换行,自动对齐等等。
- \t 制表符
System.out.println("Hello\tWorld");
//输出的结果是Hello World
- \n 换行符
System.out.println("Hello\nWorld");
//输出的结果是
Hello
World
- \r 回车符
System.out.println("Hello\rWorld");
//输出的结果是
Hello
这里会发现,World消失了,是由于回车字符会顶替掉后边的部分,所以在书写的时候,加一个换行字符\n就可以了。
System.out.println("Hello\r\nWorld");
//输出的结果是
Hello
World
布尔类型拓展
下面给大家展示一下两段代码
用if判断条件是否相等(后续的文章会说明if,else等)
boolean flag=true;
//新手
if(flag==true)
{
System.out.println("成功");
}
//老手
if(flag)
{
System.out.println("成功");
}
这两段代码其实是一样的,因为flag=true,直接简化就可以了,新手一般用第一种,老手都是用第二种。
- **less is More!**代码要精简易读😀