
面试
文章平均质量分 93
XavierLe
这个作者很懒,什么都没留下…
展开
-
Hashmap、Hashtable和ConcurrentHashMap相关的问题
首先,他们的父类不同,hashmap的父类是AbstractMap,而hashtable是Dictionary,ConcurrentHashMap的父类也是AbstractMap。 hashmap初始容量默认16,装载因子0.75,扩容默认为2n,hashtable初始容量默认11,装载因子0.75,扩容默认2n+1,如果hash冲突太多,可以通过降低装载因子。空间换时间来降低hash冲突。 h...原创 2018-11-29 09:52:47 · 395 阅读 · 0 评论 -
归并排序
复杂度介绍: 非递归版的归并排序,省略了中间的栈空间,直接申请一段O(n)的地址空间即可,因此空间复杂度为O(n),时间复杂度为O(nlogn)。 平均时间复杂度: O(NLogN) 最好情况时间复杂度: O(NLogN) 最差情况时间复杂度: O(NLogN) 所需要额外空间: 递归:O(N + LogN), 非递归:O(N) 稳定性: 稳定 算法思想: 开始以间隔为1的进行归并,也就是说,第一...原创 2018-12-16 18:00:12 · 251 阅读 · 0 评论 -
吐血总结
面向对象 在java,c++等面向对象编程的语言中,他们将一切事物都当作对象,而将事物的特征和行为定义为对象的属性和方法 封装是实现面向对象程序设计的第一步,封装就是,具有有相同特性(属性)和相同行为(方法)的对象用一个类来描述。这样对象只要去调用类中方法,就可以实现功能,而不用管具体的实现。 继承主要实现重用代码,节省开发时间。 多态就是,多种形态,同一操作作用于不同的对象,可以有不同的解释...原创 2018-12-03 16:00:56 · 596 阅读 · 0 评论 -
对面向对象和多态的认识
面向对象 在java,c++等面向对象编程的语言中,他们将一切事物都当作对象,而将事物的特征和行为定义为对象的属性和方法, 这样在编写程序时,重要 封装是实现面向对象程序设计的第一步,封装就是,具有有相同特性(属性)和相同行为(方法)的对象用一个类来描述。这样对象只要去调用类中方法,就可以实现功能,而不用管具体的实现。 继承主要实现重用代码,节省开发时间。 多态就是,多种形态,同一操作作用于不同...原创 2018-12-01 22:18:55 · 346 阅读 · 0 评论 -
JVM类加载机制
JVM类加载分为5个过程:加载,连接(包括验证、准备、解析),初始化,使用,卸载。 下面的例子清晰明了 转载:https://blog.youkuaiyun.com/noaman_wgs/article/details/74489549 ...转载 2018-12-01 20:53:54 · 205 阅读 · 0 评论 -
JAVA反射获取私有属性
反射获取类对象,获取私有属性和方法集合,然后取消访问检查setAccessible(true),最后调用私有属性或方法。 反射优点: 能够运行时动态获取类的实例,大大提高了系统的灵活性和扩展性; 与java动态编译相结合,可以实现无比强大的功能。 反射缺点: 使用反射的性能较低; 使用反射来说相对不安全; 破坏了类的封装性,可以通过反射来获取这个类的属性,和私有方法。 https://blog...转载 2018-12-01 17:27:31 · 2044 阅读 · 0 评论 -
数据库面试:SQL相关概念及常用的SQL优化方式
in 和 not in 应避免使用,会导致全表扫描 应尽量避免在 where 子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描 不要使用select * from t的形式进行查询 避免出现隐式转换,保持SQL中变量类型与字段类型一直 当需要插入大量数据时,使用copy方式,避免执行大量 insert 语句 https://blog.youkuaiyun.com/yueqi1125/art...转载 2018-12-01 17:15:05 · 175 阅读 · 0 评论 -
mysql各种引擎对比、实战
以下两点必须使用 InnoDB: 1)可靠性高或者要求事务处理,则使用InnoDB。这个是必须的。 2)表更新和查询都相当的频繁,并且表锁定的机会比较大的情况指定InnoDB数据引擎的创建。 对比之下,MyISAM的使用场景: 1)做很多count的计算的。如一些日志,调查的业务表。 2)插入修改不频繁,查询非常频繁的。 InnoDB和MyIsam引擎原理: MyISAM索引结构: MyISAM...转载 2018-12-01 16:36:56 · 311 阅读 · 0 评论 -
JAVA并发编程:线程池
为什么要用线程池? 在Java中,如果每当一个请求到达就创建一个新线程,开销是相当大的。在实际使用中,每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源,甚至可能要比花在实际处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个JVM中创建太多的线程,可能会导致系统由于过度消耗内存或者“切换过度”而导致系统资源不足。为了防...转载 2018-12-01 14:47:41 · 344 阅读 · 0 评论 -
2017校招面试总结
List: |–Vector:内部是数组数据结构,是同步的。增删,查询都很慢! |–ArrayList:内部是数组数据结构,是不同步的。替代了Vector。查询的速度快。 |–LinkedList:内部是链表数据结构,是不同步的。增删元素的速度很快。 Set:元素不可以重复,是无序。 Set接口中的方法和Collection一致。 |–HashSet: 内部数据结构是哈希表 ,是不同步的。 如何保...原创 2018-12-02 23:14:49 · 819 阅读 · 0 评论 -
JAVA面试题总结
1. 如果创建一个线程池,有哪些参数需要设置。 核心线程数,最大线程数,空闲线程存活时间,时间单位,工作队列,拒绝任务处理器。 2. 如果有5个线程分别处理不同的任务,需要等这5个线程都执行完成后输出一条日志,如何解决。 Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore:http://www.importnew.com/21889.html Cou...原创 2018-12-02 18:49:04 · 224 阅读 · 0 评论 -
Java并发编程:ThreadLocal
转载:https://www.jianshu.com/p/98b68c97df9b转载 2018-11-29 20:22:05 · 206 阅读 · 0 评论 -
常用的排序算法的时间复杂度和空间复杂度
常用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n) 选择排序 O(n2) O(n2) 不稳定 O(1) 二叉树排序 O(n2) O(n*log2n) 不一定 O(n) 插入排序 O(n2) O...原创 2018-12-02 13:00:55 · 342 阅读 · 0 评论 -
小米面试
2018年12月16日,小米面试总结 一面 自我介绍 聊项目 SpringBoot的优缺点 mybatis支持的数据类型 序列化的优缺点 StringBuffer和StringBuilder区别。 熟悉的集合框架 ArrayList和LinkedList的区别。 static加载机制 oracle和mysql的分页查询 手写单例模式,线程安全 两个Arraylist合并,O(n) 有两个文件,每...原创 2018-12-17 20:18:50 · 860 阅读 · 2 评论