
Java面试
Dre丿
一步一步向前走
展开
-
Java集合 LinkedList 底层详解
Java集合的LinkedList底层详解前一篇文章,已经讲过ArrayList的底层实现原理,今天学习LinkedList底层实现原理。LinkedList类是List接口的实现类,它是一个集合,可以根据索引来随机的访问集合中的元素,还实现了Deque接口,它还是一个队列,可以当成双端队列来使用。虽然LinkedList是一个List集合,但是它的实现方式和ArrayList是完全不同的,A...原创 2019-05-13 22:53:36 · 3164 阅读 · 0 评论 -
同步/异步 | 阻塞/非阻塞理解
同步/异步 阻塞/非阻塞在谈到这个概念,会涉及到: 1、同步阻塞 2、同步非阻塞 3、异步阻塞 4、异步非阻塞关于同步/异步同步和异步其实指的是,请求发起方对消息结果的获取是主动发起的,还是等被动通知的。如果是请求方主动发起的,一直在等待应答结果(同步阻塞),或者可以先去处理其他的事情,但要不断轮询查看发起的请求是否有应答结果(同步非阻塞 )因为不管如何都要发起方主动获取消...原创 2019-06-04 14:28:01 · 167 阅读 · 0 评论 -
Java反射机制理解
在学习Java反射机制,首先应该了解:1、什么是反射?2、为什么会有反射的存在? 3、用到反射有哪些需要了解?4、使用反射有哪些方式?5、常见的API有哪些?1、什么是反射?百度百科的解释:JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的...原创 2019-06-03 15:04:48 · 189 阅读 · 0 评论 -
面试中经常看到但又不是很全面回答的对比区别问题
在Java的学习中,我们经常发现一个问题: 很多时候这个关键字/方法长的很相似,也能够说出之间的差异,但总是感觉很模糊, 说知道吧,又说不全面,说不知道吧,你又不服气。哈哈,学习过程遇到这个很正常; 所以这篇文章也是为了梳理一下相关的疑难杂症吧,一起学习。一、final、finally、finalize之间的区别1、finalfinal关键字主要用于三个地方:变量、...原创 2019-06-19 10:18:01 · 357 阅读 · 0 评论 -
IO流相关知识点
在梳理IO流相关的知识点,我感觉主要分为以下几个部分:主要内容:1、Java的IO流2、字节流与字符流3、输入/输出流体系3.1 处理流的用法1、Java的IO流IO流是实现输入输出的基础,在Java中将不同的输入输出源描述为“流”。流的分类:输入流:从外向内。(即将数据读取到内存中)输出流:从内向外Java的输入流主要是:InputStream 、ReaderJava的输出流主...原创 2019-05-30 20:34:23 · 416 阅读 · 0 评论 -
String StringBuffer StringBuilder之间的区别
在学习String、StringBuffer、StringBuilder三者时,首先给出必要的结论,后面详细分析。在执行速度上: StringBuilder > StringBuffer > String .这是在一般情况下的结果在安全性上: String、StringBuilder 线程非安全 || StringBuffer 线程安全【参考文章】 https:...原创 2019-05-30 10:00:31 · 3189 阅读 · 4 评论 -
Java中int与Integer之间的区别
在介绍两者之间的区别时,需要明确两个概念:基本数据类型种类装箱 / 拆箱int和Integer的区别基本数据类型种类在Java中,有8种基本数据类型,分别是: byte char short int float double long boolean 。分别对应的包装类型为:Byte、Character、Short 、Integer、Float、Double、Long、B...原创 2019-05-10 20:54:16 · 325 阅读 · 0 评论 -
Java创建对象的四种方法
Java创建对象的四种方法使用New关键字使用Class类的newInstance方法,newInstance方法调用无参构造器创建对象(反射),Class.forName.newInstance();使用clone方法反序列化使用构造器的两种:New关键字、反射;没有使用构造器的两种:clone、反序列化方式一:使用New关键字package Test3;public cl...原创 2019-05-22 16:33:56 · 4630 阅读 · 0 评论 -
Java集合 HashMap底层实现详解
在前面几篇文章中,我们也已经学习了关于List、Set的常用集合,今天学习最常用的Map集合:HashMap。在学习HashMap之时,首先应该清楚明白:HashMap的工作原理: HashMap基于hashing原理,通过put()和get()方法存储和获取对象。当我们将键值对传递给put()方法时,它调用对象的hashCode()方法来计算hashCode,然后找到bucket位置来存储对...原创 2019-05-20 16:22:34 · 3743 阅读 · 0 评论 -
Java集合 TreeSet实现详解
TreeSet实现详解TreeSet是SortedSet接口的实现类,所以可以看出TreeSet是有序的。与HashSet集合采用hash算法来决定元素的存储位置不同,TreeSet采用红黑树的数据结构来存储集合元素,那么TreeSet进行排序的规则是怎样的?TreeSet支持两种排序:自然排序和定制排序。1、自然排序TreeSet会调用集合元素的compareTo(Object obj)...原创 2019-05-14 23:43:51 · 1061 阅读 · 1 评论 -
Java集合 HashSet底层详解
前几篇文章已经介绍了关于List集合的讲解,今天学习Set集合相关的实现类。Set集合常用的如:HashSet、TreeSet。HashSet是Set集合的典型实现,HashSet按照Hash算法来存储集合中的元素,存在以下特点:不能保证元素的顺序,元素是无序的HashSet是不同步的,需要外部保持线程之间的同步问题,Collections.synchronizedSet(new XXSe...原创 2019-05-14 15:00:21 · 10699 阅读 · 0 评论 -
Java集合 ArrayList底层实现原理
Java集合ArrayList 底层实现原理:在Java中对于集合的使用是比较重要且普遍的,对于它们之间具体的关系图,如下所示:常用的集合:List、Set、MapList集合List是一个有序的,可重复的集合。这里的有序是指add()元素之后,取元素的顺序默认是和你添加的顺序一致,可以通过索引get()来访问指定位置的集合元素。对List接口常用的实现类:ArrayList、Linke...原创 2019-05-13 17:07:52 · 1391 阅读 · 0 评论 -
Java集合 Vector的底层详解
Java集合的 Vector底层讲解Vector作为List的另外一个典型的实现类,完全支持List的全部功能,Vector的实现其实和ArrayList的底层实现很类似,都是封装了一个Object[],但Vector是一个比较古老的集合,JDK1.0就已经存在,建议不要使用这个集合,Vector与ArrayList的主要区别是:Vector是线程安全的,ArrayList是非线程安全的,但...原创 2019-05-13 23:42:00 · 6737 阅读 · 0 评论 -
常用的排序(面试经常问到)
面试经常问到的排序算法,使用Java语言实现,一起学习一、最简单排序算法思想让每一个关键字都和它后面的每一个关键字比较,如果大则交换,这样第一个位置的关键字在依次循环后一定变成最小值。算法示意图从上面的示意图可以看出:当 i = 1时,9与1交换后,1与其余的关键字比较均最小,因此,1为最小的数,放在首位;当 i= 2时,9 < 5 ,所以将9与5交换位置...原创 2019-06-17 09:03:58 · 294 阅读 · 0 评论