- 博客(24)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 java面试之String源码中equals具体实现
废话不多说,直接看代码,注释已经写在上面了:public boolean equals(Object anObject) { if (this == anObject) {//比较两个对象的地址 return true; } if (anObject instanceof String) {//判断该...
2018-11-29 14:20:00 128
原创 缓存穿透、缓存雪崩、缓存击穿的原因及解决方案
缓存穿透、缓存雪崩、缓存击穿的原因及解决方案缓存穿透是指查询一个一定不存在的数据,这将导致这个不存在的数据每次请求都要DB去查询,失去了缓存的一样。在流量大的时候,可能DB就挂了。解决方案有很多种方法可以有效地解决缓存穿透问题: 1.对空值做缓存; 2.设置key的规则; 3.采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap...
2018-11-27 20:33:00 128
原创 mysql explain字段意思解释
mysql explain字段意思解释explain包含id、select_type、table、type、possible_keys、key、key_len、ref、rows、extra字段idid列的编号是select的序列号,有几个select就有几个id,并且id的顺序是按select出现的顺序增长的。select_typese...
2018-11-27 19:52:00 260
原创 java面试题之volatile的工作原理
volatile的特性:volatile可见性:对一个volatile的读,总可以看到对这个变量最终的写;volatile原子性:volatile对单个读/写具有原子性(32位Long、Double),但是复合操作除外,例如:i++;jvm底层采用“内存屏障”来实现volatile语义。volatile的内存语义及实现: 在JMM中,线程之间的通信采用共享内存来...
2018-11-20 17:47:00 216
原创 java面试题之synchronized和lock有什么区别
synchronized和lock的区别:类别synchronizedlock存在层次java的关键字,在jvm层面上是一个类锁的释放1、以获取锁的线程执行完同步代码,释放锁2、线程执行发生异常,jvm会让线程释放锁在finally中必须释放锁,不然容易造成线程死锁锁的获取假设A线程获得锁,B...
2018-11-20 17:22:00 212
原创 java面试题之HashMap和TreeMap的区别
HashMap和TreeMap的区别相同点:都是以key和value的形式存储;key不可以重复;都是线程不安全的;不同点:HashMap的key可以为空TreeMap的key值是有序的(使用了红黑树的二叉树结构存储的Entry)...
2018-11-19 16:25:00 481
原创 java面试题之HashMap和HashTable底层实现的区别
HashMap和HashTable的区别:相同点:都是以key和value的形式存储;不同点:HashMap是不安全的;HashTable线程安全的(使用了synchronized关键字来保证线程安全)HashMap中key和value可以为空;HashTable中value不可以为空...
2018-11-19 15:42:00 712 1
原创 java面试题之简单介绍一下集合框架
集合框架分为三块:List列表、Set集合、Map映射List列表在数据结构上可以被看做线性表,常用的有ArrayList和LinkList(不常用的有Vector(类似于ArrayList)),他们的底层存储结构有所不同,一个是数组,一个是链表;这两个是注重数据存储结构的区分和数据结构数据操作方法上的区分,也就是栈和队列;即Stack和Queue,Stack是一个继承了Vect...
2018-11-19 15:12:00 466
原创 java面试题之hashcode相等两个类一定相等吗?equals呢?相反呢?
答:hashcode相等,两个类不一定相等,equals也不一定相等;反过来,equals相等,hashcode一定相等
2018-11-19 14:17:00 883 2
原创 java面试题之什么是ThreadLocal?底层如何实现的?
ThreadLocal是一个解决线程并发问题的一个类,用于创建线程的本地变量,我们知道一个对象的所有线程会共享它的全局变量,所以这些变量不是线程安全的,我们可以使用同步技术。但是当我们不想使用同步的时候,我们可以选择ThreadLocal变量。每个线程都会拥有他们自己的Thread变量,他们可以使用get/set方法去获取他们的默认值或者在线程内部改变他们的值。ThreadLo...
2018-11-15 01:23:00 257
原创 java面试题之stop()和suspend()方法为何不不推荐使⽤?
stop方法:他是不安全的,他会停止所有运行中的线程;suspend方法:容易发生死锁,虽然调用suspend方法目标线程会停下来,但是仍然持有之前的锁,其他线程都不能访问锁定的资源,就会造成死锁,除非被“挂起”的线程恢复运行。...
2018-11-15 01:00:00 111
原创 java面试题之什么是死锁、活锁、饿死和竞态条件?
死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种相互等待的现象,若无外力作用,他们将无法推进下去;活锁:是指两个线程优先级相同,都礼让不走,就这样一直僵持下去;饿死:在单线程情况下,A、B两个线程,A先执行;A在执行过程中,C线程来了,B让C先执行;C在执行过程中,D线程来了,B也让D先执行,就这样B一直都是等待状态。竞态条件:多个...
2018-11-15 00:49:00 231
原创 java面试题之能创建volatile数组吗?
答:能,只不过只是一个指向数组的引用,而不是整个数组,如果改变了引用指向的数组,将会受到volatile的保护,但是如果多个线程同时改变数组的元素,volatile关键字就不能起到保护的作用。...
2018-11-15 00:34:00 360
原创 java面试题之sleep()和wait()方法的区别
sleep方法: 属于Thread类中的方法;会导致程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持着,当指定时间到了之后,又会自动恢复运行状态;在调用sleep方法的过程中,线程不会释放对象锁。(只会让出CPU,不会导致锁行为的改变)wait方法: 属于Object类中的方法;在调用wait方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,...
2018-11-15 00:30:00 199
原创 java面试题之Thread的run()和start()方法有什么区别
run()方法: 是在主线程中执行方法,和调用普通方法一样;(按顺序执行,同步执行)start()方法: 是创建了新的线程,在新的线程中执行;(异步执行)public class App { public static void main( String[] args ){ Thread thread = new Thread()...
2018-11-15 00:23:00 237 1
原创 java之线程池面试题
面试官:线程池有哪些?分别的作用是什么?常用的线程池有:newSingleThreadExecutornewFixedThreadExecutornewCacheThreadExecutornewScheduleThreadExecutor1、newSingleThreadExecutor: 单个线程的线程池,即线程池中每次只有一个线程工作,单线程串...
2018-11-15 00:08:00 404
原创 HashMap构造函数有哪些
hashMap有4个构造函数:public HashMap(int initialCapacity, float loadFactor)public HashMap(int initialCapacity)public HashMap()public HashMap(Map<? extends K, ? extends V> m...
2018-11-13 01:06:00 588
原创 HashTable的构造函数有哪些
HashTable:在并发的环境下,使用synchronized将整张表锁住;HashTable构造函数有:public Hashtable(int initialCapacity, float loadFactor)public Hashtable(int initialCapacity)public Hashtable()publi...
2018-11-13 01:04:00 146
原创 LinkedList的构造函数有哪些
LinkedList构造函数有(两种):public LinkedList()public LinkedList(Collection<? extends E> c)/** * Constructs an empty list. */ public LinkedList() { } ...
2018-11-13 01:01:00 836
原创 ArrayList构造函数有哪些
ArrayList 构造函数有(三种):public ArrayList(int initialCapacity)public ArrayList()public ArrayList(Collection<? extends E> c)/** * Constructs an empty list with ...
2018-11-13 00:56:00 719
原创 concurrentHashMap面试题
面试题:ConcurrentHashMap有哪些构造函数?ConcurrentHashMap使用什么技术来保证线程安全?ConcurrentHashMap的get方法是否要加锁,为什么?ConcurrentHashMap迭代器是强一致性还是弱一致性?HashMap呢?ConcurrentHashMap1.7和1.8的区别;1、ConcurrentHashM...
2018-11-13 00:50:00 352
原创 static面试总结
static用法:静态变量;静态方法;静态代码块;静态内部类;静态导包。1、静态变量:private static int a = 02、静态方法:public static void main( String[] args ) { System.out.println( "Hello World!"...
2018-11-12 22:04:00 90
原创 Tomcat 调优技巧
Tomcat 调优技巧:1、Tomcat自身调优: ①采用动静分离节约Tomcat的性能; ②调整Tomcat的线程池; ③调整Tomcat的连接器; ④修改Tomcat的运行模式; ⑤禁用AJP连接器; 2、JVM调优具体调优过程:1、采用动静分离: 静态资源如果都让Tomcat处理的话,Tomcat的性能会被损耗很多,所以我们一般都是采用:NGINX+Tomcat实现动静分离,让...
2018-11-12 14:36:00 231
jwt-api.zip
2021-06-30
luyten-0.5.4-window.zip
2020-05-13
autoconf、libtool、automake.zip
2019-12-08
JPush如何对全用户推送通知
2016-05-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人