自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

存在,即合理

记录点点滴滴,最终汇成山河大海

  • 博客(186)
  • 资源 (7)
  • 收藏
  • 关注

原创 类的加载器分类

是Java提供的一套用来被第三方实现或者扩展的API可以用来启用框架扩展和替换组件这些类加载器的工作原理是一样的,区别是它们的加载路径不同,也就是说 findClass 这个方法查找的路径不同。双亲委托机制是为了保证一个 Java 类在 JVM 中是唯一的,假如你不小心写了一个与 JRE 核心类同名的类,比如 Object类,双亲委托机制能保证加载的是 JRE 里的那个 Object类,而不是你写的 Object 类。

2024-06-22 19:47:36 324

原创 JVM-类的加载器

但不是所有类加载都遵守这个模型,有的时候,启动类加载器所加载的类型,是可能要加载用户代码的,比如jdk内部的serviceprovider/serviceloader机制,用户可以在标准api框架上,提供自己的实现,jdk也需要提供些默认的参考实现。不直接在代码中调用ClassLoader的方法加载class对象,而是通过虚拟机自动加载到内存中,如在加载某个类的class文件时,该类的class文件中引用了另外类的对象,此时额外引用的类将通过JVM自动加载到内存中。

2024-06-16 22:33:41 830

原创 jvm 类的加载过程

类在JVM内存中的一个快照,JVM将从字节码文件中解析出的常量池、类字段、类方法等信息存储到类中,这样JVM在运行期便能通过类模板而获取类中的任意信息,能够对类的成员变量进行遍历,也能进行方法的调用。反射的机制即基于这一基础。如果JVM没有将类的声明信息存储起来,则JVM在运行期也无法反射类模型的位置:存储在方法区(1.8之前:永久代:1.8及之后:元空间)为类的静态变量赋予正确的初始值类的初始化是类装载的最后一个阶段。如果前面的步骤都没有问题,那么表示类可以顺利装载到系统中。

2024-06-16 22:31:16 755

原创 多线程-ThreadLocal

ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。ThreadLocal实例通常是类中的私有静态字段,使用它的目的是希望将状态(例如,用户ID或事务ID)与线程关联起来。

2024-06-15 20:17:46 941

原创 多线程-异常

线程不允许抛出未捕获的checked exception也就是说各个线程需要自己把自己的checked exception处理掉JVM的这种设计源自于这样一种理念:“线程是独立执行的代码片断,线程的问题应该由线程自己来解决,而不要委托到外部。”基于这样的设计理念,在Java中,线程方法的异常(无论是checked还是unchecked exception),都应该在线程代码边界之内(run方法内)进行try catch并处理掉。换句话说, 我们不能捕获从线程中逃逸的异常。

2024-06-15 18:01:19 813

原创 多线程-中断

所以, interrupt() 并不能真正的中断线程,需要被调用的 线程自己进行配合才行。中断只是一种协作机制,Java没有给中断增加任何语法,中断的过程完全需要自己实现。实例方法interrupt()仅仅是设置线程的中断状态为true,不会停止线程。在需要中断的线程中不断监听中断状态,一旦发生中断,就执行相应的中断处理业务逻辑。实例方法,判断当前线程是否被中断(通过检查中断标志位) 默认false。一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。将当前线程的中断状态设为false。

2024-06-13 20:14:56 784

原创 java-框架-日志常见的问题

一般互联网公司都会使用 ELK 三件套来统一收集日志,有一次我们发现 Kibana 上展示的日志有部分重复,一直怀疑是 Logstash 配置错误,但最后发现还是 Logback 的配置错误引起的。掌握了把日志输出到文件中的方法后,我们接下来面临的问题是,如何避免日志记录成为应用的性能瓶颈。这可以帮助我们解决,磁盘(比如机械磁盘)IO 性能较差、日志量又很大的情况下,如何记录日志的问题。CONSOLE 这个 Appender 同时挂载到了两个Logger 上,一个是我们定义的,一个是由于我们定义的继承自,

2024-06-11 23:02:49 325

原创 java框架-log4j2

那也就是动态化服务应用名,如上面Property配置有个SERVER_NAME常量,我这里取自System变量,以此作为服务名。下面的appender使用${SERVER_NAME} 相当于获取了动态服务名。例如,order(订单系统),goods(商品系统)在同一台服务器上部署,我们希望的日志路径和命名方式是。可以根据实际的项目需求来选择,也可以自定义属于自己的lookup。log4j2提供了多个Lookups来满足类似的功能,

2024-06-11 22:14:07 841

