![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java面试
滨仔_
这个作者很懒,什么都没留下…
展开
-
Java基础面试题1-String类为什么是final的
大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎我进行了重新排版,并且更换了其中的一个例子,让我们更好理解。String很多实用的特性,比如说“不可变性”,是工程师精心设计的艺术品!艺术品易碎!用final就是拒绝继承,防止世界被熊孩子破坏,维护世界和平!1. 什么是不可变?String不可变很简单,如下图,给一个已有字符串"abcd"第二次赋值成"abcedl...转载 2018-03-18 13:28:08 · 7356 阅读 · 1 评论 -
Java基础面试题10-Java 的引用类型有哪几种
Java四种引用类型 1.引用的基本概念 强引用:当我们使用new创建对象时,被创建的对象就是强引用,如Object object = new Object(),其中的object就是一个强引用了。如果一个对象具有强引用,JVM就不会去GC它,JVM宁可会报OOM来终止程序,也不回收该对象。 软引用: 如果一个对象只具备软引用,如果内存空间足够,那么JVM就不会GC它,如果内存空间不足了,就会GC...转载 2018-03-19 22:37:20 · 4921 阅读 · 0 评论 -
Java基础面试题9-异常的结构,运行时异常和非运行时异常,各举个例子
1.Java异常机制Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:图片来源:http://blog.csdn.net/wuwenxiang91322/article/details/103463372.ThrowableThrowable类是所...转载 2018-03-19 22:02:36 · 4314 阅读 · 0 评论 -
Java基础面试题8- hashtable和hashmap的区别
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成containsvalue和co...转载 2018-03-19 21:41:02 · 475 阅读 · 0 评论 -
Java基础面试题7- string、stringbuilder、stringbuffer区别
区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可...转载 2018-03-19 20:58:51 · 324 阅读 · 0 评论 -
Java基础面试题6-Java反射中Class.forName和classloader的区别
Java中Class.forName和classloader都可以用来对类进行加载。 Class.forName除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。而classloader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。 Class.forName(name...转载 2018-03-18 15:14:08 · 2107 阅读 · 0 评论 -
Java基础面试题5-Java中的队列都有哪些,有什么区别
Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。 Queue的实现1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口 内置的不阻塞队列: PriorityQueue ...转载 2018-03-18 14:53:21 · 13803 阅读 · 1 评论 -
Java基础面试题4-描述一下ArrayList和LinkedList各自实现和区别
1.List是接口类,ArrayList和LinkedList是List的实现类。 2.ArrayList是动态数组(顺序表)的数据结构。顺序表的存储地址是连续的,所以在查找比较快,但是在插入和删除时,由于需要把其它的元素顺序向后移动(或向前移动),所以比较熬时。 3.LinkedList是链表的数据结构。链表的存储地址是不连续的,每个存储地址通过指针指向,在查找时需要进行通过指...转载 2018-03-18 14:38:44 · 6047 阅读 · 0 评论 -
Java基础面试题3-说说你知道的几个Java集合类:list、set、queue、map
关系这张图简单揭示了Set、List与Map之间的相对关系。 需要说明下的是,图中的实现并不指这么简单的实现,这个稍后会说到。Collection接口Collection是Java中最基本的集合接口。它描述了一组有关集合操作的方法。int Size(); //集合大小boolean isEmpty(); //是否为空boolean contains(Object o); //是否包含某个对象...转载 2018-03-18 14:20:56 · 4328 阅读 · 0 评论 -
Java基础面试题2-HashMap的源码,实现原理,底层结构
一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collection...转载 2018-03-18 13:25:21 · 6970 阅读 · 0 评论 -
Java基础面试题11-面向对象的特征
四大特征分别为:抽象、封装、继承、多态.1.抽象就是将一类实体的共同特性抽象出来,封装在一个抽象类中,所以抽象在面向对象语言是由抽象类来体现的。2.封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象...原创 2018-03-25 09:01:37 · 820 阅读 · 0 评论