【Java学习Day09】Java知识点及面试题微讲


Java知识点及面试题

整数拓展

  • 进制
    1. 二进制0b
    2. 八进制0
    3. 十进制
    4. 十六进制0x
public class Demo03 {
    public static void main(String[] args) {
        int num1 = 0b10;//int在内存里是以二进制存储的
        int num2 = 010;
        int num3 = 10;//为了方便观看,int输出的时候使用十进制进行输出
        int num4 = 0x10;

        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println(num4);
    } 
}

浮点数拓展

public class Demo03 {
    public static void main(String[] args){
        float num5 = 3.141592f;//float精确到第七位数
        double num6 = 3.141592;//double精确到第十六位数

        System.out.println(num5);
        System.out.println(num6);
        System.out.println(num5==num6);//ture
        //精度不同,因为31.41592不等于31.41592000000000

        float num7 = 3.1415926f;
        float num8 = num7 + 0.0000001f;//在float数据类型中,值加整数不用在整数后加F或f,值加浮点数要在浮点数后加F或f

        System.out.println(num7);
        System.out.println(num8);
        System.out.println(num7==num8);//false
    }
}

字符拓展

  1. 所有字符的本质还是数字

    • Unicode编码表中的每个编码占2个字节,且Unicode的编码可以处理各种语言的文字,不止有25536个字符
    • 在Unicode编码表中字符都是用数字表示的,例如:97=a,65=A
    • 以前的Excel表格最长只可以表示2的16次方=25536个字符
    • /u是转义字符,表示后面跟一个十六进制数,再通过这个十六进制数来指定一个字符

    • /u不能出现在注释中,/u在注释中也会转义,不然运行时会显示非法的 Unicode 转义

    • 注意

      ///u000d System.out.println("Hello World!"); 会输出hello world!
      /u000d,///u000d, /////u000d...奇数个/都会转义
      //u000d, ////u000d...偶数个/不会转义
      
  2. 常用的转义字符

    /n:回车换行符。显示该字符时,光标移到下一行的行首
    /r:回车符。显示该字符时,光标移到当前行的行首
    /t:水平制表符。显示该字符时,光标向右移动一个制表位
    /v:垂直制表符。显示该字符时,光标向下移动到下一行的同一列制表位
    /b:退格
    /f:换页
    /a:鸣铃
    //:反斜杠字符
    /':单引号符
    /":双引号符
    /d /dd /ddd:1~3位八进制数所代表的字符,d的值可以是0~7的任何数字
    /xh /xhh:1~2位十六进制数所代表的字符,h的值可以是0~f的任何字符
    
    public class Demo03 {
        public static void main(String[] args) {
            System.out.println("Hello/nWorld");
        }
    }
    

对象 从内存分析

  1. new关键字会在内存申请一块空间,空间中就有地址,new了几次,就有几块空间,就有几个地址
  2. ==:如果比较的对象是引用数据类型,则比较的是地址是否一致,如果比较的对象是基本数据类型,则比较的是值是否一致
public class Demo03 {
    public static void main(String[] args) {
        String d1 = new String("Hello,world!");//new关键字会在内存申请一块空间,空间中就有地址
        String d2 = new String("Hello,world!");//new了几次,就有几块空间,就有几个地址
        System.out.println(d1==d2);//这里比较的是地址是否相等

        String d3 = "Hello,world!";
        String d4 = "Hello,world!";
        System.out.println(d3==d4);//这里比较的是值是否相等,d3和d4都是在字符串常量池取出来的,值以及存储地址都一样
    }
}

布尔值拓展

public class Demo03 {
    public static void main(String[] args) {
        boolean fleg=true;
        if (fleg==true){}//新手
        if (fleg){}//老手

        //Less is More!  代码要精简易读!
    }
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282850.html

(0)
上一篇 2022年8月29日
下一篇 2022年8月29日

相关推荐

发表回复

登录后才能评论