2 Ch.yang

尚未进行身份认证

我要认证

try{ coding } catch { bug } finally { taking notes }

等级
TA的排名 6w+

【java_jvm】Window下查看本地JVM类的实例数量及占用内存

1. 导出dump文件1.1 获取PID(两种方式)可以使用任务管理器获取也可以使用jconsole间接获取在jdk的bin 目录下找到jconsole.exe 执行即可如果看不到本地进程、文件权限可能存在问题解决:先通过本地java代码运行:System.out.println(System.getProperties());查看属性java.io.tmpdir=C:\Users%USER%\AppData\Local\Temp注: 此处%USER%为变量代表操作系统用户

2020-10-22 21:34:00

【java_基础深入】Java8 Stream | Collections API 的 分组操作

Java8 Stream | Collections API 的 分组操作初始数据 // 初始数据 List<User> userList = Arrays.asList( new User("zhangsan", 10), new User("zhangsan", 12), new User("lisi", 10), new User("wangwu", 15),

2020-05-16 20:11:06

【算法】O(n2)时间复杂度和O(nlogn)排序算法的简要分析

排序算法的概述排序算法按时间复杂度分可以分为O(n2) 和 O(logn)O(n2) 排序算法流程分析1234.n个数已有序5.开始扫描第n+1个数n个无序序列外层遍历遍历至第n个数内层遍历外层遍历的时间复杂度是n,内层遍历的时间复杂度也是n,由于嵌套关系,总的时间复杂度就是O(n2) 。O(n2) 排序算法都使用上述的流程,典型的代表有选择排序 、插入排序选择排序123value和...

2020-03-15 00:54:14

【MySQL】truncate、delete、drop的区别

Truncate的特点逻辑上truncate table和delete from table_name;相似,但是过程是先drop table,然后在re-create table,如果要清空一个大表的所有数据行,truncate比delete高效;Truncate是一个DDL操作,一旦执行会隐式提交,这就说明truncate无法rollback,所以执行之前需谨慎;如果表被锁住,t...

2020-03-13 17:27:49

【java_基础深入】JDK借助RandomAccess接口 ,定制ArrayList与LinkedList的二分查找策略

java常用集合类接口实现情况public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializablepublic class LinkedList<E> exte...

2020-03-08 19:04:28

【java_基础深入】LinkedHashMap 继承 HashMap又实现 Map 接口背后的设计思想

JDK源码的类定义public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializablepublic class LinkedHashMap<K,V> extends HashMap<K,V> implements...

2020-03-08 14:06:26

【Elasticsearch】ElasticsearchTemplate 拼接DSL时,debug查看最终语句

前置基础知识慕课教程该教程会有讲到如何打印拼接而成的普通的DSL语句ElasticsearchTemplate.queryForpage(…)类似于JdbcTemplate,sql语句的拼接是在方法内部的但是ElasticsearchTemplate 不提供日志打印的功能,只能debug进内部执行语句debug步骤定位语句拼接逻辑的方法SeachQuery 通常是使用业务逻辑bu...

2020-03-07 21:41:24

【Elasticsearch】模仿淘宝,将搜索框的业务逻辑抽象成DSL语句

