![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
杨小帆_
沉下心来做技术
展开
-
从实践 APT 到深入理解 Lombok
文章目录一、概述1.1 起因1.2 疑问二、前提2.1 Java 编译器的工作流程2.2 关于 Lombok2.3 关于 Javac 的源码三、求证3.1 Lombok 中的注解和 Spring 中的注解有什么区别?3.2 Lombok 到底是生成新的 Java 源文件还是修改已有的 Java 源文件?3.3 如果是修改已有的 Java 源文件那 Lombok 又是怎么实现的呢(源码解析)?3.3...原创 2019-12-13 19:05:05 · 1289 阅读 · 1 评论 -
通过字节码分析 Java 语言和 Java 虚拟机如何看待 boolean 类型
文章目录一、概述二、实例代码和指令2.1 示例代码和指令2.2 运行结果三、探究 boolean 类型3.1 指令解析3.2 JASM 文件3.3 .class 字节码文件3.4 操作解析和原理分析四、探究 boolean 的掩码处理4.1 概述4.2 求证4.3 解析五、内容总结5.1 总结一、概述 JAVA 中的 boolean 类型是我们经常使用的一个类型,但是我们对其了解可能是仅限于...原创 2019-12-08 23:20:56 · 669 阅读 · 1 评论 -
源码解析 Java 的 compareAndSwapObject 到底比较的是什么?
一、引题 今天在写一个无锁队列的小项目时用到了 Java Unsafe 包中的 compareAndSwapObject 方法,也就是比较并交换 Java Object ,对于这个方法以前都仅是停留在使用阶段,对底层源码的探究比较少,所以今天就打开源码探究一下该方法的底层到底是怎样实现的,其方法中的这个比较对于 Java Object 来说到底比较的是什么?二、源码探究2.1 Java ...原创 2019-12-03 19:40:20 · 14074 阅读 · 7 评论 -
Spring 源码解析——IOC 源码解析(Bean 的扫描、注册和实例化)(一)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述在前面的博文中我们已经对 Spring 当中 @Configuration 注解的源码部分进行了大概的分析,但其实在分析 @Configuration 源码的过程中我们已经涉及到了 Spring 的 IOC 流程,大概分析了 Spring 容器对Bean 的注册流程,以及大概了解了 BeanD...原创 2019-09-23 17:52:24 · 555 阅读 · 0 评论 -
Java J.U.C 中 AQS 子类 ReentrantLock 源码分析(三)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述这篇博文是整个ReentrantLock 源码分析的第三篇博文,在第一篇博文中我们主要分析了ReentrantLock 的 lock 加锁(独占式同步状态获取)代码流程,在第二篇博文中我们主要分析了ReentrantLock 的 unlock 解锁流程并分析了在解锁过程中遇到的一些细节问题...原创 2019-09-18 19:05:29 · 159 阅读 · 0 评论 -
Java J.U.C 中 AQS 子类 ReentrantLock 源码分析(二)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述在上一篇博文中我大概分析了ReentrantLock 的 lock 的整个流程,但是因为涉及的源码比较多,整篇博文的内容比较复杂,因此特地补上几篇博文来继续介绍ReentrantLock 中之前遗漏的知识点和存在一些问题的知识点,希望能够帮助大家和更好的理解ReentrantLock 的源...原创 2019-09-17 21:34:20 · 196 阅读 · 0 评论 -
Java J.U.C 中 AQS 子类 ReentrantLock 源码分析(一)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述对于 Java 中的 JUC 包大家应该都是非常熟悉的,JUC 的全称是 Java.util.concurrent ,翻译过来也就是 Java 并发编程工具类包,在这个包中有许多在我们并发编程过程中经常使用到的线程安全的容器类和同步锁等一些组件,而在这个包中很多的线程安全都是基于基础底层的 AQ...原创 2019-09-16 18:36:17 · 447 阅读 · 1 评论 -
从零开始搭建单服务器 zookeeper 注册中心(Ubuntu虚拟机 + SpringBoot)
一、Ubuntu 虚拟机安装为了便于调试,因此我在这里选择使用虚拟机作为远程服务器来实现注册中心,其中对于虚拟的操作系统选择一般是有 Ubuntu 或者 CentOS,因为之前在云服务器上安装的就是 CentOS 系统,所以这里就选择了使用 Ubuntu 。1.1 虚拟机对于虚拟机的选择因为我刚开始是尝试使用 Win 自带的 hyper-v ,但是在尝试多次之后都以莫名其妙的原因失败了...原创 2019-09-10 19:50:27 · 259 阅读 · 0 评论 -
Spring 集成 Redis 实现商品信息内存缓存(Redis 数据缓存分析)
一、Redis 内存数据库简介Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets...原创 2019-09-03 16:00:24 · 3496 阅读 · 0 评论 -
Spring 集成 Redis 内存缓存实现购物车功能
越努力,越幸运。 一、功能背景在前面博文开源的 “网上购物子系统” 中,存在一个项目的需求,即实现一个购物车功能。对于购物车其主要的功能就是保存用户之前选取的商品以及其对应的购买数量等信息,在用户再次登录或进入网页时可以再次查询到并展示出之前所添加的商品的相关信息,为用户提供一个更加流畅的购物体验,因此这是在许多的类似的在线购物项目中都会实现的一个功能。二、功能分析这个功...原创 2019-08-30 15:07:09 · 2395 阅读 · 0 评论 -
基于 SSM 的网上购物系统(源码 + 开发文档 已开源)
你能做到的,比想像的更多。一、项目背景这个项目是自己从四月份开始学习 Spring + SpringMVC + MyBatis 后的一次项目实践,恰好赶上学校的数据库暑期课程实践,跟老师申请后更改到了这个课题——网上购物系统。之所以选择这个课题的原因主要是因为其具有比较好的可发挥性和可扩展性,对于这种类似网上商城的系统,我们不仅可以在商品加载和商品发布等比较基础的功能实现系统的性能优...原创 2019-08-16 11:06:58 · 41996 阅读 · 16 评论 -
关于 batis.binding.BindingException: Invalid bound statement (not found) 解决方案
一、问题描述今天在使用 mybatis 、spring 和 servlet 进行整合开发的时候报了这样的一个错误。Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.demo.sm.dao.DepartmentDao.selectAll二、解...原创 2019-04-19 00:03:42 · 20350 阅读 · 21 评论 -
浅谈关于 Java 的 equals 方法和 hashcode
一、引题 相信大家在做项目的过程中肯定都使用过 equals 这个方法来进行两个对象是否相等的比较,之前一直不是很了解系统一些类对这个函数的默认实现是怎样的,所以一直也是对怎样重写equals 这个方法才比较合理这个点掌握的一知半解。正好今天有些时间,所以打算翻翻源码,了解一下系统中一些类的 equals 方法默认实现是怎样的,同时探究一下自己进行重写的时候的一些注意事项。二...原创 2019-03-15 21:36:34 · 143 阅读 · 0 评论