Java数据类型拓展&面试题

数据类型扩展以及面试题

整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x

public class Demo03 {
    public static void main(String[] args) {
        int i = 9; //十进制
        int i2 = 010; //八进制,表示8
        int i3 = 0x10;  //十六进制,表示16  0~9  A~F表示10~15    0x10表示16    0x11表示17
        int i4 = 0xF;
        
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);
    }
}

浮点数拓展

//浮点数拓展
//=======================================================

//float 有限  离散  舍入误差    大约  接近但不等于
//double
//最好完全避免使用浮点数float进行比较
//最好完全避免使用浮点数float进行比较
//最好完全避免使用浮点数float进行比较

float f = 0.1f; //0.1
double d = 1.0/10;  //0.1

System.out.println(f==d);   //判断f是否等于d,等于显示true,否则显示false

float d1 = 213213213213f;
float d2 = d1 + 1;  //d2肯定不等于d1
System.out.println(d1==d2); //再次判断d1是否等于d2,结果为true

//这是因为float数据类型是有限的、离散的、舍入误差的,因此银行业务一定不要使用float类型
//而应该使用BigDecimal   数学工具类

字符型拓展

//===================================================
//字符拓展
//===================================================
char c1 = 'a';
char c2 = '董';

System.out.println(c1);
System.out.println((int)c1);//强制转换

System.out.println(c2);
System.out.println((int)c2);//强制转换

//强制转换后的结果为数字 97 和数字 33891,这说明了所有的字符本质上还是数字
//编码    Unicode(表:97 = a,65 = A) 2字节 长度范围:0——65536

//Unicode编码格式
//U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3);//输出结果为 a

关于转义字符

//===================================================
//转义字符
//===================================================

// \t 制表符
// \n 换行符
// \b 退格
// \r 回车
// \\ 反斜杠
// \? 问号字符
// \' 单引号字符
// \'' 双引号字符

System.out.println("Hello\tWorld"); //制表符
System.out.println("Dong\nJinjun"); //换行符
System.out.println("这是一个\r回车符号"); //回车符
System.out.println("这是一个反斜杠符号\\"); //反斜杠符
System.out.println("这是一个单引号字符:\'"); //单引号字符
System.out.println("这是一个双引号字符:\''"); //双引号字符

字符串类型的骚操作

//关于字符串类型的骚操作
String sa = new String("Hello World");
String sb = new String("Hello World");
System.out.println(sa==sb); //显示结果为false

String sc = "Hello World";
String sd = "Hello World";
System.out.println(sc==sd); //显示结果为true

//为什么会有不相同的结果呢? 这就要从对象,从内存进行分析了

布尔值拓展

System.out.println("================================");
//布尔值拓展
 
boolean flag = true;
if(flag==true){}    //新手写法:代码可读性高
if(flag){}  //老手写法:代码比较精简
// less is more
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值