- 博客(197)
- 资源 (22)
- 问答 (1)
- 收藏
- 关注
原创 【Idea】Idea配置JVM参数
配置入口help–>edit custom vm options配置参数参数详解-Xms768m:设置JVM初始堆内存为768m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xmx768m:设置JVM最大堆内存为768m。-Xss128k:设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K。应当根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制
2021-08-15 15:47:27 3289
原创 【JVM】七、JVM 之 GC日志分析
垃圾回收器的可用组合:ParNew and CMS“Concurrent Mark and Sweep” 是CMS的全称,官方给予的名称是:“Mostly Concurrent Mark and Sweep Garbage Collector”;年轻代:采用 stop-the-world mark-copy 算法;年老代:采用 Mostly Concurrent mark-...
2021-08-11 11:33:18 882
原创 【Java】Java对比两个JSON对象(深度广度比较)
思路:将对象里面的每个属性转为path:value模式用map装起来,然后根据path比较值,返回不同(这里需要注意的是,如果是集合,必须是有序的且按照规则排好序的)pom.xml<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifac...
2021-08-11 11:27:14 13877 18
转载 【JVM】六、JDK工具(查看JVM参数、内存使用情况及分析等)
在JDK的bin目录下有很多命令行工具: 我们可以看到各个工具的体积基本上都稳定在27kb左右,这个不是JDK开发团队刻意为之的,而是因为这些工具大多数是jdk\lib\tools.jar类库的一层薄包装而已,他们的主要功能...
2021-08-11 11:26:42 648
原创 【Java】Java性能分析常用命令
//查询内存使用前十的进程ps -aux --sort -rss |head -10// 查询java进程启动参数jhsdb jinfo --flags --pid 28575//查询gc以及内存使用情况 jstat -gc 24512//查询容量使用百分比 jstat -gcutil 24512//查询java进程堆配置及使用信息 jhsdb jmap --heap --p...
2021-08-11 11:26:06 644
转载 【SecureCRT】SecureCRT端口转发功能
总共有三台机器:A是办公网络的windows主机,B是一台linux堡垒机(114.144.xxx.xx),C是内网生产环境一台linux机器(192.168.1.6),A只能访问B但A不能访问C,B可以访问到C,那怎样才可以使A机ssh连接到C机呢?每次都要先登陆堡垒机,然后在堡垒机上通过SSH的方式登陆至内网服务器进行操作是一件特别麻烦的事。端口转发的意思是,将所有发送至B:port1的请求全部转发至C:port2 1.首先配置至堡垒机(114.144.xxx.xx:...
2021-08-11 11:25:28 1269
转载 【Http】常用的Http请求头与响应头
常用的HTTP请求头与响应头HTTP消息头是指,在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件。HTTP消息头用来准确描...
2021-08-11 11:23:16 1442
原创 【Java】Java多线程之线程死锁
恶魔之java多线程之线程死锁-简单易操作代码示例MyTest.javapackage myUtil.myUtil;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * 线程死锁 * 四大条件:1线程互斥 * 2占用自然且不释放资源 * 3不强行剥夺资源 * 4
2021-08-11 11:22:38 569
转载 【Idea】Idea中Java模板定义
IDEA JAVA模板定义1、Settings->File and Code Templates2、Settings->File and Code Templates3、新建java代码时,填写类注释到弹出的DESCRIPTION框中IDEA JAVA模板定义1、Settings-...
2021-08-11 11:22:08 1272
原创 【Linux】Linux:PS命令详解与使用
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,ps命令就是最基本进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到。ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。参数:-A :所有的进程均显示出来,与 -...
2021-08-11 11:19:03 802
原创 【Java】RandomAccessFile-递归操作指定文件夹下的所有文件内容
public static void toFiles(File rootFile) { if(rootFile == null){ return; } if(rootFile.isDirectory()){ File[] listFiles = rootFile.listFiles(); ...
2021-08-11 11:18:23 278
转载 【Spring】使用Spring的Validation完成数据后端校验
前言数据的校验是交互式网站一个不可或缺的功能,前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用...
2021-08-10 23:48:40 855
转载 【Spring】filter,interceptor,controllerAdvice,aspect,controller执行顺序
1、filter,这是java的过滤器,和框架无关的,是所有过滤组件中最外层的,从粒度来说是最大的。配置方式,有直接实现Filter...
2021-08-10 23:47:37 872
转载 【Tomcat】Tomcat设置最佳线程数
性能压测的情况下,起初随着用户数的增加,QPS会上升,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加。这个阀值我们认为是最佳线程数。 为什么要找最佳线程数:1.过多的线程只会造成,更多的内存开销,更多的CPU开销,但是对提升QPS确毫无帮助2.找到最佳线程数后通过简单的设置,可以让web系统更加稳定,得到最高,最稳定的QPS输出...
2021-08-10 23:46:16 2342
转载 【Linux】Linux系统硬链接和软链接
在linux系统中有种文件是链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link)。 查看linux系统中哪些是链接文件。 上图文件列表中第一列权限位标识第一个字符显示的是文件类型,-为一般文件,d为目录,而l显示的就...
2021-08-10 23:42:09 284
翻译 【Idea】Idea中使用Database管理工具
说个冷门的,用IDEA操作数据库。可能大部分不知道,IDEA是自带数据库管理工具的,类似于一个小型Navicat。具体打开方式是先打开Database视图。然后点击+号,选择一个数据库,这里我用MySQL举例子。然后需要填上Host、User、Password和Database。最后还需要选择一个数据库驱动,如果你的Mysql是5.x版本以上的,那你应该用MySQL for 5.1驱动。填写完之后点下Test Connection,显示成功就表示可以了。.
2021-08-10 23:41:25 8545 7
原创 【Linux】Linux的bg和fg命令后台运行程序
我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务。假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号):[1]+ Stopped /roo...
2021-08-10 23:40:21 1827
原创 【Linux 】Linux 技巧:让进程在后台可靠运行的几种方法
可靠运行的办法有如下几种,可以针对不同的场景选择不同的方式来处理这个问题:nohup/setsid/&disownscreennohup/setsid/&场景:如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证它在后台稳定运行呢?解决方法:我们知道,当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号...
2021-08-10 23:39:28 314
原创 【RegExp】正则的正向预查和反向引用
参考文章正则的正向预查和反向引用正向预查前瞻:exp1(?=exp2) 查找exp2前面的exp1后顾:(?<=exp2)exp1 查找exp2后面的exp1负前瞻:exp1(?!exp2) 查找后面不是exp2的exp1负后顾:(?<!=exp2)exp1 查找前面不是exp2的exp1反向引用捕获组捕获到的内容在正则表达式内部进行引用,则为反向引用/(ab...
2021-08-10 23:38:02 925
原创 【Neo4j】Neo4j的基本操作
neo4j语法总爱忘记,记点小笔记1、导入csv文件(要导入的文件必须放在neo4j的import文件夹里面) LOAD CSV WITH HEADERS FROM “file:///食品饮料331.csv” AS line MERGE (a:展示行业测试{name:line.subject})merge(b:展示行业测试{name:line.object})merge...
2021-08-10 23:34:35 2061
原创 【Linux】Linux之DNS查询、设置及测试可用性
1.HOST 本地DNS解析vi /etc/hosts添加规则 例如:223.231.234.33 www.baidu.com2.网卡配置文件DNS服务地址vi /etc/sysconfig/network-scripts/ifcfg-eth0添加规则 例如:DSN1=‘114.114.114.114’3.系统默认DNS配置vi /etc/resolv.conf...
2021-08-10 23:31:21 4410 1
原创 【测试工具】四、手把手教会jmeter插件的简单实现
此处以自定义树形的监听器为例(仅作为实现教程)依赖什么的直接看源码就可以了,此处就不作展示了源码地址:https://github.com/philzq/zzq/tree/master/zzq-plugins/jmeter-plugin一、查看下jmeter监听器的实现类从图中可以看出,原生有自带的树形实现,从源码来看没有暴露什么自定义的功能,此处我们就直接copy此类进行自定义封装二、自定义类实现如下图详细实现可自行查看源码三、实现好后,将项目依赖到jmeter中也就是将项目打成jar
2021-08-03 22:45:43 126
原创 【Java】线程如何全局捕获异常
web清空tomcat线程池子线程线程副本此处以过滤器来实现,因为过滤器在doService()外线程异常场景清除值触发点一次性线程异常场景捕获可通过继承UncaughtExceptionHandler实现uncaughtException方法然后通过Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler());全局设置异常执行的类Executor创建的线程池executorservice.execut
2021-08-02 23:11:24 1184
原创 【Java】如何使用ThreadLocal传递上下文
场景这里就直接介绍最复杂的应用场景多个独立的线程池嵌套使用,上下文传递及清除ThreadLocal值,此处就简单以ThreadLocal,InheritableThreadLocal,TransmittableThreadLocal(阿里开源组件)为例介绍ThreadLocal该线程副本对象只适用于一次性线程,不适合使用线程池以及父子线程(父子线程值不会传递,线程池中的线程重复使用时候会存在这此线程业务处理使用到了上一次该线程业务处理的值)InheritableThreadLocalInher
2021-08-02 16:07:08 1563 1
转载 【Java】六、Java的BIO,NIO和AIO的区别
BIO (Blocking I/O)同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。在活动连接数不是特别高(小于单机1000)的情况下,这种模型是比较不错的,可以让每一个连接专注于自己的 I/O 并且编程模型简单,也不用过多考虑系统的过载、限流等问题。线程池本身就是一个天然的漏斗,可以缓冲一些系统处理不了的连接或请求。但是,当面对十万甚至百万级连接的时候,传统的 BIO 模型是...
2021-07-14 18:55:33 206
原创 【Java】五、Java多线程并发之java内存模型
一、Java内存模型 Java内存模型(即Java Memory Model,简称JMM)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的数据,而Java内存模型中规定所有变...
2021-05-09 14:29:56 296
原创 【Java】四、多态性实现机制——静态分派与动态分派
多态性实现机制——静态分派与动态分派方法解析Class 文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在 Class 文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性给 Java 带来了更强大的动态扩展能力,使得可以在类运行期间才能确定某些目标方法的直接引用,称为动态连接,也有一部分方法的符号引用在类加载阶段或第一次使用时转化为直接引用,这种...
2021-05-09 14:28:36 267
原创 【Java】三、Class 类文件结构
Class 类文件结构平台无关性Java 是与平台无关的语言,这得益于 Java 源代码编译后生成的存储字节码的文件,即 Class 文件,以及 Java 虚拟机的实现。不仅使用 Java 编译器可以把 Java 代码编译成存储字节码的 Class 文件,使用 JRuby 等其他语言的编译器也可以把程序代码编译成 Class 文件,虚拟机并不关心 Class 的来源是什么语言,只要它符...
2021-05-09 14:27:08 257 1
原创 【Java 】二、Java 代码编译和执行的整个过程
Java 代码编译和执行的整个过程Java 代码编译是由 Java 源码编译器来完成,流程图如下所示:Java 字节码的执行是由 JVM 执行引擎来完成,流程图如下所示: Java 代码编译和执行的整个过程包含了以下三个重要的机制:Java 源码编译机制类加载机制类执行机制Java 源码编译机制Java 源码编译由以下三个过程组成:分析和输入到符号表...
2021-05-09 14:26:51 854
原创 【Java】一、走进 Java
概述Java 不仅仅是一门编程语言,它还是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器和大型机等各种场合。时至今日,Java 技术体系已经吸引了近千万软件开发者,这是全球最大的软件开发团队。使用 Java 的设备多达几十亿台,其中包括 8 亿多台个人计算机、21 亿部移动电话及其他手持设备、...
2021-05-09 14:25:18 272
转载 【应用场景】Vue数组中对象属性变化页面不渲染问题
首先,解释的话,原因就是Object.observe 已经被废弃了,所以vue不会用一个废弃jsapi来实现对象属性监听。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/observe然后,记得当时写这篇文章的时候,就是在强调读文档只留下了印象,使用的时候才会有更深的感悟。现在越来越发现,vue的文档写的真的是很好了,遇到的问题在文档里其实都能找到答案 —— vue响应式原理.
2021-05-06 15:52:33 721
转载 【Vue CLI】三、详解Vue-cli3配置之filenameHashing使用和源码设计使用和源码设计
执行 npm run build 之后的 dist 目录的静态资源的文件名多会追加上 hash 值,比如: page1.f151b4d3.js那如果不要 hash 呢,你只需要配置 vue.config.js 文件中的 filenamehashing官方文档也提到了因为 html 也是我们通过插件生成的,静态资源直接就 inject 进去的,所以,当 html 不是自动生成或者其他情况时候,就不能加 hash 了,可以配置 false。filenamehashing: fa...
2021-05-06 15:49:04 3238
翻译 【Vue CLI】二、Vue-cli3版本中如何修改打包好的css、js、img文件名
话不多说上代码。我用的是vueCli3.x,所有的修改全在vue.config.js中:const MiniCssExtractPlugin = require('mini-css-extract-plugin');const conf = require('./conf/projectConfig');module.exports = { // 修改打包后js文件名 configureWebpack: { // webpack 配置 output: { // 输出重构 打包编译后.
2021-05-06 15:48:33 3805 1
转载 【Vue CLI】一、Vue-cli3打包规范
使用VUECLI进行的项目打包上线时发现包很大,并且不管是js还是css都分别在chunk-vendors.js和chunk-vendors.css文件下。虽说VUECLI3中集成的webpack4已经会帮我们做一些按需引入等打包工作,但是对我们来说这些在开发过程中依然是有些不够的。下面我简单说一...
2021-05-06 15:48:08 790
原创 【webpack】二、从源码看webpack的hash策略
近期发现webpack在多台机器上打包同一份代码生成的hash不一样,查看社区没有文章深入说明hash生成策略 ,所以把webpack源码撸了一遍,定位到是hash生成时包含有项目的绝对路径导致,最后编写一个webpack插件解决了该问题,本文主要讲解hash的用法和原理以及如何解决多机器hash不一致等坑。webpack的hash策略前端同学众所周知静态资源首次被加载后浏览器会进行缓存,同一个资源在缓存未过期情况下一般不会再去请求,那么当资源有更新时如何通知浏览器资源有变化呢?资源文件命名has.
2021-05-06 15:37:16 7236 3
原创 【webpack 】一、webpack 中,filename 和 chunkFilename 的区别是什么呢?
Webpack 有非常多的概念,很多名词长得都差不多。我把这些分散在文档和教程里的内容总结起来,写了一份 webpack 中的易混淆知识点,目前看是全网独一份,大家可以加个收藏,方便以后检索和学习。 2.1 filename filename 是一个很常见的配置,就是对应于 entry 里面的输入文件,经过webpack 打包后输出文件的文件名。比如说经过下面的配置,生成出来的文件名为 index.min.js。 { entry: { index: "../src/index
2021-05-06 15:36:59 1742
原创 【Vue】四、Vue中methods watch和compute的区别及使用场景
谈谈VUE种methods watch和compute的区别和联系
2021-05-06 15:29:00 726 1
原创 【JavaScript&关键字】三、promise、async和await的执行顺序
参考文章promise、async和await的执行顺序promise、async和await的执行顺序async function async1(){ console.log('async1 start')//2 await async2() console.log('async1 end')//7}async function async2(){ co...
2021-05-06 15:14:30 775
原创 【JavaScript&关键字】一、JavaScript let关键字以及let与var的使用区别
参考文章js中let和var定义变量的区别.JS let关键字.let,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。与var 区别;let不像var那样会发生“变量提升”现象暂时性死区(temporal dead zone,简称TDZ)var tmp = 123;if (true) { tmp = 'abc'; // Reference...
2021-05-05 00:29:33 691
深入理解计算机系统
2017-10-11
微信支付宝扫码demo
2017-09-21
java发送邮件
2017-09-20
微信支付宝扫码支付
2017-09-20
qq微信分享
2017-09-02
springwebflux高並发场景性能要比springmvc好?
2019-12-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人