![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 95
Java语言开发中的相关课题的文章将被收录在此专栏
虎猫_EICHO
伪全栈,主Java后端,早期有iOS应用开发经验,少量C#桌面应用及前端项目经验。
展开
-
[Java] 如何理解和设置ThreadPoolExecutor三大核心属性?什么情况下工作线程数会突破核心线程数?任务拒绝策略都有哪些?
ThreadPoolExecutor是多线程编程中比较常用的一种工具类,熟练掌握其基本工作原理是非常重要的。希望通过本文你能了解到ThreadPoolExecutor是如何去把一个任务添加到其内部管理起来、同时在任务积压时又有哪几种基本的任务拒绝策略。原创 2022-12-18 09:00:00 · 1401 阅读 · 1 评论 -
[Java] 什么是锁?什么是并发控制?线程安全又是什么?锁的本质是什么?如何实现一个锁?
锁、并发控制和线程安全这几个概念是相辅相成的,通过本篇文章我们知道了锁其实是一种工具类,也知道其主要职责主要是负责维护锁状态以及加锁失败时阻塞线程,我们也简单地用Java自定义了一个我们自己的锁实现。理解锁的本质是理解多线程编程的基础。原创 2022-12-13 20:42:29 · 709 阅读 · 0 评论 -
[Java] HashMap是如何实现的?扩容机制是什么?树化机制知道吗?结合源码带你理解HashMap的原理。
HashMap的实现逻辑还是比较简单的,内部是散列表,散列表本质则是数组,散列表数组内的每一个元素都是一个哈希槽,多个哈希值取模后相同的数据会被存储在相同的哈希槽内,为了存储这些数据HashMap使用了链表和红黑树这两种数据结构,它们在数据量变化时通过树化反树化机制来互相转换。而扩容机制则是把HashMap内部的散列表进行倍增的一种处理。原创 2022-12-12 19:48:44 · 1032 阅读 · 0 评论 -
[Java] 序列化(Serialization)的本质是什么?在Java中怎么实现?为什么要了解序列化技术?序列化技术选型要点是什么?
序列化技术本身与业务代码关系并不大,反而更多与企业系统架构关系更大一点。越是趋向于分布式架构的系统,对于好的序列化技术的需求越大,而业务压力小甚至不需要做分布式架构的系统则对于序列化技术的需求没有那么大。目前来看,大部分企业都在往分布式架构系统靠的大环境下,理解序列化技术的本质也变得越发重要。原创 2022-12-11 09:00:00 · 1431 阅读 · 0 评论 -
[Java] 从内存的角度去理解ThreadLocal如何把不同线程间的访问隔离开来?ThreadLocal的内存泄露问题是什么?如何避免?
ThreadLocal的原理是什么?ThreadLocal的内存泄漏问题时什么?如何避免呢?本文带大家从内存的视角和源码去理解ThreadLocal的实现原理和如何避免出现内存泄漏问题。原创 2022-11-30 15:42:58 · 795 阅读 · 0 评论 -
[Java] 浅析rpc的原理及所用到的基本底层技术
通过本文笔者希望我们大家都能理解rpc的本质到底是什么,这样无论是面对阿帕奇的dubbo、谷歌的gRPC亦或是老旧的SOAP,咱们都能快速的理解其到底是在干什么。商业产品无穷无尽,唯有理解其本质才能以不变应万变。原创 2022-11-23 20:17:49 · 1995 阅读 · 0 评论 -
[Java] Spring Boot Auto Configure(Spring Boot自动装配)的原理
Spring Boot能帮助我们Java开发者快速开发基于Spring框架的应用,除了其作为依赖管理好帮手的一众Spring-Boot-Starter之外,其自动装配(Auto Configure)特性也起到了非常重要的作用。那么Spring Boot是如何实现自动装配的呢?本文将结合源码去讲解其原理。原创 2022-11-21 08:45:00 · 3295 阅读 · 0 评论 -
[Java] 什么是IoC?什么是DI?它们的区别是什么?
学习应用程序框架永远绕不过的一个话题就是控制反转(IoC)和依赖注入(DI),这两个概念总是令初学者感到困惑,然而这两个概念却是贯穿现代应用程序框架(Application Framework)的最基本的概念,必须要掌握。所以笔者将通过本文带大家了解一下什么是IoC、什么是DI。原创 2022-09-29 03:06:23 · 1411 阅读 · 0 评论 -
[Java] 乐观锁?公平锁?可重入锁?盘点Java中锁相关的概念
锁相关的概念很多,如乐观锁、公平锁等之外还有独享锁、共享锁、自旋锁、分段锁、偏向锁等大量概念,通常看得人眼花缭乱,笔者将利用本文尽可能地盘点梳理这些概念。原创 2022-09-19 00:15:50 · 306 阅读 · 0 评论 -
[Java] VSCode Maven项目提示java.lang.NoClassDefFoundError的解决方案
VSCode运行Maven项目时出现java.lang.NoClassDefFoundError错误?有两个原因!该怎么解决?!原创 2022-08-21 18:10:21 · 3463 阅读 · 0 评论 -
[JVM] 浅析JVM的垃圾回收机制的相关概念
JVM垃圾回收机制概念太多?分代?垃圾回收器?Minor GC、Major GC、ParNew GC、Serial Old GC、CMS GC查下来眼花缭乱迷迷糊糊?一篇文章文章带你分清楚这些概念。原创 2022-08-14 12:55:43 · 448 阅读 · 0 评论 -
[Java] 理解框架的基础之什么是Annotation
Java中注解究竟是干什么的? 如何写一个注解?注解的信息又是如何被框架利用的。本文讲简单探讨这几个问题。原创 2020-01-20 22:44:05 · 281 阅读 · 0 评论 -
[Java] 细数几种单例的实现方式
盘点6种Java单例实现。E.g. 懒汉饿汉实现、双重检查锁定实现、枚举实现等原创 2020-01-11 22:41:18 · 269 阅读 · 0 评论 -
[Java] 为什么要重写toString方法?如何写?
你知道该如何正确重写toString方法吗?阅读本文你将知道正确地写一个toString方法的原理和了解现已有的开源工具去生成正确的toString方法。原创 2019-12-15 02:55:10 · 2545 阅读 · 0 评论 -
[Java] 如何实现一个不可变类(Immutable class)
不可变类在日常工作中经常用到,如JDK中的String类和所有的包装类。使用不可变类有很多好处,如何实现一个不可变类呢?本文将介绍在Java中如何实现一个不可变类并用实战代码来帮助读者理解。原创 2019-12-01 19:11:45 · 3112 阅读 · 0 评论 -
[Java] .class文件格式与其内部结构
通过阅读本文,你将知道java源代码、class文件里的bytecode,其实没有那么神秘,你也能对其内容做解析。原创 2019-11-10 17:23:43 · 256 阅读 · 0 评论 -
[Java] 用C编写你自己的native方法
native关键字到底的作用是什么呢?native方法的实现源码又放在什么地方呢?如何实现一个自己的native方法?本文讲简单介绍native背后的原理和实现一个简单的Helloworld native方法。原创 2019-11-09 13:09:33 · 1309 阅读 · 1 评论 -
[Java小记] 记一下Log的各个级别及其用法
1. Log级别参考下列表格Log级别说明用法error错误:系统运行错误,无法自行恢复,并且会影响到如下游系统或系统的使用者。一般需要人为干预才能恢复正常运行。凌晨2点法则(2AM Rule):当发生这个错误时,你觉得有必要在2点熟睡之际叫醒的时候,log级别设为error。warn警告:系统运行异常,能自行恢复,继续运行。有可能异常会影响到使用者。但一般不...原创 2019-07-02 23:16:28 · 1637 阅读 · 0 评论 -
粗谈Java虚拟机是如何创建一个类的实例的?
本篇将简单探讨一下,JVM是如何一步一步创建一个对象的。1. Class Loading在一个特定的类能被实例化之前,JVM要做的第一步是需要将描述这个类的文件也就是.class文件给加载到内存里。一般的做法是根据指定的classpath在文件系统里搜索.class文件。这个处理过程被称为class loading。熟知的朋友们知道这里还有别的class loading方法,比如通过URL...原创 2019-05-19 23:46:28 · 468 阅读 · 0 评论 -
[Java,Sybase]jconn3.jar升级到jconn4.jar PreparedStatement Connection.prepareStatement(String)方法性能劣化
0x00 一句话大量通过prepareStatement方法创建PreparedStatement实例的时候,如果预编译开关是开着的,那么每次调用都会产生和DBMS的通信,大量通信导致性能劣化。prepareStatement不是给大量调用而设计的,是为重复使用而设计的,尽量避免在预编译开关开着的时候大量调用prepareStatement。0x01 前言公司别组有项目是从Java1.6升级...原创 2019-03-21 00:02:15 · 2229 阅读 · 0 评论