原创 java-框架logback

Logback Manual默认引入了 logback框架配置模板文件位置logback-spring.xmllogback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot的高级Profile功能如果使用logback.xml作为日志配置文件,还要使用profile功能,会有以下错误no applicable action for [springProfile]Chapter 3: Co

2024-06-11 18:46:27 710

原创 数据结构-skiplist跳跃表

假设索引有h级,最高的索引有2个结点;n(2h)=2,从这个公式我们可以求得h=log2(N)-1;首先每一级索引我们提升了2倍的跨度,那就是减少了2倍的步数,所以是n/2、nl4、n/8以此类推;链表遍历的时候,时间复杂度最差会出现O(N),我们优化一下,尝试空间换时间,给链表加个索引,称为“索引升级”,两两取首即可。或者所以是每3个结点有一个索引结点,每层索引的结点数:n/3,n/9,n/27…如果索引是每2个结点有一个索引结点,每层索引的结点数:n/2,n4,n/8.…首先原始链表长度为n。

2024-06-10 20:20:30 329

原创 JVM-垃圾回收器-ZGC

阿里(借鉴ZGC优化自己JVM)美团(规则平台等)58(Hbase平台)腾讯(在线交互、竟价广告、量化交易等)华为(毕昇JDK、大数据项目)

2024-06-10 19:22:09 1237

原创 java-stream应用-树形结构-NIO

【代码】java-stream应用-树形结构-NIO。

2024-06-09 20:04:56 123

原创 java-基础-optional

optional对象是一种包装器对象,要么包装了类型T的对象,要么没有包装任何对象。对于第一种情况,我们称这种值是存在的。0ptional类型被当作一种更安全的方式,用来替代类型T的引用,这种引用要么引用某个对象,要么为 null。

2024-06-09 17:43:43 612

原创 java-基础并行流

parallel方法可以将任意的顺序流转换为并行流只要在终结方法执行时流处于并行模式,所有的中间流操作就都将被并行化。当流操作并行运行时,其目标是让其返回结果与顺序执行时返回的结果相同。重要的是,这些操作是无状态的,并且可以以任意顺序执行。

2024-06-09 17:30:38 640

原创 java基础-stream-终止操作

终端操作会从流的流水线生成结果。其结果可以是任何不是流的值,流进行了终止操作后,不能再次使用。

2024-06-09 16:39:26 703

原创 java基础Stream流中间操作中间操作

super T> predicate) 9:产生一个流,它的元素是当前流中排除不满足谓词条件的元素之外的所有元素。extends T>b):产生一个流,它的元素是a的元素后面跟着b的元素。super T> predicate)9 :产生一个流,它的元素是当前流中所有满足谓词条件的元素。接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的DoubleStream。接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。distinct():筛选,通过流所生成元素的。

2024-06-09 16:27:28 866

原创 maven-目录

002mavenSettings配置 (流水线 拉取私库,包存在,编译不存在。。。。)_maven setting 快速-CSDN博客 002 手动引入jar 到maven库-CSDN博客 004依赖-CSDN博客 004 maven 插件默认的_maven-install-plugin会默认下载-CSDN博客 005 maven 插件-tomcat_maventomcat插件-CSDN博客 008Maven插件-maven-resources-plugin_maven plugin指定资源路径-

2024-06-09 16:23:03 106

原创 运维-目录

Devops常见专业术语及书籍推荐_devops介绍书籍哪本比较好-CSDN博客Jenkins安装Jenkins-CSDN博客docker001docker架构介绍-CSDN博客 002docker 安装-CSDN博客 003可视化界面-CSDN博客 004docke命令概述-CSDN博客 005docker基础命令-CSDN博客 006docker镜像使用-CSDN博客 007docker仓库-CSDN博客 011Dockerfile-CSDN博客

2024-06-09 16:18:44 174

原创 网络-目录

网络常见的资源推荐-CSDN博客 网络基础概念-网络模型_001,socket-CSDN博客TCPTCP/IP的历史-CSDN博客 TCP基础介绍-CSDN博客 UDP 和 TCP 有什么区别呢?-CSDN博客 TCP 头格式-CSDN博客 TCP 的最大连接数及配置_tcp最大连接数配置-CSDN博客抓包Wireshark-CSDN博客 网络抓包-tcpdump-CSDN博客

2024-06-09 16:10:13 205 2

原创 数据库目录

mysqlmysql常用资源推荐-CSDN博客 mysql基础-事务MVCC-CSDN博客

2024-06-09 15:45:02 105 1

