自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘总Java

拒绝标题党,干活满满,刨根问底Java

  • 博客(97)
  • 收藏
  • 关注

原创 设计原则&设计模式学习入口

今天的博客主题 设计模式——》设计原则&设计模式学习入口设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性,扩展性。设计模式已经经历了很长一段时间的发展,它们提供了软件开发过程中面临的一般问题的最佳解决方案。来自灵魂深处的拷问1)什么是设计原则?什么是设计模式?答:答案在上面2)学了设计模式能干什么?答:答案在上面3)设计原则和设计模式什么关系?...

2020-06-07 23:09:50 163

原创 Elasticsearch学习入口

今天的博客主题 Elasticsearch——》Elasticsearch学习入口Elasticsearch知识点不仅多还复杂。不知道是不是没找到准确地切入点....给我的感觉就是,这辈子甭想精通它。这怎么可能。只要功夫深,铁棒磨成针。加油!!!Elasticsearch官方文档《官方网站》《官方文档》7.2版本《GitHub》《中文社区...

2020-03-01 21:21:33 651

原创 SpringBoot学习入口

今天的博客主题 SpringBoot——》SpringBoot学习入口SpringBoot 这块骨头属实难啃如果你对 Spring SpringMVC 没有去深入的了解过,那 SpringBoot 是很难吸收到精髓的!这里只是对SpringBoot的使用以及重要点做些了解调研。要想深入吸收精髓,有必要先对Spring SpringMVC 下手。。。...

2020-02-27 01:22:57 149

原创 2020最新Java学习指南

2020重新认知Java知其然知其所以然不做一个积极废人!!!模式:官方+大白话加深过程中会看书,借助搜索引擎,感谢前辈们的指导及不吝赐教!!!基础篇计算机基础知识(一定要懂的,忘记的在补补) 计算机基础 计算机理论 计算机网络 Java概述 Java概述 Java开发环境搭建 Java入门基础程序 Java SE 8 API Java编...

2020-01-01 23:01:21 605 1

原创 2023年度总结

这个位置没有空缺,不能留下遗憾,写下这篇博客吧。因为我离开了这个行业,但我为了CSDN。这一年一行代码都没写!

2023-12-12 01:04:59 90

原创 六、04【Java 多线程】之并发编程

并行和并发的概念我们之前有提到过。在回顾下并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是同时执行。并行:单位时间内,多个处理器或多核处理器同时处理多个任务,是真正意义上的同时进行。那么在多线程编程实战中,线程的个数往往大于CPU的个数,所以一般都称为多线程并发编程而不是多线程并行编程。在多核CPU时代的到来打破了单核CPU对多线程效能的限制。...

2022-08-16 21:08:19 400 1

原创 六、03【Java 多线程】之Java线程

创建一个类继承 Thread,重新run()方法。run() 方法就是线程要执行的业务逻辑方法。将该类进行实例化,调用 star() 方法来启动线程。创建一个类实现 Runnable 接口,并重写run()方法。将该类的实例作为 target 创建Thead对象,该Thread对象才是真正的线程对象。调用 star() 方法来启动线程。创建实现Callable接口的类MyCallable,以myCallable为参数创建FutureTask对象,...

2022-08-08 22:02:35 268

原创 五、Jvm调优

这个疑问必须要有,当对一个技术或者系统调优的时候 ,我们一定要知道去调什么,这样有一个出发点,有一个目标。不能胡乱的调对吧。那么Jvm调优,主要调以下1)减少Full GC2)解决OOM3)总的来说就是:使用较小的内存占用来获得较高的吞吐量或较低的延迟windows 系统下 我们可以通过 jps 命令查看程序进程ID。...

2022-08-03 22:43:12 535

原创 六、02【Java 多线程】之线程基础知识

进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可以访问共享的内存变量。线程是OS(操作系统)调度CPU的最小单元。CPU在这些线程上高速切换,让使用者感觉到这些线程在同时执行,即并发的概念,相似的概念还有并行!多线程是指程序中包含多个执行流,在一个程序中可以同时运行多个不同的线程来执行不同的任务。可以提高 CPU 的利用率。在多线程程序中,一个线程必须等待的时候,CPU 可以运行其它的线程而不是等待,这样就大大提高了程序的效率。...

