微信搜索:小大白日志

随笔分类 -  java后端开发-基础

2021-02-21
摘要:点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人。 文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。 jdk1.7和jdk1.8中ConcurrentHashMap的区别? 底层数据结构的区别 jdk1.7中的ConcurrenHashMap的底层结构=Segment数组+ 阅读全文
posted @ 2021-08-22 00:21 明天喝可乐 阅读(69) 评论(0) 推荐(0)
摘要:点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人。 文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。 CAS如何解决ABA问题 什么是ABA:在CAS过程中,线程1、线程2分别从内存中拿到了当前值为A,同时线程2把当前值A改为B,随后又把B改回来变为A,此后线程1检查到当前 阅读全文
posted @ 2021-06-27 21:26 明天喝可乐 阅读(1093) 评论(0) 推荐(0)
摘要:点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人。 文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。 死锁的四个必要条件 互斥:一个资源不能同时被多个进程共享 请求与保持:一个进程若已经获得了部分资源,还在请求另一个资源时,不会释放已请求到的资源 不可剥夺:不能剥夺进程未使 阅读全文
posted @ 2021-06-20 00:57 明天喝可乐 阅读(58) 评论(0) 推荐(0)
摘要:当hashmap第一次插入元素、元素个数达到容量阀值threshold时,都会扩容resize(),源码: (假设hashmap扩容前的node数组为旧横向node数组,扩容后的node数组为新横向node数组) 1 final Node<K,V>[] resize() { 2 Node<K,V>[ 阅读全文
posted @ 2021-05-28 03:05 明天喝可乐 阅读(101) 评论(0) 推荐(0)
摘要:HashMap 是一个散列桶(本质是数组+链表),散列桶就是数据结构里面的散列表,每个数组元素是一个Node节点,该节点又链接着多个节点形成一个链表,故一个数组元素 = 一个链表,利用了数组线性查找和链表修改的便利性(横向=Node数组,横向只存放每个链表第一个节点,通过数组下标维持每个Node链表 阅读全文
posted @ 2021-05-20 23:55 明天喝可乐 阅读(53) 评论(0) 推荐(0)
摘要:@Transactinonal 注解在方法抛出RuntimeException类及其子类时、Error类及其子类时会回滚当前事务,使sql不提交; 只能作用于public的方法;写在类上时,代表给该类中所用public方法加@Transactinonal注解;写在方法上时,只给当前public方法加 阅读全文
posted @ 2021-05-16 10:07 明天喝可乐 阅读(201) 评论(0) 推荐(0)
摘要:lock()和lockInterruptible()都表示获取锁,唯一区别是,当A线程调用lock()或lockInterruptible()方法获取锁没有成功而进入等待锁的状态时,若接着调用该A线程的interrupt()方法中断该线程的等待: 如果A线程是通过lock()获取锁失败而进入等待状态 阅读全文
posted @ 2021-05-03 20:42 明天喝可乐 阅读(211) 评论(0) 推荐(0)
摘要:java预定义的四种线程池 SingleThreadExexcutor:单线程数的线程池 FixedThreadPool:固定线程数的线程池 CacheThreadPool:可缓存的线程池 ScheduledThreadPoo:支持定时或周期任务的线程池 这四种线程池都有各自问题,建议自定义线程池类 阅读全文
posted @ 2021-04-05 23:09 明天喝可乐 阅读(237) 评论(0) 推荐(0)
摘要:特点 ThreadLocal和Sychronized都用于解决多线程间的并发访问,但它们实现的本质方法不同:sychronized利用锁使同一个代码块或变量在某时刻只能被一个线程访问,而ThreadLocal则为所有线程都提供一个变量副本,这样在某一时刻不同线程访问到的是本质上不同的变量。 Thre 阅读全文
posted @ 2021-04-05 12:31 明天喝可乐 阅读(656) 评论(0) 推荐(0)
摘要:HashSet元素唯一,无序,依靠hashcode(),toString()实现元素的唯一性 TreeSet元素唯一,有序,依靠bTo实现比较,即继承Comparable类并重写compareTo(Object)方法实现比较,使元素唯一。(类Comparable和类Comparator都可以实现比较 阅读全文
posted @ 2021-03-30 13:32 明天喝可乐 阅读(146) 评论(0) 推荐(0)
摘要:CountDownLatch:使当前线程必须等待其他线程执行完再执行 CountDownLatch c=new CountDownLatch(2); c,await();//主线程调用该方法进行阻塞自己,表示等待其他线程执行完 c.countDown();//副线程每调用一次该方法表示计数+1,副线 阅读全文
posted @ 2021-03-27 08:23 明天喝可乐 阅读(55) 评论(0) 推荐(0)
摘要:1、java -jar启动war包 将打好的war包丢到tomcat的webapps目录,然后进入tomcat的bin目录双击运行startup.bat会自动解压war包,在浏览器直接可访问web项目 阅读全文
posted @ 2019-11-24 23:40 明天喝可乐 阅读(133) 评论(0) 推荐(0)
摘要:Runable与Callable相同点: 1、两者都是接口; 2、两者都可用来编写多线程程序; 3、两者都需要调用Thread.start()启动线程; 不同点: 1、实现Callable接口的任务线程能返回执行结果,此时需要调用FutureTask.get()方法实现,此方法会阻塞主线程直到获取c 阅读全文
posted @ 2019-08-26 23:55 明天喝可乐 阅读(652) 评论(0) 推荐(0)
摘要:1、resultMap与resultType <mapper namespace="com.dao.FilmMapper"> <resultMap id="BaseResultMap" type="com.entity.Film"> ...Film类属性/属性别名对应数据库字段 </resultMa 阅读全文
posted @ 2019-07-27 23:09 明天喝可乐 阅读(181) 评论(0) 推荐(0)
摘要:1. Locale 介绍 Locale 表示地区。每一个Locale对象都代表了一个特定的地理、政治和文化地区。 在操作 Date, Calendar等表示日期/时间的对象时,经常会用到;因为不同的区域,时间表示方式都不同。 下面说说Locale对象的3种常用创建方式。 1.1、获取默认的Local 阅读全文
posted @ 2019-07-24 22:49 明天喝可乐 阅读(472) 评论(0) 推荐(0)
摘要:Java有三种代理模式:静态代理、jdk动态代理、cglib代理 静态代理 目的是对目标类的功能进行扩展 //接口 public interface ISing(){ public void msg(); } //目标类 public class Sing implements ISing{ pub 阅读全文
posted @ 2019-06-30 01:21 明天喝可乐 阅读(171) 评论(0) 推荐(0)
摘要:Java中一共有四种方法支持同步,实现生产者消费者模型,不管哪一种,都是用Queue作为缓冲队列(常用前三种): (1)Object的wait() / notify()方法 (2)Lock和Condition的await() / signal()方法 (3)BlockingQueue阻塞队列方法 ( 阅读全文
posted @ 2019-06-27 08:03 明天喝可乐 阅读(286) 评论(0) 推荐(0)
摘要:在线程池里面创建线程,使用线程池可以很好地提高性能,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。 4种线程池均用Executors创建: Executors.newCacheThreadPool 阅读全文
posted @ 2019-06-25 02:17 明天喝可乐 阅读(859) 评论(0) 推荐(0)
摘要:3中方式创建线程:Thread、Runnable、Callable Callable 3中方式创建线程:Thread、Runnable、Callable Callable 此法利用了FutureTask,FutureTask实现了两个接口,Runnable和Future,所以它既可以作为Runnab 阅读全文
posted @ 2019-06-23 06:29 明天喝可乐 阅读(146) 评论(0) 推荐(0)
摘要:两个不同的Key,得到相同的hash值,而一个下标只能存放一个Key,这就产生了哈希冲突(这里的Key和hashMap原理key-value中的key是不同的,key-value是一对值,而Key是独立的一个值),冲突后Key就必须通过别的方法找到属于自己的存放位置。 开放定址法 开放定址法 根据增 阅读全文
posted @ 2019-06-22 00:38 明天喝可乐 阅读(181) 评论(0) 推荐(0)