美文网首页java面试程序员
【002期】JavaSE面试题(二):基本数据类型与访问修饰符

【002期】JavaSE面试题(二):基本数据类型与访问修饰符

作者: 我可能是个假开发 | 来源:发表于2020-06-30 01:20 被阅读0次

    开篇导读:
    大家好,我是Java面试题库的提裤姐,今天这篇是JavaSE系列的第二篇,主要总结了Java基础语法中访问修饰符会出现的相关面试题,在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。

    一、Java的数据类型有哪些?

    image.png

    二、访问权限修饰符 public、private、protected, 以及不写(默认)时的区别?

    Java中成员的访问权限共有四种,可见性如下:


    image.png

    三、接口和抽象类有什么区别?

    实现:
    抽象类的子类使用extends来继承
    接口必须使用implements来实现接口

    构造函数:
    抽象类可以有构造函数
    接口没有

    main方法:
    抽象类有main方法,并且可以运行
    接口不能有main方法

    实现数量:
    类可以实现多个接口,
    但是只能继承一个抽象类。

    访问修饰符:
    接口中的方法默认使用public修饰符
    抽象类的方法可以是任意访问修饰符

    四、final, finally, finalize 的区别?

    final
    用于声明属性,方法和类, 分别表示属性不可变, 方法不可覆盖, 类不可继承.

    finally
    是异常处理语句结构的一部分,表示总是执行.

    finalize
    是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等. JVM不保证此方法总被调用.

    五、抽象类能用final修饰吗?

    不能:
    定义抽象类就是让其他类继承的,如果定义为final,该类就不能被继承,这样彼此就回产生矛盾,所以final不能修饰抽象类。

    六、为什么不能用浮点型表示金额?

    由于计算机中保存的小数其实是十进制的小数的近似值,并不是准确值,所以,千万不要在代码中使用浮点数来表示金额等重要的指标。
    建议使用BigDecimal或者Long(单位为分)来表示金额。

    七、int 和 Integer 有什么区别?

    int 是 Java 提供的 8 种原始数据类型之一。
    Java 为每个原始类型提供了封装类,Integer 是 Java 为 int 提供的封装类。
    int 的默认值为0,而 Integer 的默认值为 null,是引用类型,即 Integer 可以区分出未赋值和值为 0 的区别,int 则无法表达出未赋值的情况
    Java 中 int 和 Integer 关系如下:

    • int 是基本的数据类型;
    • Integer 是 int 的封装类;
    • int 和 Integer 都可以表示某一个数值;
    • int 和 Integer 不能够互用,因为他们两种不同的数据类型;

    八、char 型变量中能不能存储一个中文汉字,为什么?

    char 类型可以存储一个中文汉字,因为 Java 中使用的编码是 Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一个 char 类型占 2 个字节(16 比特),所以放一个中文是没问题的。

    补充:使用 Unicode 意味着字符在 JVM 内部和外部有不同的表现形式,在 JVM 内部都是 Unicode,当这个字符被从 JVM 内部转移到外部时(例如存入文件系统中),需要进行编码转换。所以 Java 中有字节流和字符流,以及在字符流和字节流之间进行转换的转换流,如 InputStreamReader 和OutputStreamReader,这两个类是字节流和字符流之间的适配器类,承担了编码转换的任务;

    相关文章

      网友评论

        本文标题:【002期】JavaSE面试题(二):基本数据类型与访问修饰符

        本文链接:https://www.haomeiwen.com/subject/lvgsfktx.html