2022-08-03 22:13:34 140

原创 六、01【Java 多线程】之重温操作系统

1)控制器(Control)是整个计算机的中枢神经,是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。2)运算器(Datapath)运算器主要是对数据进行各种算术运算和逻辑运算,也就是对数据进行加工处理。3)存储器(Memory)主要存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。4)输入(Inputsystem)上图是一个理论的抽象简化模型,下图就是具体的应用,也就是现代计算机中的硬件结构。...

2022-08-01 22:53:05 149

原创 五、05【Java IO模型】之BIO NIO AIO介绍

JAVA IO模型之BIO NIO AIO

2022-07-31 23:28:28 134

原创 五、04【Java IO模型】之字符流

两万字介绍【Java IO模型】之字符流

2022-07-31 23:17:33 142

原创 五、03【Java IO模型】之字节流

两万字介绍 Java IO模型之字节流

2022-07-31 22:50:49 295

原创 五、02【Java IO模型】之File类

File (Java文件类)以抽象的方式来表示文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。File对象代表磁盘中实际存在的文件和目录。

2022-07-31 22:37:21 376

原创 解决Win11文件夹卡顿

2022-02-16 亲测有效。文件夹恢复到win10状态,进入返回一点都不卡了;解决办法

2022-02-16 23:22:43 2164

原创 Specified class is an interface

Specified class is an interface 指定的类是接口异常错误信息Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.xxx.xxxMapper]: Specified class is an interface at org.springframework.beans.factory.support.SimpleInstantiat..

2021-03-31 10:55:38 8919 3

原创 四、Jvm垃圾收集器

今天的博客主题 Java虚拟机——》Jvm垃圾收集器垃圾收集算法垃圾收集算法主要的几种:分代收集理论、复制算法、标记清除算法、标记整理算法分代收集理论当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。Java堆分为新生代和老年代,这样就可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中,每次收集都会有大量对象(近99%)死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收.......

2021-03-31 08:54:40 124

原创 三、Jvm内存分配

今天的博客主题 Java虚拟机——》Jvm内存分配什么是JVM内存分配呢?就是当我们创建一个对象的时候,要在JVM内存空间里为这个对象分配一些空间,来存放对象的一些属性信息。对象创建的流程1)类加载检查在创建对象的过程中,也就是 new 一个对象的时候。首先检查 new 指令的参数在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已经被加载,解析和初始化过。如有没有,说明这个类没有被加载使用过,那就得执行类的加载过程。new 指令也就是,n......

2021-02-28 23:21:33 400

原创 二、Jvm内存模型

