Java精讲面试题
每天一道面试,让你利用零碎的时间,积累知识点,以Java为主
技术人风清扬
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
每天一道面试题-谈谈对面向对象思想的理解
这个问题,通常会让很多人有点不知所措,感觉我一直在编码,但是说到思想很难去阐述。 下面,我说说自己的想法, 首先,谈谈“面向过程”vs“面向对象” 我觉得这两者是思考角度的差异,面向过程更多是以“执行者”的角度来思考问题,而面向对象更多是以“组织者”的角度来思考问题,举个例子,比如我要产生一个0-10之间的随机数,如果以“面向过程”的思维,那我更多是关注如何去设计一个算法,然后保证比较均衡产...原创 2018-12-14 17:56:41 · 1904 阅读 · 3 评论 -
每天一道面试题-&和&&的区别
今天这道题非常简单,哈哈- 第一个是作为逻辑运算符使用,被当成逻辑运算符时有一个非短路的特性,即当第一个操作数为false,那么第二个操作数仍然执行。 - 第二个是作为位运算符使用。&&只有一个用法: - 只能作为逻辑运算符使用,和&的区别在于&&有一个短路的特点,即当第一个操作数为false时(因为这个时候已经可以确定表达式的最终结果已经是false),那...原创 2018-05-18 17:14:06 · 748 阅读 · 0 评论 -
每天一道面试题-程序中怎么实现变量值的交换?
实现两个变量的值交换,有几种实现方式呢?可以很多种,我今天给大家列举三种方式一:采用临时变量的方式假设要交换的两个变量,int a = 1;int b = 2;int temp = a;a = b;b = temp;方式二:采用数学运算的方式a = a+b;b = a-b;a = a-b;不过这种方式,有可能存在越界的情况,不知道大家发现没有?方式三:采用位运算的方式a = a^b;b = a^b...原创 2018-05-20 11:56:53 · 326 阅读 · 0 评论 -
每天一道面试题-String,StringBuffer,StringBuilder的区别
这道题比较简单,整体来说,分两部分来比较1,String vs StringBufferString:不可变StringBuffer:可变所以,如果在一个循环操作,不断对字符串进行拼接操作,那么使用String会不断创建新的对象,这个效率会比较低,在这种情况下,建议采用StringBuffer2,StringBuffer vs StringBuilderStringBuffer:线程安全Strin...原创 2018-05-20 11:57:50 · 231 阅读 · 0 评论 -
每天一道面试题:谈谈==和equals的区别
比较基本数据类型时,只能采用==,比较的是数值当比较引用类型时,==比较的是引用的地址,而equals其实也是,我们查看到equals是Object定义的方法,而其默认的实现也是比较地址。而我们经常用到的String类型,因为重写了equals方法,其内部比较的是内容,所以String s1 = new String("永远相信美好的事情即将发生");String s2 = new String(...原创 2018-05-20 12:01:59 · 2297 阅读 · 0 评论 -
每天一道面试题-谈谈ArrayList和LinkedList的区别
1,首先,底层的数据结构不同ArrayList底层的数据结构是数组LinkedList底层的数据结构是双向链表2,其次,做增删改查的差异2.1 查询(定位)数组是一段连续的内存空间,所以定位快而链表需要通过上一个节点找到下一个节点,依次类推,所以定位相比数组要慢2.2 增加如果添加到末尾,则差异不大,ArrayList可能会面临扩容的情况,因为底层是数组而LinkedList只需要生成新对象,然后...原创 2018-05-20 12:04:14 · 1679 阅读 · 0 评论 -
每天一道面试题-ArrayList和Vector的区别
首先,推荐大家使用ArrayList,了解这个差别,更多是为了应对面试。两者的最大差异就是线程安全ArrayList:线程不安全,但性能高Vector:线程安全,但性能较低我们如何得到一个类是线程安全或不安全的结论的?从源码的角度来说,你大可以打开ArrayList和Vector的源码一对比,即可发现ArrayList的部分源码:public boolean add(E e) {ensureCap...原创 2018-05-20 12:06:47 · 423 阅读 · 0 评论 -
每天一道面试题-从源码探究HashSet的工作原理
HashSet,给我们最直观的感受就是两点,不可重复和无序,底层采用了hash存储结构。其底层是采用了HashMap,今天我们通过深入源码的方式来了解其背后的原理。我们关注的点有几个1,所谓的hash表是一个怎么样的结构?hash表底层结构是一个数组,且数组的元素是一个链表结构。给大家画个图2,是如何保证唯一的?存放进去的细节如何?首先,在hashSet的底层源代码中,我们发现,它采用的HashM...原创 2018-05-20 12:09:39 · 913 阅读 · 0 评论 -
每天一道面试题-探究JVM中-类的加载机制
类的加载机制是怎么样的?下面我们分几个部分来讲解1,这些概念你知道是什么意思吗?相信你应该听过不少这样的词语,类加载机制,双亲委托机制,BootstrapClassLoader、ExtClassLoader、AppClassLoader如果你不清楚,这些都是什么意思?没关系,看完下面的内容,你就清楚了2,什么是类的加载机制?所谓类的加载机制是指JVM将java类加载到内存的过程。我们知道,JVM使...原创 2018-05-20 12:11:10 · 962 阅读 · 0 评论 -
每天一道面试题-运行时异常和非运行时异常-你分清楚了吗?
面试中,经常会遇到这样的情况,问:谈谈运行时异常和非运行时异常?答:运行时异常是指程序运行时发生的异常问:那么非运行时异常又是什么时候发生?答:。。。。。。问:请罗列几个常见的运行时异常?答:空指针异常,IOException,SQLException,数组越界异常。。。。以上这样的场景非常常见,其实这是一个非常基础的问题,但发现大家常常搞混。其实这个问题,我个人认为是取的这个名字误导了大家,运行...原创 2018-05-20 12:20:40 · 1482 阅读 · 1 评论 -
每天一道面试题-ConcurrentHashMap vs HashMap vs LinkedHashMap vs HashTable
HashMap:查询和插入速度极快,但是线程不安全,在多线程情况下在扩容的情况下可能会形成闭环链路,耗光cpu资源。LinkedHashMap:基本和HashMap实现类似,多了一个链表来维护元素插入的顺序,因此维护的效率会比HashMap略低。但是因为有链表的存在,遍历效率会高于HashMap。HashTable:线程安全,但性能较差,已经不推荐使用ConcurrentHashMap:线程安全,...原创 2018-05-20 12:22:13 · 860 阅读 · 0 评论
分享