随笔分类 -  Java

摘要:背景:感觉还可以,做个记录 今天这讲我们继续来聊聊锁优化。上一讲我重点介绍了在 JVM 层实现的 Synchronized 同步锁的优化方法,除此之 外,在 JDK1.5 之后,Java 还提供了 Lock 同步锁。那么它 有什么优势呢? 相对于需要 JVM 隐式获取和释放锁的 Synchroniz 阅读全文
posted @ 2022-04-12 12:42 CS408 阅读(234) 评论(0) 推荐(0) 编辑
摘要:背景:感觉讲的不错,可以学习理解 你好,我是刘超。从这讲开始,我们就正式进入到第三模块——多线程性能调优。 在并发编程中,多个线程访问同一个共享资源时,我们必须考虑如何维护数据的原子性。在 JDK1.5 之前,Java 是依靠 Synchronized 关键字实现锁功能来做到这点的。 Synchro 阅读全文
posted @ 2022-04-12 12:29 CS408 阅读(146) 评论(0) 推荐(0) 编辑
摘要:背景:整理java面试过程中的基础知识 java IO相关知识点 java IO之BIO NIO AIO 阅读全文
posted @ 2022-03-29 16:15 CS408 阅读(23) 评论(0) 推荐(0) 编辑
摘要:背景:记录stream常用的操作方式 Java8 使用 stream().sorted()对List集合进行排序 倒序 升序 和多条件判断 阅读全文
posted @ 2022-03-15 07:38 CS408 阅读(34) 评论(0) 推荐(0) 编辑
摘要:背景经历 当时我工作近5年,明显感觉到了瓶颈期。具体来说,感觉自己用过很多框架、做过一些技术设计、也有过一些产出,但是从技术深度上感觉不足,到后期时做事也没有明显挑战,完全适应了公司节奏,说句不好听的成了老油条,可以每天舒服的混日子(这也有好处,有时间准备面试)。这对于个人成长不利,长此以往可能面临 阅读全文
posted @ 2021-04-23 21:52 CS408 阅读(449) 评论(0) 推荐(0) 编辑
摘要:背景:在讲到模板模式时候说到钩子方法,不是很理解,做个记录! 彻底搞懂模板模式 抽象方法和空实现方法的区别,当要实例化对象调用的使用时候,抽象方法必须实现,空方法可以不用重写 模板模式是父类提供模板方法,子类提供具体实现,对于子类需要实现的方法,父类写成抽象方法,强制子类实现,对于子类不需要实现的方 阅读全文
posted @ 2021-04-13 11:40 CS408 阅读(247) 评论(0) 推荐(0) 编辑
摘要:背景:在进行jvm调优的时候参数总是记不住,也不知道为啥要调优 https://blog.csdn.net/u013066244/article/details/88089766 环境 java7+ 前言 看了大部分博文对JVM所谓调优就是修改参数值,但是我觉得这不算调优,比如:将最大内存值调大了, 阅读全文
posted @ 2020-08-05 21:14 CS408 阅读(318) 评论(0) 推荐(0) 编辑
摘要:背景:整理开发过程中的异常问题 java.lang.Exception: No tests found matching 一般出现在新导入的工程中。在sts中通过open project的方式导入工程后,运行test用例,报No tests found matching错误。 根因是build pa 阅读全文
posted @ 2019-07-01 19:39 CS408 阅读(1236) 评论(0) 推荐(0) 编辑
摘要:背景:java容器是面试中基础的基础,所以 有必要对着源码撸一遍。 进行了高度总结,首推: https://github.com/CyC2018/CS-Notes/blob/master/notes/Java%20%E5%AE%B9%E5%99%A8.md LinkedHashMap 的实现原理 下 阅读全文
posted @ 2019-05-09 08:17 CS408 阅读(899) 评论(0) 推荐(0) 编辑
摘要:背景:被问到很基础的知识点 string 自己答的很模糊 Java中的String为什么是不可变的? -- String源码分析 ps:最好去阅读原文 String 为什么不可变 ? 什么是不可变类?不可变类只是其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候就提供,并且在对象 阅读全文
posted @ 2019-05-06 08:22 CS408 阅读(444) 评论(0) 推荐(0) 编辑
摘要:背景:面试过程中问到结束线程的方法和线程池shutdown shutdownnow区别以及底层的实现,当时答的并不好。 Java结束线程的三种方法 线程属于一次性消耗品,在执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,不能再次start,只能重新建立新的线程对象,但有时run()方 阅读全文
posted @ 2019-04-25 07:25 CS408 阅读(8512) 评论(0) 推荐(1) 编辑
摘要:背景:六大设计模式基本原则很考验个人的基本功,所以要深入学习总结。 设计模式六大原则(3):依赖倒置原则 定义 定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。(抽象 抽象)问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来 阅读全文
posted @ 2019-04-21 13:13 CS408 阅读(422) 评论(0) 推荐(0) 编辑
摘要:背景:之前一直没搞明白Lambda和相关函数式编程的写法,现在终于能搞清楚了。 原文转载公众号 低并发编程: 原来 Lamda 表达式是这样写的 List<Student> studentList = gen(); Map<String, Student> map = studentList .st 阅读全文
posted @ 2019-04-21 12:39 CS408 阅读(353) 评论(0) 推荐(0) 编辑
摘要:背景:讲到反射机制,肯定会想到动态代理。 轻松学,Java 中的代理模式及动态代理 代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强。值得注意的是,代理类和被代理类应该共同实现一个接口,或者是共同继承某个类。 静态代理 代理类需要自己编写代码写成。 动态代理 Prox 阅读全文
posted @ 2019-04-21 11:40 CS408 阅读(378) 评论(0) 推荐(0) 编辑
摘要:背景:美团的技术沙龙分享的文章都还是很不错的,通俗易懂,开阔视野,后面又机会要好好实践一番。 Java动态追踪技术探究 楔子 jsp的修改 重新加载不需要重启servlet。如何在不重启jvm的情况下,修改一个对象的行为呢? Java的对象行为(方法、函数)是存储在方法区的。 “倒着推,手写没问题, 阅读全文
posted @ 2019-04-20 15:11 CS408 阅读(705) 评论(0) 推荐(0) 编辑
摘要:背景:总结JUC下面的阻塞队列的实现,很方便写生产者消费者模式。 常用操作方法 常用的实现类 ArrayBlockingQueue DelayQueue LinkedBlockingQueue PriorityBlockingQueue SynchronousQueue 阻塞队列原理: 其实阻塞队列 阅读全文
posted @ 2019-04-12 08:04 CS408 阅读(4994) 评论(0) 推荐(0) 编辑
摘要:序列化ID的作用: 其实,这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!简单来说,java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVer 阅读全文
posted @ 2019-04-06 17:35 CS408 阅读(5075) 评论(0) 推荐(2) 编辑
摘要:背景:学习java的基础知识,每次回顾,总会有不同的认识。该文系转载 最近去面试了几家公司,被问到hashCode的作用,虽然回答出来了,但是自己还是对hashCode和equals的作用一知半解的,所以决定把它们研究一下。 以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals, 阅读全文
posted @ 2019-04-06 17:01 CS408 阅读(498) 评论(0) 推荐(0) 编辑
摘要:背景:对于这些基础知识很有必要好好梳理总结 https://blog.csdn.net/zhengzhb/article/details/7296930 待续,,,总结其它相关原则 阅读全文
posted @ 2019-03-28 08:25 CS408 阅读(166) 评论(0) 推荐(0) 编辑
摘要:BigInteger与BigDecimal Java大数字运算(BigInteger类和BigDecimal类) 在 Java 中提供了用于大数字运算的类,即 java.math.BigInteger 类和 java.math.BigDecimal 类。这两个类用于高精度计算,其中 BigInteg 阅读全文
posted @ 2019-03-28 08:17 CS408 阅读(412) 评论(0) 推荐(0) 编辑

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