Java教程

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

本文主要是介绍【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!  代码要精简易读!
    }
}
这篇关于【Java学习Day09】Java知识点及面试题微讲的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!