2020我也当了面试官-java面试题之四
写在前面
今天的面试中记录了一些基础的问题,但是自己记忆比较模糊的,特此整理了一下,用于温故而知新。特此申明:问题中很多答案也是从网上搜集,能贴出链接的我会在答案下方贴出原文链接,仅用于延伸学习。
下面就是今天我面试摘录的面试题喽~
1.类的修饰符有哪些?
类的修饰符分为:可访问控制符和非访问控制符两种。
可访问控制符是: 公共类修饰符 public
非访问控制符有:抽象类修饰符 abstract
最终类修饰符:final
2.HashMap是不是有序的?
HashMap是无序的,因为哈希冲突导致的。
有序的Map是有TreeMap和LinkedHashMap。那么TreeMap和LinkedHashMap是如何保证它的顺序的?
LinkedHashMap 是根据元素增加或者访问的先后顺序进行排序,而 TreeMap是基于元素的固有顺序 (由 Comparator 或者 Comparable 确定)。 TreeMap则实现了 SortedMap 接口,所以TreeMap更加高效。
3.Java中的流有哪些?有哪些特点?
按流的数据单位不同分为:字节流和字符流;
字节流的抽象基类:InputStream和OutputStream;
字符流的抽象基类:Reader和Writer。字符流是以字符 (char) 为单位读写数据的。一次处理一个 unicode。字符流都是高级流,其底层都是依靠字节流进行读写数据的。
它们之间的不同点:
读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流。
4.封装、继承、多态举例说明 ?
封装:将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系。
继承:子类可以拥有父类的属性和方法;
多态:以说是“一个接口,多种实现”或者说是父类的引用变量可以指向子类的实例,被引用对象的类型决定调用谁的方法,但这个方法必须在父类中定义
5.类的加载器有哪些?
java代码的执行过程主要包含编写、编译、运行这三个阶段。编写就是我们写的.java文件,编译就是jvm将我们看得懂的.java文件翻译成机器可以读懂的.class文件,运行就是执行.class文件,这里要说的类加载器就是将字节码文件(.class)加载到内存中的东东…
当Java程序第一次使用某个类中的内容,而该类的字节码文件在内存中不存在时,类加载器就会去加载该类的字节码文件。
(1)根类加载器(BootStrapClassLoader), 主要负责加载jre/lib/rt.jar相关的字节码文件的。
(2)扩展类加载器(ExtensionClassLoader), 主要负载加载 jre/lib/ext/*.jar 这些jar包的。 该类加载器在JDK1.9的时候更名为: Platform Class Loader, 其父类加载器为: null。
(3)应用程序类加载器(ApplicationClassLoader), 主要负责加载用户自定义的类以及classpath环境变量所配置的jar包的。 该类加载器在JDK1.9的时候更名为: System ClassLoader, 其父类加载器为: ExtensionClassLoader。
(4)自定义类加载器(UserClassLoader), 负责加载程序员指定的特殊目录下的字节码文件的。大多数情况下,自定义类加载器只需要继承ClassLoader这个抽象类,重写findClass()和loadClass()两个方法即可。
假设: D:\compile、ext*.jar、rt.jar三类中都有A.class,那么A.class是否会被加载3次,如果不会,它的加载顺序是什么样的?
答案是: 不会被加载3次,并最终会由BootStrapClassLoader来加载A.class。原因是因为,APPClassLoader类加载器(以下简称: app)加载之前,会先询问ExtClassLoader类加载器(以下简称: ext)是否加载。如果ext加载,app就不加载了,反之则app加载。同样, ext在加载之前, 也会询问BootStrapClassLoader类加载器(以下简称: bootstrap)是否加载, 如果bootstrap加载,则ext就不加载了,反之,则ext加载。这也是: JVM类加载机制的”双亲委派机制”。
总结起来类加载器自上而下检查(App --> Ext --> BootStrap),自下而上加载(BootStrap --> Ext --> App)。
2020我也当了面试官-java面试题之四相关推荐
- 2020我也当了面试官-java面试题之一
2020我也当了面试官-java面试题之一 写在前面 最近一段时间开始帮团队招聘一些1-3年的java开发人员,参与几场下来,发现有些面试官问的问题虽然基础,我却记忆有些模糊.大概是平常CRUD太 ...
- 吊打面试官 | Java到底是值传递还是引用传递
HI ! 我是小小,我们又见面了,今天是本周的第六篇,这篇主要讲解关于Java到底是值传递还是引用传递. 先说答案 答案为值传递 答案解释 先说一下值传递和引用传递的概念和区别 值传递:是指在调用函数 ...
- 面试官 | Java中的注解是如何工作的?
自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解.这篇文章中,我将向大家讲述 ...
- 面试官:Java如何绑定线程到指定CPU上执行?
不知道你是啥感觉,但是我第一次看到这个问题的时候,我是懵逼的. 而且它还是一个面试题. 我懵逼倒不是因为我不知道答案,而是恰好我之前在非常机缘巧合的情况下知道了答案. 我感觉非常的冷门,作为一个考察候 ...
- 面试官 | Java 对象不使用时为什么要赋值为 null?
作者 | zhantong 来源 | www.polarxiong.com 前言 许多Java开发者都曾听说过"不使用的对象应手动赋值为null"这句话,而且好多开发者一直信奉着这 ...
- 面试官 | Java转List三种方式,你说说吧。我。。懵逼。啥时候有三种了
Hi 我是小小,我们又见面了,本文主要介绍Java数组转List的三种方式以及对比 前言 本文主要介绍Java中数组转为List的三种情况的优劣对比,以及应用场景. 第一种 通过 Arrays.asL ...
- 【Java面试】大厂裁员,小厂倒闭,如何搞定面试官Java SPI是什么?有什么用?
"Java SPI是什么?有什么用?" 这是阿里p6面试过程中,第二面的时候遇到的一个真实的问题. 如果你不理解SPI,建议你看完整篇文章. 大家好,我是Mic,一个工作了14年的 ...
- 惊艳面试官-Java中关于随机数生成8种方式的思考
Java中生成随机数常用的有下面这8种写法:简而言之,名称带安全的未必安全,名字简洁的未必简单. Math.random() Random ThreadLocalRandom SecureRandom ...
- 【JAVA面试】java面试题整理(4)
版权声明:转载请注明 https://blog.csdn.net/qq_33591903/article/details/83473779 java面试题整理(4) JAVA常考点4 文件夹 1. S ...
最新文章
- maven进行junit测试时报错(二)
- Laravel的请求声明周期
- Python的seaborn库(图比较炫)
- [Animations] 快速上手 iOS10 属性动画
- 一个nodejs里日志文件的实现
- Cowboy 源码分析(十八)
- 10个人里有几个大学生?
- IntelliJ IDEA快捷键(Shortcut)官方文档地址
- Bash脚本教程之循环
- 对于不是特别擅长Photoshop的人来说,熟悉和运用Photoshop工具提供的各类便捷的快捷键,是有帮助的。...
- Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解
- java大数据开发工程师,面试题附答案
- 端侧机器学习框架 Tensorlfow Lite
- 云计算机房的建设预算,射阳高级中学云计算机房建设预算.doc
- SQL的多表查询(笛卡尔积原理)
- 目前服务器cpu主流参数,服务器CPU天梯图-包含所有主流设备及服务器处理器
- word树状分支图_在word中做树状图的方法步骤详解
- jQuery 瀑布流插件
- 【Shotcut】沧海桑田_转场效果
- 希尔顿与锦江集团续签合作协议,将在华开逾600家希尔顿欢朋酒店