面试
jiang_zf
这个作者很懒,什么都没留下…
展开
-
redis和memcached的区别
1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等;2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储;3、虚拟内存--Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘;4、过期策略--memcache在set时就指定,例如set key1 0...转载 2018-02-26 13:14:12 · 109 阅读 · 0 评论 -
集合类复习总结
ArrayList线程安全:否初始大小:首次如果是默认空数组的话,会扩容到默认值大小10;如果是空数组,则会扩充到1;如果是指定大小的数组,看数组大小情况进行决定是否扩容扩容:每次增加一半 size()+size>>1,其他:基于数组实现构造函数:1.带初始化大小的构造参数,如果参数大于0,则直接指定大小,等于0则将数组赋值一个空的数组(非默认),小于0直接报错2.无参构...原创 2019-02-20 20:02:22 · 131 阅读 · 0 评论 -
JDK1.8源码解析-HashMap
JDK1.8源码解析-HashMap I本文主要介绍了JDK1.8中HashMap的实现原理,对部分常用的API进行源码解读,网上该主题的资源非常多,作者参考了很多相关文章不在文中一一列举了,在此基础上加入了自己对部分源码的理解。1. HashMap概述根据JDK1.8中HashMap的JavaDo的描述,HashMap可以允许key为null,value为null的键值对,值得注意的是,...转载 2019-02-20 07:34:22 · 191 阅读 · 0 评论 -
Java源码分析:HashMap 1.8 相对于1.7 到底更新了什么?
目录示意图1. 简介类定义public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable主要简介示意图HashMap 的实现在 JDK 1.7 和 JDK 1.8...转载 2019-02-24 15:12:37 · 213 阅读 · 0 评论 -
Java语言中List、Set、Map三种集合之间的区别
List、Set是实现了Collection接口的子接口;而Map是另一个集合接口;(Collection接口和Map接口是平级的)1.三者之间的区别如下:1) 元素重复性:① List允许有重复的元素。任何数量的重复元素都可以在不影响现有重复元素的值及其索引的情况下插入到List集合中;② Set集合不允许元素重复。Set以及所有实现了Set接口的类都不允许重复值的插入,...转载 2019-02-24 12:13:21 · 1108 阅读 · 0 评论 -
jdk1.8ArrayList主要方法和扩容机制(源码解析)
ArrayList简介: ArrayList实现了List接口它是一个可调整大小的数组可以用来存放各种形式的数据。并提供了包括CRUD在内的多种方法可以对数据进行操作但是它不是线程安全的,外ArrayList按照插入的顺序来存放数据。ArrayList的主要成员变量:private static final int DEFAULT_CAPACITY = 10;//数组默认初始容量 ...转载 2019-02-18 16:21:30 · 272 阅读 · 0 评论 -
SpringMVC的常见面试题总结
一、简单的谈一下SpringMVC的工作流程?流程 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、DispatcherServlet调用HandlerAdap...转载 2018-03-05 07:03:14 · 994 阅读 · 0 评论 -
Synchronized 互斥块(对象锁) 一个对象和一个monitor 的关系
Synchronized :锁住的是对象,出现synchronized表示随后的代码块要用到共享数据了,要锁住了。一、3种形式。1、synchronized(obj):可以任意指定对象.2、synchronized(this):当前对象:当一个类加到内存时,常量池有一个地址直接指向当前正在执行的对象. 3、public synchronized void run():当前对象(this),这是实...转载 2018-03-17 21:30:12 · 445 阅读 · 0 评论 -
数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
一、数据库事务隔离级别数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。√: 可能出现 ×: 不会出现脏读不可重复读幻读Read uncommitted√√√Read committed×√√Repeatabl...转载 2018-03-17 10:11:23 · 168 阅读 · 0 评论 -
一些面试题汇总
1.TCP和UDP什么区别,http基于哪种协议,ftp和tftp呢?答:tcp基于连接的,而udp不是;tcp能保证数据的准确性和顺序性,udp不可以;http和ftp基于tcp实现的,tftp是基于udp实现的。延伸:基于TCP实现的:HTTP,FTP,SMTP,TENET,POP3,Finger,NNTP,IMAP4;基于UDP实现的:BOOTP,DHCP,NTP,TFTP,SNMP2.my...原创 2018-03-16 22:27:22 · 156 阅读 · 0 评论 -
JAVA8新特性下的接口和抽象类的异同
Java中,抽象类和接口有相似的地方。下面我们就来细说说接口和抽象类的异同。首先是相同的地方:1. 接口和抽象类都能定义方法和属性。2. 接口和抽象类都是看作是一种特殊的类。大部分的时候,定义的方法要子类来实现3. 抽象类和接口都可以不含有抽象方法。接口没有方法就可以作为一个标志。比如可序列化的接口Serializable,没有方法的接口称为空接口。没有抽象方法的抽象类,小编不知道有什么作用,总之...转载 2018-03-16 22:05:51 · 207 阅读 · 0 评论 -
java foreach 循环原理
java foreach 语法是在jdk1.5时加入的新特性,主要是当作for语法的一个增强,那么它的底层到底是怎么实现的呢?因为面试时被问到,所以在这边做一个记录。首先来看看foreach能够使用的类型是什么: 编译器报错原因写的很清楚了,要求:数组或java.lang.Iterable。看下jdk源码对Iterable接口的声明:/** Implementing this interface ...转载 2018-02-27 19:49:22 · 176 阅读 · 0 评论 -
java面试小结
1.java中ArrayList和LinkedList的区别答:大致区别如下:a.ArrayList是实现了基于动态数组的数据结构,LinkedList是基于链表的数据结构;b.对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList需要移动指针查询;c.对于新增和删除操作,LinkedList比较占优势,因为ArrayList要移动数据。2.hashtab...原创 2018-02-26 13:14:35 · 136 阅读 · 0 评论 -
Java中两个Long对象如何比较是否相等
抛出问题:Long a = 4l;Long b = 4l;a == b //trueLong a = 128l;Long b = 128l;a == b //false如果Long的值在[-127,128]之间,用“==”判断是否相等是没问题的,如果不在这个区间,是不能用“==”的,原因如下源码解释:public static Long valueOf(long l) ...转载 2019-03-23 10:36:31 · 367 阅读 · 0 评论