自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 多线程读取大文件工具

多线程读取大文件

2023-03-26 16:12:43 222

原创 istio简单认识

istio及其原理简单了解

2021-12-30 21:16:26 836

原创 java客户端实现SQL查询ES

java客户端实现SQL查询ES背景:ES 从6.3版本之后开始支持SQL 查询,通过kibana等客户端,可以像查询MySql一样, 查询ES的index,并且支持一次可以查询多个索引,但其原理还是将SQL转成DSl来查询,如下在kibana上面利用SQL查询ES// 通过该SQL查询POST _xpack/sql?format=txt{ "query":"select * from testIndex"}将该SQL转换成DSLPOST /_sql/translate { "que

2021-02-08 14:42:07 4172 3

原创 mysqlinsert数据之后获取该数据的自增ID

1、如何insert一个对象之后获取该记录的自增ID<insert id="insert" parameterType="com.xxx.xxx.domain.entity.AdaptTaskResult" useGeneratedKeys="true" keyProperty="id">useGeneratedKeys 是打开返回开关,keyProperty是返回的键的字段名称,刚刚我依旧通过如此配置,获得的一直是1, 后来查阅他人经验, 我记得之前可以通过配置获取,之后才发现如果插

2020-10-29 20:49:12 2656 1

原创 无法引入javax.validation包

在springBoot中利用@NotBlank注解做参数校验,但是在bean的属性无法打出这个注解,我最后检查该注解的路径是import javax.validation.constraints.NotBlank;发现我无法引入javax这个包,利用网上方法https://www.cnblogs.com/huaxingtianxia/p/7141848.html(详情)导入了javax这个包,但是依旧发现也不能找到validation这个子包继续, 网上找到解决方法 加入如下依赖<depend

2020-05-30 17:50:27 11692 5

原创 RockteMQ阿里云服务器部署以及遇到的问题

Centos 7.3RocketMQ 4.3.21.1、 第一步,去RocketMQ官网下载二进制的包,可以省去利用maven编译的麻烦。1.2、在阿里云的管理控制台 进行安全组的配置, 打开10911 和 9876 端口。1.3、 在服务器上使用unzip解压 jar包2、配置与启动namesrv因为我服务器时阿里云的学生服务器,内存较小,连namesrv都启动不起来,所以要调整...

2019-11-10 13:40:46 689 1

原创 win10摄像头由于驱动原因无法打开。

这段时间要准备面试,线上面试需要用到计算机摄像头,但是发现我的笔记本照相机无法打开,很疑惑。问题: 打开照相机后他会提示相机无法打开,报出错误码,0XA00F424F打开我的电脑设备管理器:(右键我的电脑,选择 “管理” ,打开设备管理器) 在最下面我找到了摄像机设备,发现其驱动(USB2.0 VGA UVC webCam)有个感叹号标志,先尝试能否更新这驱动,虽然可以更新,但是也无法解决这...

2019-08-13 19:05:24 17020 2

原创 数据库中的范式

数据库范式实体:类比为类属性:类比为类中的属性元组:表中的一行就是一个元祖,(相当于一个对象)分量:就像一个对象中某个属性的值数据库范式的作用取出进行数据库设计时字段、表、划分的 依据1.第一范式(1FN):**每一列保持原子特性,列是基本数据项。不能再进行拆分,如果不符合原子特性,需将此属性拆分例:学生表(学生ID、姓名、年龄、地址) 主键(学生id)—> 此表中地...

2019-06-19 01:17:01 1073 1

原创 Netty中如何保证异步串行无锁化