今天的博客主题 Java虚拟机——》Jvm内存模型JDK体系结构这个图大家肯定都不陌生。学Java的都见过...JDK & JRE & JVMJDK(Java Development ToolKit)就是 Java 开发工具箱。JDK是整个 Java 的核心里边包含了 JRE。除了包含 JRE 之外还包含了一些java javac等一些命令工具类。除此之外,还包含了 Java 源生的API。JDK有以下三种版本:J2SE(sta......

2021-01-28 22:35:37 262

原创 一、Jvm类加载机制

今天的博客主题 Java虚拟机——》Jvm类加载机制类加载过程在一开始学习 Java 语言的时候,对 javac 和 java 命令应该都不陌生。这两个命令对应了你的 JDK 安装目录:C:\Program Files\Java\jdk1.8.0_151\bin 目录下的javac.exe 和 java.exe 。这个目录下不仅仅包含了这两个命令,比如:javap、jmap、jstack、jstat 等等的一些命令。可以尝试的去使用下,后面也会对这些命令有解释。......

2021-01-28 22:14:13 216

原创 Jvm学习路线

今天的博客主题 Java虚拟机——》Jvm学习路线灵魂三连问JVM是什么?JVM 是 Java Virtual Machine(Java虚拟机)的缩写。Java虚拟机是Java平台的基石。它是硬件和操作系统独立性、编译代码的小尺寸以及保护用户免受恶意程序攻击的技术组成部分。Java虚拟机是一个抽象的计算机器。像真正的计算机一样,它有一个指令集,并在运行时操作各种内存区域。Java虚拟机对Java编程语言一无所知,只知道一种特殊的二进制格式,即类文件格式。类......

2021-01-28 21:31:54 262

原创 三、01【Redis】学习路线

今天的博客主题 DataBase ——》Redis 学习路线

2020-12-31 16:59:18 188 3

原创 二、01【Oracle】学习路线

今天的博客主题 DataBase ——》Oracle 学习路线

2020-12-31 16:58:37 67

原创 一、01【MySQL】学习路线

今天的博客主题 DataBase ——》MySQL学习路线

2020-12-31 16:57:16 129

原创 execute() is called on closed connection

记一次排查线上环境问题的流程总结,其实研发环境也有这样的问题,并发不够,没复现,隐藏的一个BUG。异常信息Caused by: execute() is called on closed connection at com.pharmacodia.chemaxon.internal.JChemSearchInner.searchForBizId(JChemSearchInner.java:205) ~[cloud-bc-chemaxon-3.0.0.jar!/:na] at com.p

2020-12-23 21:35:24 611

原创 StubRoutines::jlong_disjoint_arraycopy

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8205989

2020-12-11 11:12:17 1239

原创 五、01【Java IO模型】之Java IO介绍

今天的博客主题 Java IO模型——》Java IO介绍Java IOJava IO 是 Java 里 Input (输入/读) 和 OutPut(输出/写)的简称可以理解为是对文件的读写操作,在Java里对这种操作叫流操作,也就是所说的IO流IO流是一种计算机用语。主要解决从数据源读入数据和将数据源写入目的地的问题。通常情况下这两端可能是文件或网络连接。什么是流流代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象流的本质:数据...

2020-11-25 22:46:36 106

原创 四、10【Java常用类】之Java异常类

今天的博客主题 Java常用类——》Java异常类Java 的基本理念:结构不佳的代码不能运行。即便是运行了也是异常错误满天飞。。。异常概述异常就是非正常的。异常是程序中的一些错误,也不是所有的错误都是异常。程序开发和运行过程中会出现编译错误和运行错误。编译错误容易被发现并排除,而运行错误(逻辑错误和异常)很难预料。因此为了程序的稳定性和可靠性,就需要对程序异常处理和保护。异常( Exception ):正常程序流程所不能处理或者没有处理的异常情况或...

2020-10-30 22:43:19 298 1

原创 四、09【Java常用类】之Java泛型

今天的博客主题 Java常用类——》Java泛型Java泛型Java泛型是在 JDK1.5 提出的一个新特性。其本质就是:参数化类型,也就是所操作的数据类型被指定为一个参数。参数我们知道,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型允许对类型进行抽象。最常...

2020-09-28 21:55:04 659

原创 四、08【Java常用类】之Java集合类Map接口

Mappublic interface Map<K,V> { ... }Map接口描述将键映射到值的对象。映射不能包含重复的键;每个键最多只能映射到一个值。这个接口取代了Dictionary类,Dictionary类是一个完全抽象的类,而不是接口。映射接口提供三个集合视图,允许将映射的内容视为一组键、一组值或一组键-值映射。映射的顺序定义为映射集合视图上的迭代器返回其元素的顺序。一些映射实现,比如TreeMap类,对它们的顺序做出了特定的保证;其他的,比如HashMap

2020-08-30 23:57:20 639

原创 一、Java虚拟机初始

今天的博客主题 Java虚拟机——》Java虚拟机初始什么是虚拟机?Virtual Machine (虚拟机)简称 VMVM 是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。常见的虚拟机有:WindowsXP虚拟机,Linux虚拟机,Java虚拟机等。简单说:通过软件模拟的具有完整硬件系统功能的、...

2020-07-28 23:44:23 74

原创 二、24【设计模式】之各个模式练习题

今天的博客主题 设计模式——》设计模式之各个模式练习题温故而知新简单工厂模式练习题

2020-06-30 21:54:55 725

原创 二、23【设计模式】之委派模式

今天的博客主题 设计模式——》设计模式之委派模式委派模式 DP (Delegate Pattern)定义委派模式也被称为委托模式,是一种面向对象的设计模式。是对象组合实现与继承相同的代码重用。基本的作用就是负责任务的调用和分配,也是一种特殊的静态代理,可以理解为是全权代理,但是代理模式关注的是过程,而委派关注的是结果。(委派模式不属于Gof23种设计模式)应用场景一个任务又多个部分组成,可将任务细化,搜集结果汇总。优点通过任务委派...

2020-06-30 21:52:07 109

原创 二、22【设计模式】之备忘录模式

今天的博客主题 设计模式——》设计模式之备忘录模式备忘录模式 MP (Memento Pattern)定义保存一个对象的某个状态,以便在适当的时候恢复对象。其主要是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。是一种有撤销、回退的机制,通过存储系统各个历史状态的快照,可以回滚到某一个历史状态。应用场景1)需要保存历史快照的场景。2)在对象之外保存状态,除了自己其他对象无法访问状态...

