学习拓展(面试基础试题)

整数的拓展

  • 进制:都是从0开始数,逢几进一
    • 二进制
    • 八进制
    • 十进制
    • 十六进制
    public class Demo01{
    	public static void main(String[] args){
    		int i = 10;     //十进制 0,1,2,3,4,5,6,7,8,9,10(10)
        	int i2 = 010;   //八进制0  0,1,2,3,4,5,6,7,10(8),11(9),12(10),13(11),14(12),15(13),16(14),17(15),20(16)
        	int i3 = 0x10;  //十六进制0x  0~9 A~F   0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10
        	int i4 = 0b10;  //二进制0b  0(0),1(1),10(2),11(3),100(4),101(5)
    
       		System.out.println(i);	//10  
        	System.out.println(i2);	//8
        	System.out.println(i3);	//16
        	System.out.println(i4);	//2
    	}
    }
    

浮点数的拓展

银行业务怎么表示?钱数额的准确度

  • 一般用数学工具类 BigDecimal 代替float、double
  • 浮点数表现的字长是有限的,离散的,结果是有舍入误差的,是大约、接近但不等于的
  • 最好完全避免使用浮点数进行比较,判断会有误(案例如下)
public class Demo01{
	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);//false
        	
        float d1 = 2323123124241231231f;
        float d2 = d1+1;    //d2明显比d1大1
        System.out.println(d1==d2);//true
	}
}

字符的拓展

  • 所有的字符本质上还是数字
  • 编码Unicode表:(97=a ,65=A),占两个字节,可以表示0~65536个字符,Excel 最长为2的16次方=65536
  • ASCII码
public class Demo01{
	public static void main(String[] args){
		char c1 = 'a';
		char c2 = '中';
		System.out.println(c1);//输出 a
        System.out.println((int)c1);//强制转换 输出 97
        System.out.println(c2);//输出 中
        System.out.println((int)c2);//强制转换 输出 20013
        //================================================
        char c3 = '\u0061';
        System.out.println(c3);//输出 a
	}
}

布尔值的拓展

public class Demo01{
	public static void main(String[] args){
		Boolean flag = true;
		//下面两个如果都是一样的意思
		if(flag = true){}
		if(flag){}
	}
}

面向对象(从内存分析)

public class Demo01{
	public static void main(String[] args){
		String sa=new String("hello world");//new 是表示用new开辟了一个新的对象内存空间
        String sb=new String("hello world");
        System.out.println(sa==sb);//比较的是引用数据类型,则比较的是对象地址是否一致(两个为独立地址空间,对象存放的地址不一样)
		String sc="hello world";
        String sd="hello world";
        System.out.println(sc==sd);//基本类型比较的是值是否一致
	}	
}

转义字符

public class Demo01{
	public static void main(String[] args){
		System.out.println("hello \t world!");// \t 表示水平制表符 
        System.out.println("hello \n world!");// \n 表示换行符
        System.out.println("hello \r world!");// \r 表示回车
        System.out.println("hello \" world!");// \" 表示双引号
        System.out.println("hello \' world!");// \' 表示单行符
        System.out.println("hello \b world!");// \b 表示退格
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值