在外部线程调用EventLoop或者channel的一些方法的时候,都会调用InEventLoop()方法检查当前线程是否是NioEventloop中的线程,如如果是外部线程,就会将外部线程的的所有操作封装成为一个task,放进EventLoop的MPSCQ里面,然后在NioEventLoop执行过程的第三个部分,这些task会被依次执行样式以下从服务端bind()方法进入,进入dobind0(...

2019-06-14 11:10:15 1875

原创 Netty 中的缓冲区 ByteBuf结构和常用API

ByteBuf有两个指针,一个对应读操作一个对应写操作。当你向ByteBuf里写入数据的时候写指针的索引就会增加,同时读指针的索引没有变化。读指针索引和写指针索引分别代表了消息的开始和结束。所以ByteBuf不需要切换读写模式。本文主要知识点:1、ByteBuf的结构2、ByteBuf的常用方法3、ByteBuf的分类4、ByteBuf的创建创建和管理ByteBuf实例的多种方式:按需...

2019-06-14 01:29:29 1177 1

原创 Netty源码解读 - 服务端channel的创建和初始化:

1、服务端channel的创建和初始化流程bind() 服务端绑定端口号——> initAndRegister() 初始化并且注册———— > newChannel() 创建服务端Channel———— > init()初始化服务端channel从bind进入: ChannelFuture sync = bootstrap.bind(port).sy...

2019-06-14 01:09:03 254

原创 Netty源码分析 - Netty中如何解决select空轮询导致cpu使用率升至100%的bug

1、 BUG出现的原因:若Selector的轮询结果为空,也没有wakeup或新消息处理,则发生N多次空轮询,使得CPU使用率100%2、Netty中的解决思路:对Selector()方法中的阻塞定时 select(timeMIllinois)操作的 次数进行统计,每完成一次select操作进行一次计数,若在循环周期内 发生N次空轮询,如果N值大于BUG阈值(默认为512),就进行空轮询BU...

2019-06-14 00:50:05 3387 2

原创 Netty实例

客户端可以主动的给服务端发送消息,服务端收到消息之后将消息打印到控制台上,然后将消息返回复给客户端public class NettyClient { public static void main(String[] args) { EventLoopGroup worker = new NioEventLoopGroup(); Bootstrap bo...

2019-06-13 10:32:11 333

原创 关于方法区、永久代、常量池之间的关系

1、方法区是干嘛的?方法区(Mathod area)和堆一样,都是各个线程共享的,它用于储存虚拟机加载的:类信息+普通常量+静态常量+编译器编译后的代码等待,2、方法区在哪?JVM规定将方法区划归为堆的一个逻辑部分,可是他还有个别名“Non- Heap”,目的就是和堆分开。(可以理解为中国大陆和台湾之间的关系)3、方法区和永久代之间的关系?方法区就像是一个理论,一个接口,而永久代就是此...

2019-06-12 20:48:42 1147

原创 MyBatis初探

第一个mybatis程序总结一下大体步骤: 1、导包2、在数据库中创建表3、在ide中创建javabeen实体类,和数据库中的表对应4、配置mybatis的全局配置文件5、配置xml映射文件6、测试类7、遇到的问题我是用的是idea, 创建的maven项目1 需要在pom.xml中导入mysql的jar包和mybatis的jar包,,我也导入了junit的jar包,<...

2019-06-05 23:37:34 153

原创 解决搜狗输入法字符候选框不能在idea中跟随光标bug

终于解决这个问题了,能舒服好一大截。我的idea版本 是 2018 ,打开idea后, ctrl+ shift +a , 然后搜索 switch boot jdk,然后,选择你本地下载的jdk路径,确定,然后重启,问题解决。还有,如果你的idea是 64位的 但是你的jdk是32位的,会报错,所以你去下载一个64位的jdk ,重复操作就OK。...

2019-05-09 23:00:33 3314 5

转载 ConcurrentHashMap在jdk1.7和jdk1.8中的不同;

原博客:https://www.cnblogs.com/lujiango/p/7580558.htmlhttp://www.importnew.com/28263.htmlCouncurrentHashMap 线程安全一、CouncurrentHashMap<jdk1.7>1、底层:(1)底层数据结构:<jdk1.7>:数组(Segment) + 数组(H...

2019-04-26 10:33:46 45590 5

原创 操作线程常用的方法

1、多线程的基础方法探究start( ) 注意:不能重复使用成员方法: 启动此线程,自动调用run()方法返回值: voidrun( ) native 方法成员方法: 执行内容返回值; voidyield( ) native 方法静态方法: 使当前执行的线程暂停,让步于同优先级或更高的线程执行,暂停时间不一定。返回值 : voidsleep ( ) n...

2019-04-24 13:44:21 260

原创 线程创建的常用方式

1、创建线程的常用方式:注意: 线程之间是独立的,先后顺序由调度方法决定。自定义类继承Thread类自定义类实现Runnable接口自定义类实现Callable接口匿名内部类方式继承方式:1)java是单继承方式,继承Thread类之后不能继承其他类。2)从操作上来分析:继承方式更简单,可以直接使用父类方法3)继承方式不能多线程共享同一资源 (不能共享非静态资源) 。实现方式...

