自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 线程的六种状态

RUNNABLE对应操作系统的Running和Ready两种状态,分别表示正在运行和等待分配CPU资源。超时等待状态,线程等待一个时间的流逝,经过这段时间后,该线程由系统唤醒,也可以提前唤醒。方法(其实Thread.join()方法就是调用了Object.wait()方法)、代码块但未获得对应的锁,线程进入BLOCKED阻塞状态。等待状态,一般用于等待其他线程执行特定的操作。方法后,该线程进入RUNNABLE状态。创建一个线程,并且没有调用该线程的。方法,此时该线程处于NEW状态。线程调用了没有参数的。

2022-09-28 16:54:44 227 1

原创 MySQL深分页

我们也可以自己实现接口来自定义分区器通过配置来配置自定义的分区器。

2022-09-01 15:02:53 452

原创 【kafka】分区器

我们也可以自己实现接口来自定义分区器通过配置来配置自定义的分区器。

2022-08-15 17:05:12 572

原创 【kafka】序列化器与反序列化器

如果kafka自带的序列化器不能满足我们的需求,则我们可以实现接口来自定义序列化器,下面是一个自定义类序列化器的例子:假设我们要发送的是User}我们可以自定义} }我们自定义把User对象转换为JSON字符串,然后把JSON字符串转换为字节数组返回要使用自定义的序列化器,配置即可。...

2022-08-12 16:52:43 2535

原创 【kafka】生产者拦截器和消费者拦截器

拦截器(Interceptor)是在kafka 0.10.0.0引入的,主要用来实现client端的一些定制化控制逻辑。

2022-08-10 17:15:53 856

原创 【kafka】消费者位移提交

消费者位移:Consumer Offset ,表示消费者消费到的位置消息位移:Offset , 表示消息在分区中的位置。

2022-08-09 17:06:16 314

原创 kafka消息的生产和消费(java)

KafkaProducer还提供了一个带超时时间的重载方法,如果使用这个重载方法,则只会等待指定的超时时间,如果超过了这个时间,即使还有消息未发送完成,也会强行退出。kafka消费消息是一个不断轮询的过程,在上面的代码中可以看出,消费者消费消息就是重复的调用。就是发后即忘,他只管发送消息,至于有没有发送成功不关心,这就有消息丢失的可能。有四个重载方法,可以以集合的方式或者正则表达式的方式来订阅主题。方法返回的则是所订阅的主题(分区)上的一组消息。不会只发送单条消息。在发送完所有的消息后,调用。...

2022-08-08 17:07:49 2453

原创 【kafka】基本名词解释

消息的主题,每个broker上可以创建多个topic,一个topic可以横跨多个broker,kafka中的消息以topic进行分类,发送到kafka的每一个消息都要指定一个topic,消费者则负责订阅topic并消费。:偏移量,消息在被追加到分区的log文件的时候都会分配一个偏移量offset,这是消息在分区内的唯一表示,他可以保证消息在分区内是有序的,但他不是跨分区的(也就是说kafka可以保证分区有序而不是主题有序)在kafka的设计中,一个分区的数据只能被同一个消费者组的一个消费者消费。...

2022-08-04 17:16:47 177

原创 下载安装kafka

log.dirs=/Tools/kafka_2.13-2.4.1/logs //日志位置,该文件夹必须存在,否则启动时会报错。zookeeper.connect=localhost:2181 //zookeeper的连接地址,多个地址用逗号分隔。broker.id=0 //如果是单机安装则不用修改,如果是集群安装则要保证每个broker.id配置不同的值。启动kafka前要先启动zookeeper。然后再打开一个终端启动kafka。.........

2022-08-03 16:23:04 296

原创 SpringBoot统一返回值和统一异常处理

自定义异常类,继承。为方便使用可以使用枚举类列举出常见的异常情况,这里直接使用了上面的枚举类。}}

2022-07-29 14:28:38 843

原创 Spring BeanDefinition详解

是最终全能实现类的基类,也是这些类的公同属性和公共逻辑的实现//默认的SCOPE,默认是单例publicstaticfinalStringSCOPE_DEFAULT="";//不进行自动装配publicstaticfinalintAUTOWIRE_NO=AutowireCapableBeanFactory.AUTOWIRE_NO;继承自AbstractBeanDefinition的全功能BeanDefinition实现类有httpshttpshttps。...

2022-07-27 16:17:33 1668

原创 Spring循环依赖

在Spring中,两个或多个Bean互相持有对方,最终反映为一个环,就构成了循环依赖。}

2022-07-21 16:16:12 116

原创 ThreadLocal详解

