随笔分类 -  java

用于记录java的一些基础知识
摘要:编译时注解处理器在《深入理解Java虚拟机》一书中有一些介绍(前端编译篇有提到),但一直没有机会使用,直到碰到这个需求,觉得再合适不过了,就简单用了一下,这里做个记录。 原文写于2021年2月8日。 一、需求 我们为公司提供了一套通用的JAVA组件包,组件包内有不同的模块,这些模块会被打成jar包, 阅读全文
posted @ 2023-08-17 01:16 是胖虎捏 阅读(88) 评论(0) 推荐(0) 编辑
摘要:一、在计算机中数据是如何进行计算的? 1.1:java中的byte型数据取值范围 我们最开始学习java的时候知道,byte类型的数据占了8个bit位,每个位上或0或1,左边第一位表示符号位,符号位如果为1表示负数,为0则表示正数,因此要推算byte的取值范围,只需要让数值位每一位上都等于1即可。 阅读全文
posted @ 2020-03-10 00:51 是胖虎捏 阅读(1303) 评论(1) 推荐(1) 编辑
摘要:🌏 环境: 🌳 JDK11 🌱 IDEA 2019.03 🌾 Resilience4j 0.13.2 🍃 知识依赖:juc,位图 一、什么是熔断 在分布式系统中,各服务间的相互调用更加频繁,上下游调用中充满了可能性,一个服务可能会被很多其他服务依赖并调用,在这个过程中如果某个服务由于某种原 阅读全文
posted @ 2019-12-10 21:58 是胖虎捏 阅读(3491) 评论(0) 推荐(2) 编辑
摘要:基于依赖程序的版本信息:HikariCP:3.3.1 驱动程序mysql-connector-java:8.0.17 上一篇:Druid是如何管理数据库连接的 零、类图和流程图 开始前先来了解下HikariCP获取一个连接时类间的交互流程,方便下面详细流程的阅读。 获取连接时的类间交互: 图1 一、 阅读全文
posted @ 2019-08-28 00:18 是胖虎捏 阅读(6508) 评论(1) 推荐(1) 编辑
摘要:基于依赖程序的版本信息:druid:1.1.16 驱动程序mysql-connector-java:8.0.17 下一篇:HikariCP是如何管理数据库连接的 零、类图&流程预览 下方流程中涉及到的类、属性、方法名均列在这里:Druid-类图-属性表 ←该表格用来辅助理解下面的流程图和代码,不用细 阅读全文
posted @ 2019-08-28 00:16 是胖虎捏 阅读(11051) 评论(10) 推荐(9) 编辑
摘要:一、关于BeanPostProcessor 1.1:它是什么? 首先它是一个接口,定义了两个方法: public interface BeanPostProcessor { @Nullable //所有bean初始化之前触发该方法 default Object postProcessBeforeIn 阅读全文
posted @ 2019-07-16 23:34 是胖虎捏 阅读(3527) 评论(0) 推荐(0) 编辑
摘要:上一篇介绍了jvm的内存模型,本篇将介绍虚拟机中最为复杂的一部分:垃圾收集,本篇会从垃圾回收前的准备工作到后面的收集阶段的方式以及HotSpot虚拟机对这些工作的实现做个较为系统的记录,方便自己以后查找阅读。 一、栈帧、变量类型、引用分析 讲解垃圾收集器的实现之前,结合之前讲的jvm内存区域划分,先 阅读全文
posted @ 2019-05-07 09:29 是胖虎捏 阅读(518) 评论(0) 推荐(0) 编辑
摘要:一、JAVA程序执行流程 JAVA程序执行的基本流程(基于HotSpot): 图1 二、内存模块划分 2.1:程序计数器 程序计数器是一块较小的内存空间,是当前线程执行字节码的行号指示器,字节码解释器就是通过改变这个计数器的值来获取下一条需要执行的字节码指令,其中分支、循环、跳转和异常处理,线程恢复 阅读全文
posted @ 2019-04-06 09:50 是胖虎捏 阅读(424) 评论(0) 推荐(0) 编辑
摘要:一、线程池的Future模式 在了解java8的CompletableFuture之前,先通过Future来解决一个问题,看个例子: 假设现在有一个网站,首页有顶部Banner位、左边栏、右边栏、用户信息几大模块需要加载,现在出一个接口,要求包装并吐出这几大模块的内容 先来抽象一个首页接口对象: p 阅读全文
posted @ 2019-03-14 22:50 是胖虎捏 阅读(2223) 评论(0) 推荐(0) 编辑
摘要:一、join & interrupt 这俩方法属于线程对象里的方法,属于线程本身的操作。 1.1:join方法 用于等待一个线程的终止,等待期间将会阻塞,直到被等待的线程终止结束。 所以join可以用来做多任务异步处理,比如还是拿利用CompletableFuture优化程序的执行效率这篇里的第一个 阅读全文
posted @ 2019-03-13 09:08 是胖虎捏 阅读(734) 评论(0) 推荐(0) 编辑
摘要:去年看完的《图解java多线程设计模式》,可惜当时没做笔记,导致后来忘了许多东西,打算再温习下这本书,顺便在这里记录一下~ 一、顺序执行、并行、并发 顺序执行:多个操作按照顺序依次执行。 并行:多个任务同时进行,同一时间内可以执行多个任务,这种方式,叫做并行执行,比如多核处理器,多个核可以同时处理多 阅读全文
posted @ 2019-02-26 23:22 是胖虎捏 阅读(3119) 评论(0) 推荐(1) 编辑
摘要:上一篇:ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析 一、基本使用 首先,TTL是用来解决ITL解决不了的问题而诞生的,所以TTL一定是支持父线程的本地变量传递给子线程这种基本操作的,ITL也可以做到,但是前面有讲过,ITL在线程池的模式下,就没办法 阅读全文
posted @ 2019-02-20 22:40 是胖虎捏 阅读(38923) 评论(9) 推荐(10) 编辑
摘要:上一篇:ThreadLocal系列(一)-ThreadLocal的使用及原理解析 下一篇:ThreadLocal系列(三)-TransmittableThreadLocal的使用及原理解析 一、基本使用 我们继续来看之前写的例子: private static ThreadLocal tl = ne 阅读全文
posted @ 2019-02-19 12:23 是胖虎捏 阅读(9686) 评论(1) 推荐(4) 编辑
摘要:项目中我们如果想要某个对象在程序运行中的任意位置获取到,就需要借助ThreadLocal来实现,这个对象称作线程的本地变量,下面就介绍下ThreadLocal是如何做到线程内本地变量传递的, 下一篇:ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析 一、 阅读全文
posted @ 2019-02-15 11:12 是胖虎捏 阅读(6188) 评论(0) 推荐(3) 编辑
摘要:借助juc里的ReentrantLock实现一个阻塞队列结构: 以上为主要代码,下面进行简单的测试: 运行结果: 阅读全文
posted @ 2019-02-12 16:44 是胖虎捏 阅读(890) 评论(0) 推荐(0) 编辑

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