2019-04-24 13:42:34 194

原创 随机文件流RandomAccessFile

一:随机文件类(RandomAccessFile)描述:随机文件类是一种文件类型,旨在可以从文件的指定位置开始读取或者写入。1、构造函数RandomAccessFile(File file, String mode)创建一个随机访问文件流从File参数指定的文件中读取,并可选地写入文件。RandomAccessFile(String file, String mode)创建随机访问文件...

2019-04-24 13:35:02 657

原创 缓冲流

一、缓冲流作用: 加速数据读取和写入的速度原因: 因为缓冲流在用户空间开辟了指定大小缓存, 然后使用一次性的从内核空间中读取指定缓存大小的字节,然后使用read方法返回,减少了用户状态和内核状态之间的切换,所以减少了时间。字节缓冲流BufferedInputStream构造方法:BufferedInputStream(InputStream in)创建一个 BufferedInput...

2019-04-24 13:32:18 269

原创 对象输入输出流 ObjectInputStream、ObjectOutputStream

一、对象操作:ObjectInputStream构造方法:继承关系:继承于:OutputStream主要方法:Object readObject() 读取一个对象。 序列化操作的特有方法ObjectOutputStream构造方法:ObjectOutputStream(OutputStream out) 传入的是节点流的实例继承关系:继承于 InputStr...

2019-04-22 17:10:33 305

原创 字符流基类的探究

一、Writer基类描述:writer是一个字符流抽象基类,使用它的具体实现类来实现对于文本文件进行操作,继承关系:java.lang.Objectjava.io.Writerjava.io.OutputStreamWriterjava.io.FileWriter1、Writer的方法:Writer append(char c) // 追加指定字符Writer appen...

2019-04-22 17:06:55 641

原创 字节流基类的探究

字节流基类包括 inputStream 和 outputStream 两个基类。一、inputStream 的使用;inputStream是抽象基类,不能直接拿过来使用,必须使用它的具体实现类,比如FileInputStream、byteArrayStream等。 InputStream中的主要方法: 阻塞方法: read( ), int read():读取单个字节,返回此字...

2019-04-22 17:04:12 1961

原创 流的概述