从ThreadLocal这个类名可以理解为,ThreadLocal表示线程的“本地变量”。即每个线程都拥有该变量副本,达到人手一份的效果,各用各的,这样就可以避免共享资源的竞争。

2022-07-19 16:12:26 142

原创 Java中的强引用、软引用、弱引用、虚引用

和,无论使用哪种方法,都和“”有关系。在JDK1.2版本之前,一个对象只有“被引用”和“未被引用”两种状态,在JDK1.2版本之后,Java对引用的概念进行了扩充,将引用分为强引用(StronglyReference)、软引用(SoftReference)、弱引用(WeakReference)、和虚引用(PhantomReference)...

2022-07-15 15:13:10 279

原创 Java中的深拷贝与浅拷贝

浅拷贝:对基本类型数据进行值传递,对引用类型数据进行引用传递的拷贝深拷贝:对基本类型数据进行值传递,对引用类型数据创建一个新的对象,并复制其内容在Java中,所有的对象都继承自,在类中提供了一个方法来供我们对Java对象进行拷贝:这个方法是的,所以不需要我们来实现。不过需要注意的是,这个方法还是的,这意味着方法只在包或其子类可见。方法还抛出了一个异常,通过源码注释可以知道,当调用了方法的对象类没有实现接口,或者无法克隆对象的时候,会抛出该异常,也就是说,如果要成功的调用接口,首先该类要实现接口。Clon

2022-07-13 16:37:55 6201

原创 Spring事务失效的场景

使用Spring事务的前提是:对象要被Spring管理,事务方法所在的类要被加载为bean对象如果事务方法所在的类没有被加载为一个bean,那么事务自然就失效了,示例:2)数据库引擎不支持事务以MySQL为例,引擎是支持事务的,而像、等是不支持事务的。从MySQL5.5.5开始默认的存储引擎是,之前默认都是。所以在开发过程中发现事务失效,不一定是Spring的锅,最好确认一下数据库表是否支持事务。众所周知,java的访问权限修饰符有:、、、四种,但是注解只能作用于修饰的方法上,在类(Spring通过这个

2022-07-11 17:22:31 129

原创 Spring事务介绍

一个数据库事务是一个被视为一个工作单元的逻辑上的一组操作,这些操作要么全部执行,要么全部不执行。需要注意的是,并不是所有的数据库(引擎)都支持事务,比如说MySQL的MyISAM存储引擎原子性:事务是一个原子性操作,一个事务由一系列操作组成,这一系列操作要么全部执行完成,要么全部不执行一致性:一个事务执行完成(不管成功还是失败),数据库的完整性不能被破坏(唯一约束,外键约束等)隔离性:数据库允许多个并发事务同时对数据进行读写操作,隔离性可以防止这些操作同时执行时导致的数据不一致的问题。事务分为不同的隔离级别

2022-07-10 11:26:28 338

原创 Java、Spring定时任务的实现

Jdk自带的库中,有两种方式可以实现定时任务,一种是,另一种是。创建一个就创建了一个线程,可以用来调度任务有四个构造方法,可以指定线程的名字以及是否设置为为守护线程。默认名字,默认不是守护线程。主要有三个比较重要的方法::终止任务调度,取消当前调度的所有任务,正在运行的任务不受影响:从任务队列中移除所有已经取消的任务:开始调度任务,提供了几个重载方法:延时执行,表示毫秒后执行一次任务示例:弊端:Timer是单线程的,并且不会抛出异常,一旦定时任务抛出异常,将会导致整个线程停止,即定时任务停止。因为的

2022-07-07 17:22:59 503

原创 SpringBoot自动装配原理分析和手写一个starter

相对于传统意义上的Spring项目,SpringBoot具有开箱即用,简化配置,内置Tomcat等等等等一系列的特点。在这些特点中,最重要的两条就是约定优于配置和自动装配SpringBoot的预定优于配置主要体现在以下几个方面:maven的目录结构:配置文件默认为或或默认通过 spring.profiles.active 属性来决定运行环境时的配置文件。相对于传统的Spring项目的繁琐配置,SpringBoot项目只需要使用一个注解就可以成功运行,哪有什么岁月静好,只不过是有人在替我们负重前行。让我们来看

2022-07-06 16:42:39 289

原创 java动态代理

"代理"这个词相信大家并不陌生,简单来说就是代替厂家来售卖商品,代理替代厂家售卖商品,顾客找代理购买商品。也就是说:1)顾客和厂家之间是不可见的,顾客不知道背后的厂家是谁。2)代理可以对顾客进行“定位”,更精确的售卖给需要的客户群体。代理模式:为其他对象提供一种代理以控制对这个对象的访问,也就是创建一个代理对象作为客户端和目标对象之间的中介,主要目的就是保护目标对象或增强目标对象通过使用代理模式,通常有以下两个优点:\1) 可以隐藏被代理类的实现\2) 可以实现客户与被代理类间的解耦,在不修改被代理类代码的

