- 博客(71)
- 资源 (1)
- 收藏
- 关注
原创 递归实现树结构 动态控制展开层级
最近页面加载树结构特别卡顿。最后用异步加载节点的方式提升了页面树结构的速度。当第一次加载我们规定,第一个几点只展示到第三层,且每一层的第一个节点默认展开。其他只显示是否有子节点因此后端写了次接口可以动态控制想要的初始展开层级。其效果如果/** * 判断是否有子节点,并将子节点加入 * @param data * @param nodeNum 当前节点位置 * @param dept 想要节点深度 * @return */private List<TreeDTO>
2020-11-26 16:57:55
640
原创 elasticsearch之基础API
这里写自定义目录标题ES的API一、常用的查询1、全文搜索查询1.1、应用场景1.2、常用查询1.2.1、match查询1.2.2、multi_match 多字段匹配查询2、Term条件查询2.1应用场景2.2、常用查询2.2.1、range范围查询2.2.2、exists非空值查询2.2.3、prefix前缀查询2.2.4、wildcard通配符查询2.2.5、fuzzy模糊查询2.2.6、term条件查询3、复合查询3.1、应用场景3.2、常用查询3.2.1、bool查询二、聚合分析1、度量级聚合2.1
2020-10-22 19:45:31
299
原创 java的RandomAccessFile 可以根据位置读取文件
import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import java.util.*;public class ReadFile {/** * * @param file 文件 * @param position 已经读了的字节数 */public static List getLastedLog(File file, long position) {Map<S
2020-08-05 19:27:27
476
原创 java解析和修改properties文件
直接能用import java.io.*;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Properties;/** * @author zhaoming * @date 2020/7/23 18:45 */public class PropertiesUtil { //获取已经保存的已读字节数 public static long getLongValue(Strin
2020-08-05 19:24:34
329
原创 JSON解析成Java对象
使用的是 fastjson-1.2.17.jar public static void main(String[] args) { ServerInfo info1 = new ServerInfo(); info1.setId(1); info1.setName("cpu"); info1.setOpen(true); ServerInfo info2 = new ServerInfo(); info2.setId(2); info2.setName("mem");
2020-08-05 19:22:28
289
原创 java解析和修改XML文件
依赖jdom.jar直接粘贴代码注:ServerInfo对应的是XML中query-item对应的对象import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;
2020-08-05 19:15:13
851
原创 spring 定时任务代码实现
笔者用到的spring quartz定时任务的jar包 quartz-2.3.0.jar 和quartz-jobs-2.3.0.jar定义任务执行的类import java.text.SimpleDateFormat;import java.util.Date;public class Job { public void task1() { System.out.println(nowTime() + ":执行任务一"); } public void task2() { S
2020-07-23 10:45:01
352
原创 在web容器启动和停止容器的时候执行自定义类中的方法
在项目中遇到一个需求。需要用到自定的类,没有@Resource等注解。但是需要web容器启动的时候,执行该类中的方法。笔者自己打了个spring+springMVC的架子后测试以及在项目中测试成功。 具体实现如下:自定义的类实现InitializingBeanimport org.springframework.beans.factory.InitializingBean;public class AutoStart implements InitializingBean{ @Overrid
2020-07-22 18:31:10
220
原创 PKCS7的基础总结
PKCS7的基础总结一、什么是PKCS7?二、PKCS7和X509的关系?三、P7的结构3.1 六种内容类型3.1.1 Data内容类型 ----->明文信息3.1.2 Signed-data内容类型 ----->数字签名3.1.3 Enveloped-data 内容类型 ----->数字信封3.1.4 Signed-and-enveloped-data 内容类型 ----->带签名的数字信封3.1.5 Digested-data内容类型 ----->信息摘要3.1.6 Enc
2020-07-08 17:30:46
21923
1
原创 ANS.1的基础总结
ANS.1的基础总结一、ASN.1定义和作用1.1 定义1.2 作用二、ASN.1描述2.1 数据类型2.1.1 标记符类型2.1.2数据类型对应的标记符ID2.1.3 编码类型2.1.3.1 BER的规则TLV2.1.4 CHOICE和ANY类型2.1.4.1 CHOICE2.1.4.1 ANY三、ASN.1与证书3.1 ASN.1、X509v3、证书之间的关系3.2 证书结构一、ASN.1定义和作用1.1 定义ASN.1描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式
2020-07-08 17:04:37
3521
2
原创 SecureCRT的卸载和安装
卸载先在控制面版中卸载SecureCRT。 这一步卸载并没有将注册表完全删除。所以要手动删除相关的注册表。win + R 弹出命令窗口后,输入regedit 命令。如图点击确定在HKEY_CURRENT_USER和HKEY_LOCAL_MACHINA两个根键的子键SOFTWARE中找到VanDyke,并将其删除删除后,在安装就不会报错了。安装安装地址https://www.cnblogs.com/yjd_hycf_space/p/7729796.html 亲测可用。在安装过程中遇到一下问
2020-06-29 14:35:16
9398
1
原创 linux基础之设备查看
查看磁盘使用情况 dfdf -hT文件使用情况 du查看资源 top查看用户进程 ps ps 显示用户进程 ps aux 显示所有运行的进程lsof 查看正在运行中的进程打开了哪些文件、目录和套接字报告虚拟内存统计信息 vmstat查看内存情况 freehostname ## 查看主机名 hostname ## 更改主机名 hostname myhostname以下命令直接使用就可以获取。。。。who 目前登录系统的用户last 目前
2020-06-28 17:42:37
300
原创 linux基础之网络命令
网络命令网络ifconfigethtoolnetstatroute远程操作sshscp 远程复制文件查看设备查看磁盘使用情况 df文件使用情况 du内存使用情况 free虚拟机内存使用情况vmstat网络ifconfig ## 显示 ifconfig 查看系统中已经激活的网卡信息 ifconfig -a 查看系统中所有的网卡信息 nthtool eth0 查看网口ethX的设置 ethtool –i eth0 查看网口ethX的驱动版本信息
2020-06-28 17:31:11
1838
原创 linux基础之文件操作
管理文件权限权限 读(r):4 写(w):2 执行(x):1修改文件权限 chmod chmod u+r test.txt 给用户添加读权限 chmod u-r test.txt 给用户删除读权限 chmod u+rwx,g+rw,o+r hello.txt给用户分配读写执行权限,给用户所在组分配读写权限,给其他用户分配读权限 以上等同于 chmod 764 hello.txt修改文件属主信息用户属主 chown root /user 将..
2020-06-28 17:23:23
1271
原创 linux基础之用户和组管理
创建组和创建用户创建组groupaddgroupadd 参数 用户组名 -g:指定新建用户组的id -r:创建系统工作组,系统用户的组的id小于500 -K 覆盖配置文件"etc/login.defs" -o:允许添加组ID号不唯一的工作组创建用户useradduseradd 参数 用户名 -g 属组 -u 设置uid -m 创建家目录 -M 没有家目录 -G 指定属于多个组 ..
2020-06-28 17:01:42
142
原创 X509V3数字证书和加密算法
数字证书和加密算法数字证书定义用途X509V3的证书格式加密算法分类摘要算法对称算法有哪些?DES算法AES-128算法非对称算法有哪些?用途对称密钥和非对称密钥的区别和优缺点?对称密钥和非对称密钥的优缺点对称密钥:非对称密钥:数字证书定义数字证书 是一个由证书颁发中心数字签名的包括* 公钥密钥 * 拥有者信息以及公开密钥的文件,类似于身份证,身份证上面有持卡人的身份信息如地址,头像,有效期等,并且身份证一般由政府相关部门颁发。无论是计算机世界的数字证书还是现实生活的身份证,其主要目的都是用来鉴别个体
2020-06-23 18:36:15
2600
原创 PKI的初步了解
PKI的初步了解PKI的概念PKI的组成PKI标准PKI标准图CA系统CARA证书颁发系统CA系统的工作流程如下:数字证书的简述PKI的应用PKI的概念PKI是Public Key Infrastructure的首字母的缩写,翻译过来就是‘公钥基础设施’;PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。PKI技术是公钥基础设施的简称,这种技术的主要原理是遵循既定标准的密钥管理平台,能够为互联网的应用提供加密服务以及数字签名服务。简单来说,PKI技术就是一种基础设
2020-06-23 17:43:22
1063
原创 git回退提交
git回退提交git reflog 命令查看你的历史变更记录git reset --hard HEAD@{n} (注意:n是你要回退到的引用位置)后续还会增加总结。。。。。
2020-05-14 17:43:42
242
原创 springmvc问题总结
springmvc的工作流程为何struts默认为多例而springmvc默认为单例?Spring IOC容器创建一个Bean实例时,可以为Bean指定实例的作用域,作用域包括singleton(单例模式)、prototype(原型模式)、request(HTTP请求)、session(会话)、global-session(全局会话)。为何struts为多例?struts2是基于类的属性开发的,类的属性作用于整个类,基于struts2开发时,每次请求都会产生一个Action对象(多例),而
2020-05-11 14:47:07
242
原创 Eclipse的空格显示箭头
Eclipse设置空格或者tab 显示箭头。如图:设置步骤:window–>preferences–>General—>Editors—>点击Text Editors然后右侧有个show whitespace characters。选中后就会出现效果。
2020-05-09 10:12:51
694
原创 explain字段解释
转载简书select_typesimple :它表示简单的select,没有union和子查询dependent union:union依赖外层的查询dependent subquery:subquery依赖外层的查询select_type说明SIMPLE简单SELECT(不使用UNION或子查询)PRIMARY最外层的SELECTUNION...
2020-05-07 16:00:33
364
原创 redis持久化和过期键删除策略
RRedis持久化Redis 提供两种持久化机制: RDB 和 AOFRDB指用数据集快照的方式半持久化模式,记录 redis 数据库的所有键值对,在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,可恢复数据```csave 900 1 //每900秒有1次更新就将值更新等到rdb文件save 300 10 //每300秒有10次更新就将值更...
2020-05-06 16:10:24
206
原创 线程池总结以及相关面试问题总结
一、什么是线程池?有什么作用?二、常见的线程池以及使用场景三、线程池参数详解四、怎么计算线程池核心数的大小一般说来,大家认为线程池的大小经验值应该这样设置: (其中N为CPU的个数)如果是CPU密集型应用,则线程池大小设置为N+1如果是IO密集型应用,则线程池大小设置为2N+1五、线程池有哪几种工作队列...
2020-05-06 14:13:26
253
原创 synchronized和volatile关键字详解
synchronized一、synchronized可作用范围两种表现形式(方法层面和代码块层面)。两种作用范围(对象锁和类锁)1、public synchronized void demo1(){}2、public static synchronized void demo2(){}3、public void demo3(){synchronized(this){}}4、publ...
2020-05-06 10:44:17
256
原创 线程的生命周期
线程可以合理的利用多核心CPU资源,提高成勋的吞吐量。一、Java中如何使用线程1、实现Runnable接口2、继承Thread(本质是对Runnable接口的实现)3、实现Callable(带返回值的线程)4、实现Future(带返回值的线程)5、线程池二、线程的生命周期NEW在new Thread();阶段RUNNABLE 调用start();方法BLOCKED 当线...
2020-04-30 10:34:49
125
原创 JVM调优思路整理
垃圾回收维度(1)GC日志:停顿时间和吞吐量停顿时间:垃圾收集器进行垃圾回收终端执行响应的时间 停顿时间小适用于 和用户交互比较多的场景吞吐量:用户代码执行时间/(用户代码执行时间+垃圾收集时间) 用户代码运行占用CPU的时间较长,适合运算、跑后台任务的场景根据业务和硬件对垃圾回收器分类 停顿时间比较小的收集器:CMS、G1适用于web应用 (并发类的收集器) ...
2020-04-30 10:30:12
393
原创 垃圾收集器回收算法与垃圾回收器
一、垃圾回收算法(1)、标记和清除算法 将内存中的对象进行全盘扫描。将垃圾对象进行标记, 然后再全盘清除垃圾对象。 优缺点: a.存在空间碎片,内存不连续\ b.标记和清楚都比较耗时 因为标记和清除都要对整个内存去扫描。所以比较耗时。(2)、标记复制算法将内存平均划分为两个空间。并且保证其中一个空间为空。 让进行垃圾回收的时候,将有数据一侧内存h中存...
2020-04-30 10:08:08
198
原创 java8的hashmap扩容机制
当put方法执行的时候,如果table为空,则执行resize();方法扩容。默认长度为16; if ((tab = table) == null || (n = tab.length) == 0) n = (tab = resize()).length;当table中存储值的个数大于等于threshold的时候,进行扩容。容量为原来的2倍。 if...
2020-04-09 14:58:50
3827
2
原创 HashMap中阈值的设计
HashMap中阈值的设计1.HashMap的长度为什么必须是2的次幂?2.加载因子为什么是0.75?3.处理冲突的几种方法4.equals()和hashCode()在HashMap中的重要性1.HashMap的长度为什么必须是2的次幂?为了实现一个尽量分布均匀的hash函数,利用的是Key值的HashCode来做某种运算。因此问题来了,如何进行计算,才能让这个hash函数尽量分布均匀呢?首...
2020-04-08 17:54:34
3227
原创 Java8源码分析HashMap的get和put
注释HashMap 存/取值put方法下面是图解,以便帮助读者更加直观的理解。put方法中用到的方法get方法get中用到的方法put方法/** * 将指定值与该映射中的指定键相关联。 * 如果map中key的值已经存在,则新的值会取代旧的值 */ public V put(K key, V value) { return putVal(h...
2020-04-08 16:25:56
202
原创 IO与NIO
Java的IO与NIO概念IO读操作写操作NIO准输入输出NIO读操作写操作边读边写网络编程NIO选择器服务端客户端代码测试概念NIO是jdk1.4之后引入的。IO是面向流(字符流、字节流)的。NIO是面向缓冲的。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。 参考大佬的详细总结下面主要是代码的实现IO读操作public static ...
2020-04-03 16:54:48
158
原创 内部类的种类和使用方式
四种内部类形式以及使用方法内部类的定义种类和使用成员内部类静态内部类局部内部类匿名内部类内部类的定义内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类种类和使用成员内部类作为外部类的一个成员存在,与外部类的属性、方法并列。public class Outer {...
2020-04-01 18:07:34
247
原创 类的实例化顺序
类的实例化顺序1:父类的静态变量2:父类的静态代码块3:子类静态变量4:子类的静态代码块5:父类非静态代码块6:父类构造函数7:子类非静态代码块8:子类构造方法测试public class Father { static { System.out.println("父类静态代码块----------"); } { System.out.println("父类非...
2020-03-31 16:12:56
371
原创 值传递和引用传递
1.值传递值传递,是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。public static void main(String[] args) { int a =1; changeInteger(a); System.out.println(a); }public static void changeInteger(int a) { a = 100;}...
2020-03-25 16:14:22
125
原创 装饰者模式(decorator)
装饰者模式(decorator)作用应用场景类图作用装饰者模式是为已有功能动态地添加更多功能地一种方式。当系统需要新功能的时候,是向旧的类中添加新的代码。这些新加的代码通常装饰了原有类的核心职责或主要行为。装饰者模式他把要装饰的功能放在单独的类中,并让这个类包装他所需要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择地、按顺序地使用装饰功能包装对象了。(核心思想)...
2019-12-13 10:27:38
106
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人