java

从Class源码看反射
日志日常敲码中,如果想要在程序运行阶段访问某个类的所有信息,并支持修改类的状态或者行为的话,肯定会用到反射,而反射靠的就是Class类.Java的动态代理也用到了这个东西,所以了解其基本操作在苦逼的CRU ...
Object类:又回到最初的起点
日志Object类大概是每个JAVA程序员认识的第一个类,因为它是所有其他类的祖先类.在JAVA单根继承的体系下,这个类中的每个方法都显得尤为重要,因为每个类都能够调用或者重写这些方法.当你JAVA学到一 ...
结合源码谈谈ThreadLocal!
日志网上有很多关于ThreadLocal的介绍,有的介绍比较简单,也有的介绍很复杂,比较难懂,今天,自己结合它的源码,也做个简易梳理,记录如下! ThreadLocal的作用 在多请求并发访问过程中,我们 ...
结构与算法(04):排序规则与查找算法
日志本文源码:GitHub·点这里 || GitEE·点这里 一.递归算法 递归就是方法自己调用自己,每次调用时传入不同的变量,可以让代码变得简洁.递归算法在计算机科学中是指一种通过重复将问题分解为同类的 ...
关于多线程中抛异常的这个面试题我再说最后一次!
日志这里why的第 66 篇原创文章 一道面试题 我一年前写过这篇文章<有的线程它死了,于是它变成一道面试题>,这是早期作品,遣词造句,排版行文都有一点稚嫩,但是不知咋地,还是有很多人看过. ...
解Bug之路-记一次对端机器宕机后的tcp行为
日志解Bug之路-记一次对端机器宕机后的tcp行为 前言 机器一般过质保之后,就会因为各种各样的问题而宕机.而这一次的宕机,让笔者观察到了平常观察不到的tcp在对端宕机情况下的行为.经过详细跟踪分析原因之 ...
Java新特性:数据类型可以扔掉了?
日志在很久很久以前,我们写代码时要慎重的考虑变量的数据类型,比如下面这些: 枚举:尽管在 JDK 5 中增加了枚举类型,但是 Class 文件常量池的 CONSTANT_Class_info 类型常量并没 ...
1
我告诉你一个 AtomicInteger 的惊天大秘密
日志i++ 不是线程安全的操作,因为它不是一个原子性操作. 那么,如果我想要达到类似 i++ 的这种效果,我应该使用哪些集合或者说工具类呢? 在 JDK1.5 之前,为了确保在多线程下对某基本数据类型或者 ...
volatile域浅析
日志内存模型的相关概念 计算机中执行程序时,每条指令都是在CPU中执行,执行指令的过程必然会涉及到数据的读取和写入.而程序运行时的数据是存放在主存(物理内存)中,由于CPU的读写速度远远高于内存的速度,如 ...
1
使用singleflight防止缓存击穿(Java)
日志缓存击穿 在使用缓存时,我们往往是先根据key从缓存中取数据,如果拿不到就去数据源加载数据,写入缓存.但是在某些高并发的情况下,可能会出现缓存击穿的问题,比如一个存在的key,在缓存过期的一刻,同时有 ...
1
java 常用类-String-1
日志一.字符串相关的类 1.1 String 的特性 String类:代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. String是一个fin ...
1
Thread、ThreadLocal源码解析
日志今天来看一下Thread和ThreadLocal类的源码. 一.Thread (1)首先看一下线程的构造方法,之后会说每种参数的用法,而所有的构造函数都会指向init方法 //空构造创建一个线程 Th ...
Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)
日志import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...
SpringBoot 配置的加载
日志SpringBoot 配置的加载 SpringBoot配置及环境变量的加载提供许多便利的方式,接下来一起来学习一下吧! 本章内容的源码按实战过程采用小步提交,可以按提交的节点一步一步来学习,仓库地址: ...
位运算的应用
日志平常都很少用到位运算,这里介绍一种jdk使用位运算的小案例.它是用位运算来优化一个类所占的大小.下面介绍: 什么情况下,符合这种优化条件: 用具体的例子来介绍: 优化情况 假设一个类需要有很多bool ...
1000000 / 60S 的 RocketMQ 不停机,扩容,平滑升级!
日志一.背景 1.各业务系统持续迭代过程中,JDK.SpringBoot.RocketMQ Client 等框架也进行了升级,高版本的 RocketMQ Client 发送的消息到低版本中,在控制台中午无 ...
CAS导致的ABA问题以及解决方案
日志CAS算法实现一个重要前提需要取出内存中某时刻的数据,而在下时刻比较并替换,那么在这个时间差类会导致数据的变化. 上篇文章讲到CAS会出现一个ABA问题.那什么是ABA问题呢? 官方一点的解释就是:当 ...
Spring Boot小组件 - SmartInitializingSingleton
日志前言 我们经常会看到或使用InitializingBean(或@PostConstruct)进行Bean的一个初始化过程,但是有时候会发现InitializingBean存在一些不太适用的场景. 比如 ...
Spring Boot小组件 - FailureAnalyzer
日志前言 一个Spring Boot 应用偶尔会因为某些原因启动失败,此时Spring Boot会友好地输出类似于这样一段文字,告诉你发生了什么,甚至应该采取什么行动: ***************** ...
MyBatis的类型自定义映射
日志背景 利用MyBatis将数据库的时间类型映射成Java8的时间类型,引申对不同类型的自定义映射 实现方法 1.实现MyBatis中TypeHandler接口 @MappedTypes(value = ...