2022-07-04 16:19:45 2330

原创 ArrayList源码分析(JDK8)

ArrayList是基于数组实现的集合类正是基于数组的数据结构的原因,ArrayList具有增删慢,查询快的特点:ArrayList允许空值和重复元素,当ArrayLIst中的元素数量大于底层允许数量的时候,ArrayList会通过扩容机制生成一个更大的数组ArrayList是非线程安全的RandomAccess 是一个标记接口,标识实现该接口的类支持快速随机访问。实现了RandomAccess后,使用for循环比使用迭代器遍历ArrayList效率更高,也就是代码片段一比代码片段二更快标记接口Clon

2022-07-03 15:46:18 219

原创 MySQL什么情况下会导致索引失效?

首先了解一下索引的存储结构,知道了索引的存储结构,才方便我们更好地理解索引失效的问题。索引的存储结构跟MySQL的存储引擎有关,存储引擎的不同采用的结构也会不同。MySQL默认的存储引擎InnoDB采用B+Tree作为索引的数据结构,在创建表时,InnoDB会默认创建一个主键索引,这是一个聚簇索引,其他索引都属于二级索引。MyISAM存储引擎在创建表时,默认是用的是B+树索引。虽然和InnoDB一样都支持B+树索引,但是他们存储数据的方式不同;InnoDB是聚簇索引(B+树索引的叶子结点保存数据本身)MyI

2022-06-30 13:45:00 3039 1

原创 HashMap源码分析(JDK 1.8)

