![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 64
小毛桃学习猿
这个作者很懒,什么都没留下…
展开
-
java8 stream 分批处理大数据集
public static void testHandler分批处理集合() { //业务数据 List<String> dataList=new ArrayList<>(); for (int i = 0; i < 100000; i++) { dataList.add(i+""); } int total = dataList.size(); // 每次分批处理个数 int num=500; ...原创 2021-10-21 10:03:20 · 1867 阅读 · 0 评论 -
@Transactional事务失效的6种场景
@Transactional 注解只能应用到 public 可见度的方法上。如果应用在protected、private或者 package可见度的方法上,也不会报错,不过事务设置不会起作用。默认情况下,Spring会对Error或者RuntimeException异常进行事务回滚,其他继承自java.lang.Exception的异常:如IOException、TimeoutException等,不会回滚。解决方案:Transactional注解加 rollbackFor 属性,指定java.l.原创 2021-09-28 17:58:56 · 2354 阅读 · 2 评论 -
Java中的引用Reference下篇(实践)
一、Reference类解析(一)Reference 类1.1 重要属性private T referent; volatile ReferenceQueue<? super T> queue;volatile Reference next;transient private Reference<T> discovered;private static Reference<Object> pending = null;1.1.1属性作用先看一下 Ref原创 2021-08-29 21:13:00 · 399 阅读 · 0 评论 -
Java中的引用Reference上篇(理论)
原创 2021-08-29 18:49:16 · 92 阅读 · 0 评论 -
jdk环境变量配置 - 关键解读
一、JDK和JRE1.jdk;是java开发工具,自带了运行环境jre。开发工具:(javac.exe编译工具,java.exe执行工具,jar.exe打包工具)2. jre 是java运行环境,不开发,只运行java项目就可以只安装配置jre.3. jdk包含jre,jre包含jvm。java_home :是一个约定,jdk安装路径,tomcat/Eclipse等软件都是通过java_home变量来找jdk路径;好处,可以配置多个版本的jdk,一旦修改版本或者地址,只修改此变量就可以。pat原创 2021-07-05 08:51:05 · 212 阅读 · 0 评论 -
java中的锁
Java中的锁一、公平锁和非公平锁公平锁:在多线程情况下,根据申请锁的顺序获取锁的策略成为公平锁。就是先进先出的等待队列。非公平锁:在多线程情况下,先抢夺锁,抢不到,根据公平锁方式获取锁。二、可重入锁(递归锁)同一线程外层函数获取锁之后,内层递归函数仍能获取该锁的代码,在同一线程在外层获取锁的时候,在进入内层方法会自动获取锁。即线程可以进入任意一个它已经拥有的锁所同步代码块。作用:可重入锁可以避免死锁。三、自旋锁尝试获取锁的线程不会立即阻塞,而是采用循环的方式尝试去获取锁。优点:减少上下文原创 2021-02-17 13:40:04 · 174 阅读 · 0 评论 -
java容器
java中的容器一、HashMap源码理解HashMap底层采用数组链表的方式实现。jdk1.7之前以k-v键值对方式封装在Map的内部接口Entry对象,1.8 封装在Entry实现类Node对象中,jdk1.7数组就是Entry[],1.8就是Node[]中。数据结构:索引key、值value、指向下一个对象的指针next。new一个HashMap默认容量未1<<4 = 16.最大容量为2的30次方。为什么HashMap的最大容量为1<<30?(左移)因为hashM原创 2021-02-17 12:12:53 · 165 阅读 · 2 评论 -
cpu实现原子性-总线锁和缓存锁
处理器如何实现原子操作1.总线锁2.缓存锁3.两种情况下处理器不会使用缓存锁定随着多核时代的到来,并发操作已经成了很正常的现象,cpu处理器实现原子操作有两种方式:(1)使用总线锁保证原子性。(2)使用缓存锁保证原子性。1.总线锁总线锁就是将cpu和内存之间的通信锁住,使得在锁定期间,其他cpu处理器不能操作其他内存中数据,故总线锁开销比较大。总线锁的实现是采用cpu提供的LOCK# 信号,当一个cpu在总线上输出此信号时,其他cpu的请求将被阻塞,那么该cpu则独占共享内存。何为总线?CPU总原创 2021-02-17 12:06:24 · 4748 阅读 · 7 评论 -
java泛型使用笔记
一、java泛型1. ?extendsArrayList heroList<? extends Hero> 表示这是一个Hero泛型或者其子类泛型heroList 的泛型可能是HeroheroList 的泛型可能是APHeroheroList 的泛型可能是ADHero从heroList取出来的对象,一定是可以转型成Hero的。不能往heroList中放东西,只能取。只能取,那么问题来了,哪来的数呢?遍历已经初始化的集合,以参数的形式传入函数中。ArrayList<原创 2020-08-23 11:43:50 · 97 阅读 · 0 评论