
面试专题
文章平均质量分 92
常用的面试问题
码海无涯苦做舟
远方有尽头吗?
展开
-
Java 208道面试题及部分答案
一、Java 基础1.JDK 和 JRE 有什么区别?答:JRE是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的2.== 和 equals 的区别是什么?答:==是比...转载 2019-07-31 17:25:17 · 3753 阅读 · 0 评论 -
【面试经验】横扫阿里、滴滴、美团后,阿里程序媛整理出这份厚厚的面经
这次面试的公司有一点点多,主要是因为毕业后前两份工作找的都很草率,这次换工作就想着,emm,毕业三年了,该找个工作好好沉淀几年了。先说下这次面试的结果吧:到HR面的:阿里、美团、滴滴、金山云、每日一淘、火币、宜信、旺店通、黄包车、linkedMe其他:小米(四轮技术面,大概4个小时的样子,大数据部门,不知道是不是四面的负责人嫌弃我木有大数据的经验,我确实木有哈)京东(电话面试一...转载 2019-12-29 21:38:29 · 607 阅读 · 0 评论 -
锦囊
具体如下一、Java 基础1. JDK 和 JRE 有什么区别?2. == 和 equals 的区别是什么?3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?4. final 在 java 中有什么作用?5. java 中的 Math.round(-1.5) 等于多少?6. String 属于基础的数据类型吗?7....原创 2019-07-18 16:58:26 · 246 阅读 · 0 评论 -
堆外内存
在Java中创建的对象都处于堆内内存(heap)中,堆内内存是由JVM所管控的Java进程内存,并且它们遵循JVM的内存管理机制,JVM会采用垃圾回收机制统一管理堆内存。与之相对的是堆外内存,存在于JVM管控之外的内存区域,Java中对堆外内存的操作,依赖于Unsafe提供的操作堆外内存的native(底层使用c,c++,汇编)方法。使用堆外内存的原因对垃圾回收停顿的改善。由于堆外内存是直...转载 2019-07-12 17:04:54 · 239 阅读 · 0 评论 -
单例 双重检查锁定的重排序问题
双重检查锁定代码://双重检查锁定public class DoubleCheckedLocking { private static Instance instance; public static Instance getInstance() { if (instance == null) { // Single Chec...原创 2019-07-11 18:00:06 · 430 阅读 · 0 评论 -
多线程锁的升级和无锁、偏向锁、轻量级锁、重量级锁
随着竞争情况逐渐升级,锁可以升级但不能降级。锁一共四种状态,低-->高 无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态。偏向锁:优点:加锁和解锁不需要额外的消耗,和执行非同步方法相逼仅存在纳秒级的差距。缺点:如果线程间存在锁竞争,会带来额外的锁撤销的消耗(适用只有一个线程访问同步块场景)轻量级锁:优点:竞争的线程不会阻塞,提高了程序的响应速度缺点:如果始终得不到...原创 2019-07-11 17:10:22 · 187 阅读 · 0 评论 -
volatile 关键字和多处理器总线嗅探
volatile变量修饰的共享变量在进行写操作的时候回多出一行汇编:0x01a3de1d:movb $0×0,0×1104800(%esi);0x01a3de24:lock addl $0×0,(%esp);Lock前缀的指令在多核处理器下会引发两件事情。1)将当前处理器缓存行的数据写回到系统内存。2)这个写回内存的操作会使其他cpu里缓存了该内存地址的数据无效。多处理器总线嗅...原创 2019-07-10 11:49:38 · 7658 阅读 · 0 评论 -
线程池中使用线程变量ThreadLocal 的注意以及线程池创建
从输出可以看出,线程池中的线程执行了10次,由于创建了固定的线程池就只有3个,与预期的只有一个线程才能拿到线程变量有很大差距;造成这种现象是因为线程复用导致的;测试代码:public class Demo { public static void main(String[] args) throws Exception { //创建可缓存线程池 无限大小 ...原创 2018-12-28 15:36:20 · 10856 阅读 · 0 评论 -
ConcurrentLinkedQueue常用方法:
ConcurrentLinkedQueue常用方法:增:add :底层调用offeroffer : 将指定元素插入此队列的尾部删:poll 是从队列取出元素并且删除该元素remove 如果此元素不存在,则返回 false,移除成功返回true读:peek() 获取但不移除此队列的头;如果此队列为空,则返回 nullcontains(Object o) 如果此队列...原创 2019-06-28 11:11:55 · 559 阅读 · 0 评论 -
分布式事物解决方案
分布式事物解决方案在分布式系统中,同时满足“一致性”、“可用性”和“分区容错性”三者是不可能的。分布式系统的事务一致性是一个技术难题,各种解决方案孰优孰劣?在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(...原创 2018-11-01 11:14:59 · 299 阅读 · 0 评论 -
mysql性能优化之sql优化
1、SQL优化(1)show status 命令mysql> show status like'Com_%';mysql> SHOW STATUS LIKE 'THREADS _%'; 当然除了上述操作之外,还存在有累积表操作的所有的统计参数,比如Com_insert,Com_delete,Com_update,Com_select:表示执行插入,删除,更...原创 2019-08-31 21:02:11 · 206 阅读 · 0 评论 -
mysql性能优化之索引优化
在MySQL数据库中索引的优化是最重要的优化手段之一,能够解决生产过程中的大部分SQL性能问题。在对MySQL数据库优化的时候,对系统进行基于索引的梳理,这个动作是最有效的操作。创建唯一性索引,加快数据的检索速度。通过索引访问表的时候,一般的索引高度不会超过4,对于叶子节点来说,访问的叶子也不多,因为索引都是在某一个列上,叶子里面会有很多的索引值,很多时候,索引都在内存中,所以提取数据的...原创 2019-08-31 21:28:50 · 410 阅读 · 0 评论 -
StringUtils里的isEmpty方法和isBlank方法的区别
1.isEmpty 没有忽略空格参数,是以是否为空和是否存在为判断依据。 2.isBlank 是在isEmpty 的基础上进行了为空(字符串都为空格、制表符、tab 的情况)的判断。...原创 2019-08-31 21:50:12 · 255 阅读 · 0 评论 -
冒泡排序、选择排序、快速排序、插入排序、希尔排序、归并排序、基数排序以及堆排序
1、冒泡排序- 依次比较相邻两元素,若前一元素大于后一元素则交换之,直至最后一个元素即为最大;然后重新从首元素开始重复同样的操作,直至倒数第二个元素即为次大元素;依次类推。如同水中的气泡,依次将最大或最小元素气泡浮出水面。实现代码就是两个for循环,然后比较交换位置。时间复杂度:O(N2)2、选择排序- 首先初始化最小元素索引值为首元素,依次遍历待排序数列,若遇到小于该最小索...原创 2019-09-01 12:44:28 · 1041 阅读 · 0 评论 -
二叉树、二叉搜索树、平衡二叉树、红黑树、B树、B+树
说吕老师给小史讲完人工智能的一些知识后,他们一起回家吃小史姐姐做的饭去了。【饭后】吕老师:面试的时候一定是往深了问,不精通的话容易吃亏。不过面试时一般都是根据项目来问,项目中用到的技术,一定要多看看原理,特别是能和数据结构和算法挂钩的那部分。小史:树的话,无非就是前中后序遍历、二叉树、二叉搜索树、平衡二叉树,更高级一点的有红黑树、B树、B+树,还有之前你教我...转载 2019-09-01 22:49:04 · 754 阅读 · 0 评论 -
Spring IOC循环依赖问题
A对象引用B对象B对象引用A对象spring加载对象时发现创建A对象时,发现需要依赖B对象,而B对象的创建需要A对象,那岂不是炸毛了?spring中采用三级缓存来解决: private final Map<String, ObjectFactory<?>> singletonFactories = new HashMap(16);先将对象创建,...原创 2019-09-04 09:49:20 · 260 阅读 · 0 评论 -
MySQL 索引
1、哈希索引哈希索引(hash index)基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。(1)Hash 索引仅仅能满足"=","IN"和"<=>"查询,...原创 2019-08-31 20:21:06 · 128 阅读 · 0 评论