
JavaSE面试题基础学习
JavaSE面试题基础学习
heaven_dad
不曾与你分享的时间,我在进步
展开
-
GC-面试考点
GC GC原理深入分析 1.请问GC是什么? 还有为什么要有GC? 答:GC是垃圾收集的意思(Gabage Collection) 之所以需要GC是因为:内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 2.请说明一下垃圾回收的优点以及原理。 答:Java 语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问原创 2020-07-21 18:45:52 · 165 阅读 · 0 评论 -
JVM-面试考点
JVM 1.请简单描述一下JVM加载class文件的原理是什么? 答:首先类加载分为以下三个步骤: 第一:装载:根据查找路径找到相对应的class文件,然后导入 第二:链接:链接又可以分为3个小的步骤,具体如下 检查.检查待加载的class文件的正确性 准备.给类中的静态变量分配存储空间 解析.将符号引用转换成直接引用 初始化:对静态变量和静态代码块执行初始化工作. JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时原创 2020-07-21 18:44:51 · 211 阅读 · 0 评论 -
反射-面试考点
反射 1.请说明一下JAVA中反射的实现原理 什么是java反射机制? Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键。 Class<?> clz = Class.forName("java.util.ArrayList"); ArrayList object原创 2020-07-21 18:43:13 · 152 阅读 · 0 评论 -
JDK-面试考点
JDK 1.请问JDK、JRE、JVM的区别是什么? 答:区别如下 jdk是java运行和编译的环境完整的Java软件开发包(包含jre编译器和其他的工具(比如:JavaDoc,Java调试器))可以让开发者开发、编译、执行Java应用程序。 jre是java运行时环境它同时也包含了执行applet需要的浏览器插件。也就是说如果你只是想运行一个java程序,那么你只需要有jre就行了 jvm是java虚拟机,是java运行的平台在各个操作系统上都会有java虚拟机。它是整个Java实现跨平台的最核心的部分原创 2020-07-20 17:27:20 · 173 阅读 · 0 评论 -
锁-面试考点
锁 常见锁的集合以及各个锁代表的基本含义 乐观锁和悲观锁 根据线程要不要锁住同步资源分为:乐观锁和悲观锁 悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java中,synchronized关键字和Lock的实现类都是悲观锁。 而乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。如果这个数据没有被更新,当前线程将自己修改的数据成功写入。如果数据已经被其他线程更新原创 2020-07-20 17:25:06 · 191 阅读 · 0 评论 -
线程-面试考点
线程 1.Java中如何保证线程安全性 答:首先线程安全主要体现在以下三个部分: 原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic,synchronized); 可见性:一个线程对主内存的修改可以及时地被其他线程看到,(synchronized,volatile); 有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序,(happens-before原则)。 通过合理的时间调度,避开共享资源的存取冲突。另外,在并行任务设计上可以通过适当的策略,保原创 2020-07-20 17:22:46 · 311 阅读 · 0 评论 -
java集合-面试考点
集合 1.请说明List、Map、Set三个接口存取元素时,各有什么特点? 答:List与Set都是单列元素的集合,它们有一个功共同的父接口Collection。Map是双列集合不能存储重复的key List接口存取的元素是有序的(有索引),可重复的 add,get方法 Set接口存取元素是无序的,不可重复的 遍历引入Iterator(因为无序,没有索引不知道取哪一个元素 next,hasNext方法) Map集合存取元素采用hash表存储 put,get,keySet、entrySet方法 2.阐原创 2020-07-20 17:20:02 · 435 阅读 · 0 评论 -
面向对象-面试考点
面向对象 1.请说明Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思? 答:一:重载 概念:重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。 1.被重载的方法必须改变参数列表(参数个数或类型不一样); 2.被重载的方法可以改变返回类型; 3.被重载的方法可以改变访问修饰符; 4.被重载的方法可以声明新的或更广的检查异常原创 2020-07-20 17:15:36 · 182 阅读 · 0 评论 -
关键字-面试考点
关键字 1.请你讲讲Java里面的final关键字是怎么用的? 答:分为修饰变量、方法、类进行分析 final修饰成员变量时:一定要初始化赋值(饿汉模式)而且初始化之后不能更改(引用也一样,初始化之后不能指向其他对象) final修饰方法时:该方法不能被重写 final修饰类时,该类不能被继承(String)final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。 2.请你谈谈关于Synchronized和lock 答:Synchron原创 2020-07-20 17:13:30 · 121 阅读 · 0 评论 -
Java基础-面试考点
Java基础 正则表达式相关 什么是正则表达式? 正则表达式可以做什么? 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 正则表达式就是能够给出具体的限定规则 java.util.regex 包主要包括以下三个类: Pattern 类: pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一原创 2020-07-20 17:12:43 · 164 阅读 · 0 评论