原创 java框架-目录

springbootspringBootMaven父工程pom文件_maven父工程打包pom-CSDN博客 SpringBoot起步依赖-CSDN博客 Spring-boot-配置文件-CSDN博客 SpringBoot读取配置@ConfigurationProperties @ImportResource_spring获取configurationproperties的配置-CSDN博客 SpringBoot注解-注入对象_springboot注入数据源对象-CSDN博客 springBo

2024-06-09 15:41:43 369

原创 java基础目录

基础java环境的安装-CSDN博客 JAVA生态_jdk源码谁编写的-CSDN博客 java基础-switch-用法-CSDN博客 java集合-双列集合-CSDN博客 JAVA基础-异常_java异常和错误有什么区别-CSDN博客 java-基础-正确处理异常-CSDN博客 java基础-枚举-CSDN博客 JAVA基础-反射-CSDN博客 java反射 手写Aop_java aop 反射-CSDN博客lamdba-Steamjava基础-lamdba-语法-CSDN博客 j

2024-06-09 15:08:40 224 1

原创 java基础-Steram流的介绍-创建-类型

1. 集合讲的是数据,Stream流讲的是计算。

2024-06-09 10:22:11 138 1

原创 java基础-Comparator

【代码】java基础-Comparator。

2024-06-09 09:42:19 180

原创 java基础-函数式(Functional)接口

只包含一个抽象方法的接口,称为函数式接口。

2024-06-09 09:38:36 278

原创 java基础-枚举

每一个枚举类型及其定义的枚举变量在JVM中都是唯一的。

2024-06-09 00:15:09 445 1

原创 java基础-lamdba-语法

并且第二个参数是需要引用方法的第二个参数(或无参数)时:ClassName::methodName。只有当lambda表达式的体只调用一个方法而不做其他操作的时候,才能把lambda重新为方法引用。要求函数式接口中的抽象方法的形参列表与具体的构造器的形参列表一致。要求函数式接口中的抽象方法的返回值类型即为构造器所在类的类型。当需要引用方法的第一个参数是调用者(隐式参数)向方法传递参数的lambda表达式。格式:类型[] :: new。所有的参数都传递到静态方法。

2024-06-08 23:06:33 259

原创 java-基础-正确处理异常