1、流的定义: 数据的有序集合,能从一个地方传输到另一端的过程。2、流的本质: 数据传输3、流的划分:(1)按照方向:输入流: 从磁盘(存储介质)---------->当前程序(内存)的过程基类: InputStream 、 Reader输出流: 从当前程序(内存)---------->磁盘的过程(存储介质)基类: OutputStrem 、 Writer(2...

2019-04-22 16:57:50 829

原创 File文件类

ava.io包中知识铺垫相对路径:在当前路径下创建的路径绝对路径: 带盘符的完整路径1、构造函数File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例。File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。File(String parent, String child)...

2019-04-22 16:55:32 160

原创 比较器的使用

比较器:comparator 和comparable的使用;comparator 的使用:直接创建comparator对象,然后使用匿名内部类重写comapre方法;TreeSet<Integer> t = new TreeSet(new Comparator<Integer>() { @Override public int compare(Inte...

2019-04-22 16:52:56 257

原创 PriorityQueue

优先级队列: PriorityQueue1、特点:不能添加null元素可重复默认构建的是小顶堆2、应用场景:查找数据中前100大的数据;查找数据中前100小的数据;3、数据结构:object[ ]数组大根堆,小根堆4、底层源码分析:(1)继承关系:继承:AbstractQueue实现: java.io.Serializable(2)构造函数: int newCap...

2019-04-21 14:10:57 364

原创 hashSet初探

1、特点:存储的是单个值值不能重复、可有一个null、键有序(访问有序、插入有序)自动去重:底层调用的是HashMap,所以元素不能重复如果是自定义元素,必须重写hashcode方法和equals方法;2、数据结构:底层使用HashMap实现探究:HashSet的单个值如何存储到hashMap中去: 源码如下public boolean add(E e) { re...

2019-04-21 14:08:55 206

原创 TreeMap初探

1、特点:可以对键进行自然排序或指定排序 <<<<<<<<主要特点2、数据结构: 红黑树 基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(...

2019-04-21 14:07:13 176

原创 WeakHashMap初探

1、特点:随着时间的推移,其中的元素会被垃圾回收器回收2、涉及到的4中引用:强引用:(StrongReference) 就是指在程序代码之中普遍存在的,例如以下代码:Object object = new Object();String str = "hello";强引用关联的对象在内存不够时也不会被垃圾回收器回收,回收时间:当前对象为null时被回收;软引用:(SoftRefe...

2019-04-21 14:06:02 183

原创 LinkedHashMap

1、特点:(1)、键有序:可选插入有序或者访问有序 《《《《《主要特点:默认插入有序(2)、以键值对<k,v>的形式储存(3)、键不能重复,如果重复,新的值会覆盖旧的值;(4)、键可以为有一个为null,值可以多个为null;特定:键为null的元素放在数组0号位置;(5)、底层数组的容量为2的指数级2、数据结构:数组+链表 底层虽然使用的仍然是数组+链表。可是L...

2019-04-21 14:02:45 173

原创 hashtable初探

1、特点:(1)、线程安全 使用的是synchronized关键字,给hashTable对象加互斥锁;(2)、 以键值对<k,v>的形式储存(3)、键和值都不能为null;(4)、插入无序2、数据结构:数组+链表 3、底层源码分析:(1)继承关系:继承 Dictionary<K,V> , 实现了 Map<K,V>, Cloneable, ja...

2019-04-21 14:00:02 160

原创 hashmap初探

1、特点(1)、插入无序(2)、 以键值对<k,v>的形式储存(3)、键不能重复,如果重复,新的值会覆盖旧的值;如果是自定义元素,必须重写hashcode方法和equals方法(4)、键可以为有一个为null,值可以多个为null;特定:键为null的元素放在数组0号位置;(5)、底层数组的容量为2的指数级2、 数据结构:数组+链表核心就是使用了数组的存储方式,然后...

2019-04-21 13:55:03 150

原创 Iterator和LlistIterator迭代器的使用及底层原理:

1, Iterator:(1). 使用hasNext();返回一个boolearn值,判断有没有下一个next();返回游标当前的指向对象,并且将游标指向下一个对象remove();删除游标左面的元素,在next执行完之后该操作只能执行一次注意点:remove()使用之前必须要调用next()方法,而且remove()方法不能连续出现//使用while实现迭代集合Iterator&...

2019-04-19 22:29:42 694

原创 LinkedList

1、特点:重复性:数据可以重复null值:有有序性:保证数据插入有序;插入删除效率高、访问效率低2、底层源码研究:底层数据结构:双向链表构造函数:基本属性:头结点,尾节点,size 、内部节点类node;默认值: 无扩容方式: 链表式扩容增删改查方法: 删除节点时得判断此节点的位置(头部,中间,尾部)3、部分重点方法介绍:LinkedList(Collection &...

2019-04-19 22:25:56 206

原创 集合---ArrayList

一、目的:研究ArrayList的实现1.特点:重复性:数据可以重复null值:可以有null值存在有序性:保证数据插入有序;访问效率高、移动 删除效率低2. 研究源码问题:底层数据结构:数组构造函数:基本属性:Objtct数组默认值: 数组初始值为10扩容方式: 1.5倍扩容,相关方法:ensureCapacity();增删改查方法:remove();方法中利用Syst...

2019-04-19 22:24:58 92

原创 使用两个链表实现栈

用两个队列实现栈:入栈的思路:就是把即将放入的数据放到存有数据的哪个队列里面去;出栈的思路:就是先把有数据的那个队列中所有的数据依次出队,除过最后一个元素外其他元素放到另一个队列中去,然后把最后一个元素出队。(front+1)% 队列的长度==rear时表示队列中只有一个数据;//队列类class Queue { private int front; //对头 priv...

2018-12-10 15:52:11 598

原创 使用两个栈实现队列

入队思路:首先确定一个栈用于存放数据,直接将新的数据放到这个栈。出队思路:队列要求先入先出,所以将存有数据的栈除最先进入的数据外依次存到另一个栈里面去并出栈,剩余的哪个即是需要真正出栈的数据//栈类class SqStack { private int top; private int[] elem; private int usesize = 0; pu...

2018-12-10 15:51:58 111

原创 链式队列

同样有两个引用,第一个front引用指向队列第一个元素,rear引用指向最后一个引用class LinkQueue { //节点 class Entry { int data; Entry next; public Entry() { this.data = -1; this.next =...

2018-12-05 00:00:36 115

空空如也

空空如也

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

TA关注的人

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