
Java
文章平均质量分 96
一角钱技术
Java架构师
展开
-
Java时间操作类库—Joda-Time
点赞再看,养成习惯,公众号搜一搜【一角钱技术】关注更多原创技术文章。本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章。前言上一周在做一个产品的需求的时候有个动态计算时间段(如现在是13:00,则时间段为15:10-17:10、17:10-19:10、19:10-21:10;即最早的出发时间为当前时间+参数【2h10min】,最迟的时间段为开始时间在20点前结束时间在20点后的时间段),期间大量使用到了日期时间类库,本着熟悉日期时间类库才有了这篇文章,文章最..原创 2021-03-07 19:01:59 · 4915 阅读 · 0 评论 -
深入掌握Java日志体系,再也不迷路了
对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。java领域存在多种日志框架,目前常用的日志框架包括Log4j 1,Log4j 2,Commons Logging,Slf4j,Logback,Jul。但是在我们的系统里面到底该怎么使用日志框架?还在为弄不清commons-logging.jar、log4j.jar、sl4j-api.jar等日志框架之间复杂的关系而感到烦恼吗?还在为如何统一系统的日志输出而感到不知所措嘛?比如,要更改Spring的日志输出原创 2020-12-11 23:57:56 · 360 阅读 · 0 评论 -
并发编程之ThreadLocal深入理解
ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量,这样同时多个线程访问该变量并不会彼此相互影响,因此他们使用的都是自己从内存中拷贝过来的变量的副本,这样就不存在线程安全问题,也不会影响程序的执行性能。原创 2020-12-10 23:31:09 · 248 阅读 · 0 评论 -
Java 基础 | Object 源码解析
点赞再看,养成习惯,公众号搜一搜【一角钱技术】关注更多原创技术文章。本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章。前言Java 是一门面向对象的语言,在 Java 里面一切都可以看作是一个对象,而 Java 里面所有的对象都默认继承于 Object 类。本文基于JDK1.8可以看到一共12个方法,其中 registerNatives() 是 native 修饰的,一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用。ge..原创 2020-12-01 16:35:24 · 127 阅读 · 0 评论 -
Java基础 |强引用、弱引用、软引用、虚引用
点赞再看,养成习惯,公众号搜一搜【一角钱技术】关注更多原创技术文章。本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章。前言在ThreadLocal源码中,其中嵌套类ThreadLocalMap中的Entry继承了WeakReferenc。Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强..原创 2020-11-29 21:52:22 · 159 阅读 · 0 评论 -
阿里巴巴java开发手册(2020版)
2020版链接:https://pan.baidu.com/s/1Zls_FUBKfGksU1GR3BGGGA密码:titz2019版链接:https://pan.baidu.com/s/1cvCVQvjmxVlMwzd7mxDZqg密码:j74h2018版链接:https://pan.baidu.com/s/1FbabpNhLxppUbj8NqknTZQ密码:mm7r2017版链接:https://pan.baidu.com/s/1EsoDXp6cBalFJt1XNbvhTw密原创 2020-09-12 10:45:39 · 15368 阅读 · 19 评论 -
关于java中的锁的理解
乐观锁与悲观锁乐观锁和悲观锁都是用于解决并发场景下的数据竞争问题,但是却是两种完全不同的思想。它们的使用非常广泛,也不局限于某种编程语言或数据库。乐观锁的概念所谓的乐观锁,指的是在操作数据的时候非常乐观,乐观地认为别人不会同时修改数据,因此乐观锁不会上锁,只有在执行更新的时候才会去判断在此期间别人是否修改了数据,如果别人修改了数据则放弃操作,否则执行操作。悲观锁的概念所谓的悲观锁,指的是在操作数据的时候比较悲观,悲观地认为别人一定会同时修改数据,因此悲观锁在操作数据时是直接把数据上锁,直到操作.原创 2020-09-09 21:39:50 · 580 阅读 · 0 评论 -
深入ArrayList源码分析(JDK8)
深入ArrayList源码分析(JDK8)Java 集合系列源码分析文章:深入TreeMap源码解析(JDK1.8)深入LinkedHashMap源码解析(JDK1.8)ArrayList源码分析(基于JDK8)数据结构中有两种存储结构,分别是:顺序存储结构、链式存储结构。在 Java 中,对于这四种结构分别进行实现的类有:顺序存储结构:ArrayList、Stack链式存储结构:LinkedList、Queue这里只对 ArrayList 的源码进行分析,ArrayList 是一原创 2020-09-06 00:21:30 · 137 阅读 · 0 评论 -
Nginx 配置WSS 解析与实战
Nginx 配置WSS 解析与实战1. 几个关键概念1.1 WebSocketWebSocket 协议是 html5 的一种通信协议,该协议兼容我们常用的浏览器。例如:Chrome、Firefox、IE 等。它可以使客户端和服务端双向数据传输更加简单快捷,并且在TCP连接进行一次握手后,就可以持久性连接,同时允许服务端对客户端推送数据。外加传统模式的协议一般HTTP轻轻可能会包含较长的头部,但真正有效的可能只有小部分,从而占用了很多资源和宽带。因此WebSocket协议不仅可以实时通讯,支持扩展;也可原创 2020-08-23 01:11:20 · 4962 阅读 · 1 评论 -
HashMap 实现原理与源码分析
一、弄清楚HashMap 之前,先回答以下几个问题1、HashMap 是线程安全的吗?2、HashMap 数据结构是什么?数组、链表、红黑树3、JDK8 对 HashMap 优化了哪块,为何要优化?二、逐步来认识HashMap1、数组public class Array { /** * 删除 插入 慢 O(n) * 找到下标的查找 O(1) ...原创 2019-04-27 00:07:47 · 139 阅读 · 0 评论 -
深入TreeMap源码解析(JDK1.8)
TreeMap源码解析(JDK1.8)1. 概述Map 接口的实现类 HashMap、LinkedHashMap、TreeMap。本篇来讲一下TreeMap的实现原理。TreeMap 不如 HashMap 那么常用,但存在即合理,它也有自己的应用场景,TreeMap 可以实现元素的自动排序。TreeMap 底层基于红黑树实现,利用红黑树的性质,实现了键值对排序功能,可以保证元素按 key 值大小进行遍历。2. 原理2.1 TreeMap继承关系TreeMap 继承自 AbstractMap 抽原创 2020-08-19 00:06:00 · 249 阅读 · 0 评论 -
深入LinkedHashMap源码解析(JDK1.8)
LinkedHashMap源码解析(JDK1.8)1. 概述在大多数的情况下,只要不涉及线程安全问题,Map基本都库使用 HashMap ,不过 HashMap 有一个问题,就是迭代HashMap的顺序并不少HashMap插入的顺序,也就是无序的。HashMap的这一缺点往往会带来困扰,因为有些场景,我们期待一个有序的 Map。LinkedHashMap 继承自 HashMap,在HashMap的基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题。除此之外原创 2020-08-18 00:01:28 · 681 阅读 · 0 评论