随笔分类 - Java
摘要:一.写作背景 最近组内在推行checkstyle代码规范的检测,关于checkstyle的介绍可以参考:https://checkstyle.sourceforge.io, 在按照checkstyle修改问题时,遇到几个很头疼的问题,最头疼就是checkstyle对function中return数量
阅读全文
摘要:平常开发过程中,如果涉及到RPC调用,对于服务调用方和服务提供方,都是可以设置接口超时时间的。以调用方为例,调用方需要调用远程的一个接口,为了保证服务的质量,一般会设置调用接口的超时时间,比如将调用接口的超时时间设置为1秒,当调用远程接口后,经过1秒还未拿到结果,那么就认为是超时了,调用方就不会继续
阅读全文
摘要:一.线程状态流转图 Java的线程可以有多种状态,在Thread.State类中定义了6个常量来表示线程的状态,分别是NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED,下面是比较详细的一幅状态流转图: 二.示例代码 2.1 sleep 先看下
阅读全文
摘要:目录 一.介绍 二.问题提出 2.1内存原理图 2.2几个问题 三.回答问题 3.1为什么会出现内存泄漏 3.2若Entry使用弱引用 3.3弱引用配合自动回收 四.总结 一.介绍 之前使用ThreadLocal的时候,就听过ThreadLocal怎么怎么的可能会出现内存泄漏,具体原因也没去深究,就
阅读全文
摘要:目录 一.ThreadLocal介绍 1.1 ThreadLocal的功能 1.2 ThreadLocal使用示例 二.源码分析-ThreadLocal 2.1 ThreadLocal的类层级关系 2.2 ThreadLocal的属性字段 2.3 创建ThreadLocal对象 2.4 Thread
阅读全文
摘要:目录 一.ThreadLocal介绍 二.使用场景1——数据库事务问题 2.1 问题背景 2.2 方案1-修改接口传参 2.3 方案2-使用ThreadLocal 三.使用场景2——日志追踪问题 四.其他使用场景 一.ThreadLocal介绍 我们知道,变量从作用域范围进行分类,可以分为“全局变量
阅读全文
摘要:一. 介绍 平时工作中可能会碰到排查多线程的bug,而在排查的时候,如果线程(单个线程或者是线程池的线程)没有一个比较明确的名称,那么在排查的时候就比较头疼,因为排查问题首先需要找出“问题线程”,如果连“问题线程”都找不到,就很难找出问题原因,本文就针对多线程中涉及到的线程池、线程组、线程名称,介绍
阅读全文
摘要:前言 平常会遇到很多的日期格式,各种各样的,什么UTC、GMT、毫秒级、微秒级、纳秒级....这些格式,怎么创建这些格式很简单,但是,怎么将这几种格式进行相互转换,是一个问题!!!!所以我专门写一篇博客,做一下笔记吧,反正经常会用到。 1、获取当前时间的时间戳 1.1、时间进制 1秒=1000毫秒
阅读全文
摘要:目录 1、枚举基础 1.1、创建枚举最简单的方式 1.2、简单使用 2、枚举的构造方法 2.1、使用注释方式说明 2.2、使用构造方法 2.3、使用带有构造器的枚举 3、就这些了? 3.1、需求 3.2、使用Map实现 3.3、枚举结合Map 1、枚举基础 1.1、创建枚举最简单的方式 1.2、简单
阅读全文
摘要:try-catch-finally底层原理:https://juejin.im/post/5ce030d3f265da1b8b2b2e44 分布式唯一ID:https://juejin.im/post/5c6be4086fb9a04a060570df
阅读全文
摘要:安装Jave和Tomcat 参考:安装Java和Tomcat 安装eclipse 下载地址:https://www.eclipse.org/downloads/packages/ 我下载的时Eclipse IDE for Enterprise Java Developers这个版本(300多MB)
阅读全文
摘要:目录 一.介绍 二.ThreadPoolExecutor 2.1 认识ThreadPoolExecutor 2.2 ThreadPoolExecutor的构造方法列表 2.3 任务队列分类 2.4 线程工厂 2.5 拒绝策略 三.使用Executors快速创建线程池 3.1 Executors介绍
阅读全文
摘要:一.Future的介绍 1.1 官方介绍 Future是JDK1.5中提供的一个接口(interface),关于Future,jdk文档中是这样介绍的: Future表示“进行异步计算结果”,提供了方法来检测异步计算是否完成,以及获取计算后的结果。异步计算完后后,只能通过get方法来获取计算结果,并
阅读全文
摘要:代码如下: 效果图(白色部分):
阅读全文
摘要:Properties类 Properties类,是一个工具类,包含在java.util包中。 功能:可以保存持久的属性,通常用来读取配置文件或者属性文件,将文件中的数据读入properties对象中,之后,可以直接从properties中获取配置项的值。并且这些配置只需要读取一次。 配置文件格式 可
阅读全文
摘要:byte与char 在java中,byte和char对于非英文字符来说: byte类型占用1字节,也就是说单个byte类型的变量,占用内存8位,数据范围是-128~127,全部转换为正数时,表示范围是0~255,所以他的表示范围刚好是ASCII码的范围。单个byte类型的变量不能存ASCII之外的数
阅读全文
摘要:目录 正则表达式介绍 Java使用正则表达式的最简流程 使用正则表达式进行字符串替换操作 使用正则表达式进行字符串分割操作 拓展:使用模式修正符 正则表达式介绍 正则表达式可以用来进行文本的处理(内容匹配),相对于字符串操作来说,正则表达式特别强大,于是,他的时间开销就比字符串操作要大。通常,如果是
阅读全文
摘要:线程与进程 这个涉及到操作系统的知识,可以自行查阅。 创建线程的三种方式 1、继承Thread类 2、实现Runnable接口 3、实现Callable接口 下面对这三种方式进行举例说明。 方式1:继承Thread类 注意事项: 1、某个类,继承Thread之后,需要重写run()方法,在run()
阅读全文
摘要:目录 Class对象 获得Class对象的三种方法 利用反射获取类的相关信息 利用反射来调用构造器、属性、普通方法 低效的反射--关闭安全检查 Class对象 我们以前在使用new关键字来创建对象的时候,JVM会首先将该class加载,保存的是一个模子,之后使用new关键字来创建的对象保证都是一样的
阅读全文
摘要:目录 注解的作用 Java内置注解 自定义注解 使用自定义注解 利用反射读取注解信息 注解的作用 注解的英文是Annotation,可以以为注释、注解。但是我们习惯称其为“注解”,因为,他不仅有注释的功能,还有其他功能。 注解不仅有“解释说明(注释)”的功能,还能被其他其他class文件读取到,让其
阅读全文