随笔分类 -  javaSE

1
java基础部分
摘要:synchronized 由对象头中的 对象标志 根据锁标志位的不同而被复用 以及锁升级策略 能用无锁 就不要用锁,能锁代码块 就不锁整个方法, 能用对象锁 就不用类锁. 尽可能让锁的粒度更小,以提高并发效率 每个对象\类 都是一把锁, 底层是Monitor锁 本质是依赖于操作系统的Mutex Lo 阅读全文
posted @ 2023-04-08 14:24 李勇888 阅读(41) 评论(0) 推荐(0) 编辑
摘要:volatile是java虚拟机提供的轻量级的同步机制 内存可见性 (保证可见性) 不保证原子性 禁止指令重排 (保证有序性) 可见性 volatile修饰的共享变量有如下特点 线程中读取这个变量时,每次都会读取主内存中最新的值,然后将其复制到工作内存 线程中修改了工作内存中变量的副本,修改之后会立 阅读全文
posted @ 2023-04-08 14:24 李勇888 阅读(13) 评论(0) 推荐(0) 编辑
摘要:原子类介绍 java.util.concurrent.atomic java并发包下的类,用于多线程情况下保证线程安全的 API 基本类型原子类 AtomicInteger 数组类型原子类 AtomicIntegerArray 引用类型原子类 AtomicReference 对象的属性修改原子类 A 阅读全文
posted @ 2023-04-08 14:24 李勇888 阅读(17) 评论(0) 推荐(0) 编辑
摘要:概念 compareAndSwap翻译过来就是 比较并交换 cas底层 调用的是unSafe,unSafed对底层的修改调用的native方法(CPU并发原语),天然原子性 代码说话 创建一个AtomicInteger类,初始化值5,此时线程A去修改,把5读到工作内存,修改成2000,在写回主内存时 阅读全文
posted @ 2023-04-08 14:16 李勇888 阅读(94) 评论(1) 推荐(1) 编辑
摘要:AQS是什么 字面意思, 抽象的队列同步器 是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的CLH (FIFO)队列的变种来完成资源获取线程的排队工作,将每条将要去抢占资源的线程封装成一个Node节点来实现锁的分配,有一个int类变量表示持有锁的状态(private 阅读全文
posted @ 2023-04-08 14:15 李勇888 阅读(13) 评论(0) 推荐(0) 编辑
摘要:什么是ThreadLocal ThreadLocal提供了线程局部变量. 这些变量和正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候 都有自己独立的 变量副本. ThreadLocal实例通常是类的私有静态字段,使用它的目的是希望将状态(用户ID、事务ID) 与线程关联起来 通俗 阅读全文
posted @ 2023-04-08 14:11 李勇888 阅读(28) 评论(1) 推荐(1) 编辑
摘要:引用分类 强引用 强引用是我们常见的普通对象引用,只有还有强引用指向一个对象,就表明这个对象还“存活”,垃圾收集器不会碰这个对象 当一个对象被强引用对象引用时,它就处于 可达状态,它是不能被垃圾回收的,即使出现了OOM也不会对该对象回收 软引用 软引用是相对于强引用弱化了一些的引用 当系统内存充足时 阅读全文
posted @ 2023-04-08 14:09 李勇888 阅读(19) 评论(0) 推荐(0) 编辑
摘要:lambda表达式 lambda表达式是什么 引用百度百科 “Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambd 阅读全文
posted @ 2019-12-22 22:37 李勇888 阅读(590) 评论(0) 推荐(0) 编辑
摘要:偶然在开发过程中需要将int[] 转成 List<Integer>,采用了遍历的方式,写的代码实在太多。 采用jdk1.8的新特性一行代码就可搞定,代码简洁 整理了jdk1.8下 list<Integer>,Integer[],int[]三者之间的互转 同理,其他封装类类似 希望对看到此博文的读者有 阅读全文
posted @ 2019-08-21 17:07 李勇888 阅读(2046) 评论(0) 推荐(0) 编辑
摘要:关于List 说到list,我的印象就是单值集合接口,插入取出是有序的,允许重复,用他的实现类用的最频繁的就是ArrayList了。如果我现在有一个list,插入了一些值,想让里面的值按照我自定义的规则排序。 以下测试基于JDK1.7 ①list里面是String的情况 从打印结果可以看出,coll 阅读全文
posted @ 2018-10-27 14:39 李勇888 阅读(1884) 评论(0) 推荐(0) 编辑
摘要:public static void main(String[] args) { BigDecimal totalDoneAmt = new BigDecimal(2); Double d1 = add(totalDoneAmt, new BigDecimal(0.01)); Double d2 = ride(to... 阅读全文
posted @ 2018-07-18 10:56 李勇888 阅读(194) 评论(0) 推荐(0) 编辑
摘要:参考: https://blog.csdn.net/chengzhezhijian/article/details/17264531 面试一家公司的面试题,注: 那个面试官对这个问题挺看重的(可是我回答对了,不知道原理) 1 总结: 虽然 finally中的代码执行了,并且修改了i的值,但是最后返回 阅读全文
posted @ 2018-05-14 11:49 李勇888 阅读(125) 评论(0) 推荐(0) 编辑
摘要:参考博客: https://blog.csdn.net/nvd11/article/details/27393445 return compare(this.value, anotherInteger.value); } public static int compare(int x, int y) 阅读全文
posted @ 2018-03-28 18:22 李勇888 阅读(200) 评论(0) 推荐(0) 编辑
摘要:Exception in thread "main" java.util.ConcurrentModificationException 并发修改异常引发的思考! ①list遍历删除元素时会报错,比如下面删除字符串"aa",也有遍历不报错的例子,看下面的例子 public class TestMai 阅读全文
posted @ 2017-11-07 15:36 李勇888 阅读(4572) 评论(3) 推荐(1) 编辑
摘要:参考自 : http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html http://www.cnblogs.com/peida/archive/2013/04/26/3038503.html 阅读全文
posted @ 2017-11-06 11:05 李勇888 阅读(159) 评论(0) 推荐(0) 编辑
摘要:1 List集合转成json字符串 2 json字符串转成List集合 后续需要复杂的转换在更新..... 阅读全文
posted @ 2017-11-03 09:36 李勇888 阅读(1443) 评论(0) 推荐(0) 编辑
摘要:public static void main(String[] args) { Set set = new HashSet(); Test t1 = new Test("aaa"); Test t2 = new Test("aaa"); set.add(t1); set.add(t2); System.out.println(set.size()); //我们对于... 阅读全文
posted @ 2017-10-21 09:36 李勇888 阅读(145) 评论(0) 推荐(0) 编辑
摘要:见知乎 : https://www.zhihu.com/question/66705139 也有大佬的点评 上述代码第21行 : 阅读全文
posted @ 2017-10-18 19:27 李勇888 阅读(427) 评论(0) 推荐(0) 编辑
摘要:说明:传递给我的参数是什么类的运行时类,那么返回的就是哪个类的实例。 这几周一直在看之前公司做的老项目,封装的挺好的,觉得很多地方用的很巧妙 java博大精深 阅读全文
posted @ 2017-09-29 22:47 李勇888 阅读(593) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2017-09-24 16:51 李勇888 阅读(4) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示