1. 以 execute 方法提交到线程池的异步任务,最好在任务内部做好异常处理;.get()static {通过线程池 ExecutorService 的 execute 方法提交任务到线程池处理,如果出现异常会导致线程退出,控制台输出中可以看到异常信息。那么,把 execute 方法改为 submit,线程还会退出吗,异常还能被处理程序捕获到吗?

2024-06-08 22:07:09 1222 1

原创 spring-validation

String message() default " 密码不正确";Class<?Class<?@Override@Override// 长度规则:8 - 30 位// 至少有一个大写字母// 至少有一个小写字母// 至少有一个数字// 至少有一个特殊字符// 不允许连续 3 个字母,按字母表顺序// 不允许 3 个连续数字// 不允许 QWERTY 键盘上的三个连续相邻的按键所代表的字符// 不允许包含空格。

2024-06-06 00:04:37 889

原创 springBoot注解@Configuration,Profile等

*** @param metadataReader 读取到的当前正在扫描的类的信息* @param metadataReaderFactory 可以获取到其他任何类信息的*/@Override//获取当前类注解的信息//获取当前正在扫描的类的类信息//获取当前类资源(类的路径)

2024-06-05 22:15:29 818

原创 SpringBoot-日期格式化

在需要进行日期格式转换的Date属性上添加注解@DateTimeFormat(pattern = "需要转换的格式")springboot应用中,@RestController注解的json默认序列化中,日期格式默认为:2020-12-03T15:12:26.000+00:00 类型的显示。

2024-06-05 21:09:41 139

原创 springBoot容器中注册组件

同一个HTTP Session 共享一个Bean,不同Session使用不同Bean,仅适用于WebApplicationContext环境。@Component注解并没有通过 cglib 来代理@Bean 方法的调用,因此像下面这样配置时,就是两个不同的country。HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境。用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration 注解。默认情况下它调用的是类中的无参构造函数。

2024-06-05 20:57:09 857

原创 java-框架-lombok

如果觉得@Data太过残暴(因为@Data集合了@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor的所有特性)不够精细,可以使用@Getter/@Setter注解,此注解在属性上,可以为相应的属性自动生成Getter/Setter方法.如果一个类仅仅只需要一个无参的构造函数,那么完全没有必要使用@NoArgsConstructor注解,因为Java会在编译时,为没有构造函数的类自动生成一个无参的构造函数。

2024-06-04 22:44:37 1066

原创 java-框架-单元测试

我们都知道,junit 单元测试的原理,但显然,junit 是无法实现的,因为它自己都无法知晓我们是否使用了 spring 框架,更不用说帮我们创建 spring 容器了。Junit Platform: Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。第二:测试类只是我们在测试功能时使用,而在项目中它并不参与程序逻辑,也不会解决需求上的问题,所以创建完了,并没有使用。答案是肯定的,没问题,可以使用。被注解的方法将在当前类中的每个。

2024-06-04 22:35:04 437

原创 java框架-日志-体系与级别-技巧

ALL 最低等级的,用于打开所有日志记录。TRACE 很低的日志级别,一般不会使用。DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息。INFO 消息在粗粒度级别上突出强调应用程序的运行过程。这个可以用于生产环境中输出程序运行的一些重要信息。WARN 表明会出现潜在错误的情形,有些信息不是错误信息,但是也要给开发者的一些提示。ERROR 指出发生错误的信息,可能会导致系统出错或是宕机等,必须要避免。

2024-06-03 19:01:19 305

原创 java框架-日志-历史

2001年,一个叫Ceki Gülcü的大佬搞了一个日志库log4j,后来Log4j成为Apache项目,Ceki也加入Apache组织Apache还曾经建议Sun引入Log4j到Java的标准库中,但Sun拒绝了Apache 的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;用户也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,用户能够更加细致地控制日志的生成过程。

2024-06-03 13:18:47 889 1

原创 java原生的接口调用- java11-URL与URI

统一资源定位符(Uniform Resource Locator,URL)统一资源标识符(Uniform Resource Identifier,URI)URI类并不包含任何用于访问资源的方法,它的唯一作用就是解析。但是,URL 类可以打开一个连接到资源的流。因此,URL类只能作用于那些 Java类库知道该如何处理的模式,例如 http∶、https∶、ftp∶、本地文件系统(file∶)和JAR文件(jar∶)。URI类的作用之一是解析标识符并将它分解成各种不同的组成部分。

2024-06-03 00:00:34 152

原创 web-客户端调用RestTemplate

Spring提供的⽤于访问Rest服务的客户端,底层通过使⽤java.net 包下的实现创建HTTP 请求 通过使⽤ClientHttpRequestFactory指定不同的HTTP请求⽅式,主要提供了两种实现⽅式。

2024-06-02 23:43:35 169

原创 java基础-switch-用法

以前如果 switch 表达式为空,会抛出空指针异常。

2024-06-02 18:41:32 317

原创 java环境的安装

tar-zxvf-CvimexportJAVA_HOMEexportJRE_HOME/jreexportCLASSPATH.:/lib:/libexportPATH/bin:$PATHln-sjava-yexportJAVA_HOMEexportJRE_HOME$JAVA_HOME/jreexportCLASSPATH$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexportPATH。

2024-06-02 00:16:22 331

网络学习的积累存在合理

网络学习的积累存在合理

2024-05-19

SpringMvc 执行流程

SpringMvc 执行流程

2023-06-18

009 maven插件spring-boot-maven-plugin

009 maven插件spring-boot-maven-plugin

2023-06-17

001线程状态图示原图

001线程状态图示原图

2023-06-10

java8的新特性.doc

自己整理的java8新特性及demo 1. Lambda表达式 1 2. 方法的引用 6 3. 构造器引用 7 4. 函数式(Functional)接口 7 5. 四大函数式接口 8 6. Stream 11 7. Map接口的新方法: 19 8. 并行流与串行流 20 9. Optional容器类 23 10. 接口中默认的方法和静态方法 26 11. 日期 26

2020-01-09

easyUI全部手册

jQuery EasyUI 1.5 版 API 中文版.exe jqueryeasyui-demo.chm EasyUI-API+1.3.2.chm EasyUI+tutorial.chm

2019-03-02

数据库连接工具

数据库连接工具,可以连接多种数据库 界面美观 免费使用

2019-02-28

thinkingjava中文版

java圣经thinkingjava 值得拥有 中文高清版

2019-02-28

postmanwin64

postman接口测试工具 window64 位,测试resful 接口的的

2019-02-28

mysql安装图解 安装版

mysql安装图解版 .msi版,window版你值得拥有

2019-02-28

mysql调优与性能设计

mysql性能调优,架构设计 300多页 高清版.值得拥有啊啊

2019-02-28

空空如也

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

TA关注的人

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