存储结构在jdk1.8 中HashMap由数组+链表+红黑树构成,新增加了红黑树作为底层数据结构数组transient Node<K,V>[] table;链表Node<K,V>是HashMap的一个内部类,是一个单向链表 static class Node<K,V> implements Map.Entry<K,V> { final int hash; final K key; V val

2022-03-31 09:31:50 320

原创 使用itext为PDF添加批注文字

maven依赖<dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version></dependency><dependency> <groupId>com.itextpdf</groupId>

2021-11-01 09:39:02 1332 1

原创 EL表达式与 JSTL标签简单使用

EL表达式概述:El表达式可以嵌入在jsp页面内部,计算和输出存储在标志位置的java对象的值EL表达式访问四大作用域中的内容格式:${expression}如:${name},表示在pageContext,HttpServletRequest,HttpSession,HttpServletContent中依次查找名字为name的属性,如果找到,则调用他的toString()方法并返回调用的结果,如果没有则返回空字符串(不是null)如果在pageContext,HttpServletRequ

2020-09-27 19:35:32 395

原创 多线程死锁的产生以及如何避免死锁

当两个线程互相等待对方释放资源的时候,就会发生死锁,一旦产生死锁,程序不会发生任何异常,也不会给出提示,所有的线程都处于阻塞状态,无法继续A线程持有a锁,等待获取b锁,同时B线程持有b锁,等待获取a锁产生死锁的必须满足四个条件互斥条件:一个资源每次只能被以一个进程使用,若有其他进程请求该资源,则请求只能等待请求与保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已经被其他线程所占有,此时请求进程被阻塞,但自己已获得的资源保持不放不可剥夺条件:进程所获得的资源在未使用完毕之前,不

2020-09-24 20:36:56 518

原创 事务

事务什么是事务?​ 事务是应用程序中一系列严密的操作,所有的操作必须成功完成,否则在每个操作的所有更改都会被撤销,也就是说事务具有原子性,一个事务的一系列操作要么全部成功,要么一个都不做。事务的四大特性:​ 一般来说,事务必须满足四个条件:原子性,一致性,隔离性,持久性原子性:​ 指事务包含的所有操作要么全部完成,要么全部不完成,不会结束在中间某个环节,事务在执行过程中发生错误会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。一致性:​ 在事务开始

2020-09-17 20:14:49 116

原创 java反射简单理解使用

Java反射机制是在运行状态中(和编译无关),对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。获取反射的三种方法使用.class 方法,根据类名获得使用对象.getClass() 方法,根据对象获得使用Class.forName() 静态方法,根据类的全路径名获得public class Test_01 { public static void main(St

2020-09-04 17:31:41 118

原创 Java网络编程文件上传简单案例及优化

流程简单分析【客户端】输入流,从硬盘读取文件数据到程序中。【客户端】输出流,写出文件数据到服务端。【服务端】输入流,读取文件数据到服务端程序。【服务端】输出流,写出文件数据到服务器硬盘中。客户端实现public class C_Test_02 { public static void main(String[] args) { try { Socket socket = new Socket(InetAddress.getLocalHost(

2020-09-01 20:07:43 184

原创 java网络编程简单理解

网络编程软件结构C/S结构:全称为Client/Server结构,是指客户端和服务器结构**B/S结构:**全称为Browser/Server结构,是指浏览器和服务器结构协议分类通信协议是比较复杂的,java.net包中包含的类和接口,他们提供底层次的通信细节,我可以直接使用这些类和接口来专注于网络程序的开发,而不用考虑通信细节。java.net包中提供了两种常见的网络协议的支持:**UDP:**用户数据报协议(User Datagram Protocol)。UDP是无连接通信协议,即在数据传

2020-09-01 16:48:28 265

原创 File类

File类java.io.file类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作构造方法public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。String pathname = "D:\\aaa\\aaa.txt";File file1 = new File(pathname);public File(String parent, String child) :从父路径名字符串和子路径名

2020-08-27 15:54:07 114

原创 java多线程生产者消费者案例、虚假唤醒问题

package com.producersAndConsumers;public class Test { public static void main(String[] args) { SalesPerson salesPerson = new SalesPerson(); Product product = new Product(salesPerson); Consumer consumer = new Consumer(salesPers

2020-08-26 17:00:16 196

原创 Lambda表达式简单理解

Lambda表达式Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。Lambda表达式省去面向对象的条条框框,格式有3个部分组成:参数、箭头、代码(参数类型 参数名称)->{ 代码语句 }小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。`->`是新引入的语法格式,代表指向动作。大括号内的语法与传统方

2020-08-26 16:37:45 505

原创 ArrayList数组扩容

ArrayList的默认的无参构造方法为:private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}DEFAULTCAPACITY_EMPTY_ELEMENTDATA是一个空数组,所以ArrayList默认创建一个初始长度为0的空数组。调用add()方法向A

2020-08-20 20:05:43 405

原创 Integer内部缓存

Integer内部缓存在Java中,每次创建对象都要进行内存分配操作,为了减少频繁地创建对象,许多地方采用池来存放对象,如String中的字符串池,对于基本类型,对应的包装类中皆有缓存来避免频繁创建对象,如Integer。Integer中的IntegerCache静态内部类:private static class IntegerCache { static final int low = -128; static final int high; static final In

2020-08-19 17:37:51 294

原创 java final关键字

final关键字用于修饰不可改变的内容,可以用于修饰类、方法、变量(包括成员变量和局部变量)被final修饰的类,不能被继承public final class Test {} // 修饰类被final修饰的方法,不能被重写public final void aa(){} // 修饰方法被final修饰的变量,不能被重新赋值public final int num=0;// 修饰变量**局部变量——引用类型:**引用类型的局部变量被final修饰后,只能指向一个对象,地址不能改变。但是

2020-08-18 19:23:51 78

原创 java内部类的简单理解

内部类在Java中可以将一个类定义在另一类或方法里面,这样的类称为内部类。广泛意义上内部类一般包括四种:成员内部类、局部内部类、匿名内部类、静态内部类// 外部类outerpublic class Outer{ // 内部类Inner class Inner{ }}1. 成员内部类成员内部类是最普通的内部类,也称作普通内部类成员内部类当成Outer的成员信息存在可以是任何的访问修饰符内部类的内部不能有静态信息内部类也是类,该继承继承,该重写重写,该重载重载,

2020-08-18 19:23:06 147

原创 HTML点击链接打开新的标签页

1.为<a>标签添加target="_blank"属性<a href="#" target="_blank">demo15</a>2.使用base标签(为页面所有a设置打开新的标签页)<head> <base target="_blank"></head>3.使用JS方法<script type="text/javascript"> $("a").attr("target","_blank");&l

2020-07-04 21:16:08 4853 3

原创 SpringMVC中文显示???

@PostMapping(value = "/userRegister.action",produces = "text/html; charset=utf-8")

2020-06-25 10:58:45 377

原创 输入框添加红色*表示必填项

<span style="color:red">*</span>

2020-06-25 10:57:29 4470

网络连接消失修复工具.CMD

reg add "HKLM\SYSTEM\CurrentControlSet\Services\EventLog" ServiceDll /t REG_EXPAND_SZ /d "%SystemRoot%\System32\wevtsvc.dll" /f

2020-06-02

60配列键盘外壳全高图纸.dwg

60配列键盘外壳全高图纸

2020-05-24

]蓝桥杯java历年真题及答案整理(共129道题目及答案).doc

]蓝桥杯java历年真题及答案整理(共129道题目及答案).doc

2019-03-25

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

TA关注的人

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