目标提供一个搜索API就能兼容前端的各种查询需求环境ElasticSearch 5.6.8kibana 5.6.8需求界面根据用户点击,拼接用户的查询需求input:{ 1. 匹配查询: keywords: 商品名 , 不传入默认值为"烤箱 家用小烤箱" 2. 过滤查询(布尔查询): 匹配 c...

2020-03-07 21:11:55

【工具】Maven的常用打包命令

1.打包,包含进行单元测试mvn install2.打包,跳过单元测试mvn install -Dmaven.test.skip3.生成sourcemvn source:jar 4.生成jar和souce.jarmvn clean install source:jar -Dmaven.test.skip...

2020-03-05 17:20:46

【Spring】SpringMVC 中 @ControllerAdvice的两种应用

SpringMVC 中 @ControllerAdvice的两种应用1. 异常处理 @ExceptionHandler1.1 全局异常处理@ControllerAdvicepublic class GlobalExceptionHandler { @ExceptionHandler(value = Exception.class) @ResponseBody pu...

2020-02-26 17:03:56

【RabbitMQ】@RabbitListener的使用及造成报错死循环的分析

问题复现:docker 下清空对应的队列信息exec rabbitmq /bin/bash #rabbitmq是容器名,也可以指定为Idrabbitmqctl purge_queue queue.order # queue.order是队列名RabbitMQ控制台新建消息,等待消费者消费http://localhost:15672前置知识:一、 @RabbitListener的使...

2020-02-10 18:27:03

【Linux】重启 Exited 状态的 docker 容器 bind: address already in use

查看docker 容器docker -ps -a重启docker 容器docker restart 容器ID(或容器名)报错: bind: address already in use查看端口号监听的进程, 获取pid,lsof命令的其他用法lsof -i:端口号或netstat -tunlp | grep 端口号根据pid杀掉进程,-9参数表示强力删除,其他...

2020-02-09 23:33:02

【Spring】Filter、Interceptor、Aspect的设计及区别

Filter、Interceptor、Aspect的设计及区别1) Filter定义基于Servlet架构,Spring无法控制,也无法拿到Spring控制的参数public class TimeFilter implements Filter { @Override public void doFilter(ServletRequest request, Se...

2020-01-30 23:37:25

【工具】使用 import static 在测试用例中简化重复代码(idea)

需求测试用例中存在大量静态方法需要加类前缀,如何省略这些类名前缀idea实现先写完整的类.方法名MockMvcRequestBuilders.get("/user")删掉类名get("/user")鼠标单击方法名, ALT + ENTER3.1 如果是第一次导入,需要选择如下选项3.2 成功导入过的,自动生成如下 import语句import static org.spri...

2020-01-28 13:41:20

【项目】Restful API 存在问号的情况解读,搜索业务相关

Restful API 基本规范GET user/1 获取id 为1的user资源POST user/1 创建id 为1的user资源PUT user/1 修改id 为1的user资源DELETE user/1 删除id 为1的user资源项目中用到的带?的URLGET user/1?name=zhangsan区别于GET user/1?name=zhangsan表示...

2020-01-27 16:27:43

【工具】idea 折叠任意注释或代码块,与对应的快捷键

需求前提: idea中/** */ 和 整个方法可以折叠需要拓展: 折叠任意的注释或代码块实现,用idea内置的注释模板//region.....你需要折叠的内容// endregion //region /* clients.inMemory() .withClient("changgou") //客户端id ...

2020-01-12 11:31:49

【java_基础深入】SimpleDateFormat.format()线程不安全的起因与解决方案

追踪问题网上找到的最多讨论的就是 calendar的线程不安全操作传递到了SimpleDateFormat针对Calendar进行断点观察,观察其值的变化观察calendar的赋值链SimpleDateFormat实例化过程1: calendar初始化的位置追踪上层方法:2.1 疑惑:无参构造调用了有参的构造方法,初始化了calendar2.2 解惑:无参构造中使用了this...

2019-12-29 23:12:44

【工具】解决idea导入项目出现窗口闪回

原文地址其实是别人的项目用到了分屏,以下目录记录了窗口信息.idea/workspace.xml平时没有这个bug是因为.idea文件添加到gitignore里面了

2019-12-25 22:31:29

【java_基础深入】模板方法设计模式的妙用 : 回调子类实现

模板方法设计模式应用场景HttpServlet 的 service() 就是一个模板方法,它实现了Servlet规范,DispatcherServlet 借助service() 的模板方法,拓展了自己的逻辑。HttpServlet 是一个抽象类。抽象类是实现模板方法的基石,以下先举个简单例子,再从底层证明实例产品线定义:/** * @Author james * @Descript...

2019-12-24 22:52:02

【Spring】SpringMVC DispatcherServlet 和 Controller的交互

1. MVC架构1.1 FrontController: DispatcherServlet​ FrontController就是Spring提供的DispatcherServlet , 而不是Spring提供的@Controller,xml配置文件需要指定Tomcat启动时优先加载该Servlet映射路径写/,转发所有请求 <servlet> <ser...

2019-12-24 17:28:34

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。