2020-06-30 21:49:03 2614

原创 二、21【设计模式】之状态模式

今天的博客主题 设计模式——》设计模式之状态模式状态模式 SP (State Pattern)定义允许对象在内部状态发生改变时改变它的行为,看起来好像修改了它的类。类的行为是由状态决定的,不同的状态下该类有不同的行为。就是一个对象在其内部改变的时候,它的行为也随之改变。核心就是状态与行为的绑定,不同状态对应不同行为。应用场景在生活中的场景常见的就是订单状态的改变。1)行为随状态改变而改变的场景。2)一个操作中有大量分支存在,而这些分支状态又...

2020-06-30 21:47:19 190

原创 二、20【设计模式】之解释器模式

今天的博客主题 设计模式——》设计模式之解释器模式解释器模式 IP (Interpreter Pattern)定义给定一门语言,定义它的一种文法表示,并定义一个解释器,用来解释语言中的句子。这种模式一般被用在SQL的解析,符号的处理等。解释器模式也是一种使用频率低学习难度较大的一个设计模式。应用场景1)一些重复出现的问题可以用一种简单的语言来进行表达。2)一个简单语法需要解释的场景。3)编译器,运算表达式的计算4)优点...

2020-06-30 21:44:53 1759

原创 二、19【设计模式】之中介者模式

今天的博客主题 设计模式——》设计模式之中介者模式中介者模式 MP (Mediator Pattern)定义用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示的相互作用,达到耦合松散,独立的改变他们之间的交互。其主要是通过中介者解耦系统各层次对象的直接耦合,层次对象的对外依赖通信统统交由中介者转发。在一个系统中如果对象之间的联系呈现为网状结构,那这些对象之间肯定存在大量的多对多联系,将导致系统非常复杂,这些对象既会影响别的对象,也会被别的对象所影响,这些对...

2020-06-30 21:42:15 113

原创 二、18【设计模式】之迭代器模式

今天的博客主题 设计模式——》设计模式之迭代器模式命令模式 CP (Command Pattern)定义将一个请求封装成一个对象,使不同的请求把客户端参数化。命令模式是对命令的封装,每一个命令都对应了一个操作:请求方发出命令,接收方执行命令对应的操作。主要是解耦了请求方和接收方,请求方只需关心请求执行的命令,而不关心命令怎么被接收以被处理的。现在写出的代码都是请求者与实现者通常都是一种紧耦合的关系,这样更简单明了,但缺乏扩展性。不适合在某些场合使用(行为记...

2020-06-30 21:39:52 68

原创 二、17【设计模式】之迭代器模式

今天的博客主题 设计模式——》设计模式之迭代器模式迭代器模式 LP (Lterator Pattern)定义提供一种顺序访问集合/容器对象元素的方法,而无需暴露集合内部的表示。可以为不同的容器提供一致的遍历行为,不用关系其容器内容元素的组成结构。其本质是抽离集合对象迭代行为到迭代器中,提供一致的访问接口。应用场景1)访问一个集合对象的内容而无需暴露它的内部表示。2)为遍历不同的集合结构提供一个统一的访问接口。优点1)多态迭代,为不...

2020-06-29 23:21:19 121

原创 二、16【设计模式】之模板方法模式

今天的博客主题 设计模式——》设计模式之模板方法模式模板方法模式 TMP(Template Method Pattern)定义定义一个操作的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。模板方法实际上是封装了一个固定流程,该流程由几个步骤组成,每个步骤有不同的子类实现,从而让固定的流程产生不同得结果。很简单,就是类的继承机制,也是应用很广泛的一个模式。其本质就是抽象封装流程,进行具体实现。...

2020-06-29 23:18:22 91

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除