自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

junlon2006的博客

淡泊明志,宁静致远

  • 博客(227)
  • 资源 (1)
  • 收藏
  • 关注

原创 大道至简,少即是多

最近脑海里经常出现这两个词,几乎每时每刻都在我脑袋里转悠。在工作的第六点五个年头,敲代码的第十个年头,我似乎感悟到了什么。 当我读起3年前自己写的东西,发现自身深层次的思维从来未曾改变过,我还是以前那个少年,仍然想着去方便这个世界,用自己小小的思维,努力去简单这个世界,哪怕只是简单那么一点点。 大道至简,少即是多,我对这个世界的理解,仍然是很单纯,很简单,我想从自己编码中就...

2019-11-04 09:55:12 601

原创 emqx v4.3.12 benchmark 100W 连接

服务器腾讯云:4核8G 10M带宽

2022-03-03 18:22:54 458

原创 docker /var/lib/docker/overlay2 文件占用问题

1、root cause:/var/lib/docker/containers 日志文件占用了大量空间2、设置方式,永久生效:```docker rm -f CONTAINER (删除所有已运行的docker容器实例)cd/var/lib/docker/containersfind . -name *.log | xargs rm -rfcd /etc/dockertouchdaemon.json{ "log-driver":"local"}systemc...

2021-12-21 15:45:47 776

原创 MacOS时光机升级后启动:不可恢复的错误,prelogin

原因TeamView 启动项写入了MacOS boot中,需要先register解决方案:1、command + R进入恢复模式2、进入terminal3、输入rm /Volumes/Macintosh\ HD/var/db/auth.db4、reboot

2020-12-14 20:37:32 1466 5

原创 关于选择

选择,串联人生的最重要连接元素。有句话说:选择大于努力。深以为然,选择的目的是带来“功劳”,即在方向上、战略上正确,努力是“苦劳”,即勤勉。方向错了,越努力越偏离轨道。那么怎么才能避免选择错误,或者是从概率上尽可能提升选择的正确率,靠的是深层次的认识水平,是看透现象,看到本质的能力,大的道理往往非常简洁,类似常识。如何提前看到机会,需要在特定领域长期深耕,追求极限,追求极致是最简单的突破境界,打破万物理解边界的最简方式,跳不出则看不到。...

2020-11-02 17:49:24 154

原创 唯结果论

商业上抑或工作中,充斥着“结果论”,比方说员工常抱怨老板只看结果不看过程。细细想来,唯结果论主要需要关注的点是长期利益还是短期利益,比方说,从商业角度,短期利益就是用最快的速度,最少的投入带来现金流,赚快钱,大部分老板的思维只能到这一步,所以我们可以非常普遍的看到,工作中实际的计划是在不停的试错,不停的改变,以此来尝试获得“赚快钱”的目的。但从长远利益来看,一些是短期明确没有收益的规划,且会消费大量的资源,这些到底需不需要坚持,需不需要深耕,就体现出最高战略规划。能抓住长远利于的组织,从战略上是因为相信

2020-10-11 09:41:45 4334

转载 Nand vs Norflash (XIP)

https://www.embedded.com/flash-101-nand-flash-vs-nor-flash/

2020-05-31 10:23:30 211

原创 Spring boot + docker运行时定制环境变量

1、目的在docker run时,导入一个运行时参数到Spring boot application中。2、方式采用环境变量,以变量HELLO_WORLD为类3、步骤step 1. Dockerfile中添加ENVHELLO_WORLD="this is default hello world"step 2. Spring Boot中获取环境变量:@Config...

2020-03-12 11:50:07 2398

原创 redis cluster

Redis cluster概念1、Redis Cluster特点是:分布式、去中心化、高可用。2、hash slots(哈希槽):Redis集群,共维护了16384(0x4000)个hash slot,通过对key的CRC 16检验值对%16384获取key对应的hash slot。3、集群中的每个Redis node负责处理16384个hash slot中的一部分。4、集群中的每个节点都...

2019-11-07 13:53:29 127

原创 Java String equals

以下源码摘至JDK1.8 public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString =...

2019-10-16 11:34:24 150

原创 Java switch String

switch String支持底层实现switch (type) { case "hello": System.out.println("hello"); break; case "world": System.out.println("world"); break;}switch (type) { case "hello".hashcode: if ("hello".eq...

2019-10-14 15:55:16 129

原创 Java String拼接

常用的字符串拼接方式有五种,分别是使用+、使用concat、使用StringBuilder、使用StringBuffer以及使用StringUtils.join。由于字符串拼接过程中会创建新的对象,所以如果要在一个循环体中进行字符串拼接,就要考虑内存问题和效率问题。因此,经过对比,我们发现,直接使用StringBuilder的方式是效率最高的。因为StringBuilder天生就是设计来定义可...

2019-10-14 15:22:11 311

原创 Java 装箱与拆箱

Java中的八种基本数据类型和对应的包装类基本数据类型包装类byteByteshortShortlongLongintIntegerboolenBoolencharCharactorfloatFloatdoubleDouble public static void main(String[]args){ ...

2019-10-14 11:30:57 72

原创 Java Integer cache

在Integer自动装箱过程中,为了节省内存,JDK做了cache,对-128 ~ 128做cache /** * Returns an {@code Integer} instance representing the specified * {@code int} value. If a new {@code Integer} instance is not ...

2019-10-12 19:57:10 135

原创 Java String hashcode

/** * Returns a hash code for this string. The hash code for a * {@code String} object is computed as * <blockquote><pre> * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]...

2019-10-12 10:36:01 121

原创 Java Collection HashSet

1、HashSet底层实现为HashMap,不能插入重复的元素。2、HashSet将元素作为HashMap的Key,HashMap的Value是一个默认的静态对象。JDK1.8部分源码如下:public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable,...

2019-10-11 20:30:03 141

原创 Java Collection HashMap

HashMap线程不安全HashMap本质上是连续的数组 + 链表结构,在JDK1.8中,当table中的链表长度大于8时,会将链表转换为红黑树,以此来提升搜索的性能。如下图下面为摘录于JDK1.8中的部分源码1、初始table数组长度16,当存储的元素个数超过16 * 0.75时触发扩容,扩容逻辑为double,即容量扩充1倍。扩容时开销比较大,因为需要rehash,即将已存在的元素...

2019-10-11 16:32:54 120

原创 Java RandomAccess interface

/* * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.util;/** * Marker interface...

2019-10-11 14:11:22 115

原创 Java基础知识总结

1、JAVA本质上只有值传递(主要分为两种,基础类型,引用类型)2、String、StringBuffer、StringBuilder的区别:2.1、String不可变public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** T...

2019-10-11 11:40:47 119

原创 Java Collection PriorityQueue

PriorityQueue即队列,先进先出/** * Increases the capacity of the array. * * @param minCapacity the desired minimum capacity */ private void grow(int minCapacity) { int oldCapa...

2019-10-10 15:51:38 132

原创 Java Collection modCount

在很多的结构中(ArrayList、LinkedList、PriorityQueue等),这些结构的特点就是:线程不安全,它们都有modCount字段,从字面上看该modCount保持了结构被修改的次数,这个次数有什么用呢?下面以JDK ArrayList为例,看看modCount有什么作用/** * An optimized version of AbstractList.Itr...

2019-10-10 14:02:21 222

原创 Java Collection Stack

Stack即栈,后进先出以下为从JDK摘录的部分源码(接口线程安全)/** * Pushes an item onto the top of this stack. This has exactly * the same effect as: * <blockquote><pre> * addElement(item)</p...

2019-10-10 10:33:59 141

原创 Java Collection LinkedList

LinkedList本质上是一个双项链表,插入、删除复杂度O(1),查找复杂度O(N)以下为从JDK摘录的部分源码/* Node节点使用泛型,数据结构如下 */private static class Node<E> { E item; Node<E> next; Node<E> prev; ...

2019-10-09 19:06:49 97

原创 Java Collection ArrayList

/** * Inserts the specified element at the specified position in this * list. Shifts the element currently at that position (if any) and * any subsequent elements to the right (adds one...

2019-10-08 15:32:51 92

原创 Redis5.0.5源码解析 -- daemon

Redis daemon:即在后天运行,源码如下int background = server.daemonize && !server.supervised;if (background) daemonize(); /* 如果配置后台运行,则启用fork,默认前天跑 */ void daemonize(void) { int fd; if (for...

2019-09-29 14:16:42 274

原创 Redis5.0.5源码解析 -- tcp_max_syn_backlog

1、client发送SYN到server,将状态修改为SYN_SEND,如果server收到请求,则将状态修改为SYN_RCVD,并把该请求放到syns queue队列中。2、server回复SYN+ACK给client,如果client收到请求,则将状态修改为ESTABLISHED,并发送ACK给server。3、server收到ACK,将状态修改为ESTABLISHED,并把该请求从sy...

2019-09-26 19:37:06 404

原创 Redis5.0.5源码解析 -- 多路复用模型

redis源码地址简介:I/O多路复用模型,在5.0.5的源码中,支持了4种,分别是:epoll、evport、kqueue、select。源码地址epoll:src/ae_epoll.cevport:src/ae_evport.ckqueue:src/ae_kqueue.cselect:ae_select.cRedis对以上各类I/O接口都进行了封装,以满足src/ae.c的统一...

2019-09-26 14:02:00 256

原创 Redis5.0.5源码解析 -- sds

redis源码地址:https://github.com/antirez/redis/releases/tag/5.0.5sds源码所在位置:src/sds.h src/sds.c简介:sds (Simple Dynamic String),即动态字符串管理库在sds.h中,有如下定义typedef char *sds;/* Note: sdshdr5 is never used, w...

2019-09-25 19:34:47 789

原创 int epoll_create(int size) 入参到底需要设置成多少

结论:1、对于高版本的内核只要大于0,效果都一样。2、正常写个1024吧。

2019-09-23 13:45:40 1440

转载 cache update

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道为什么这么多人用的都是这个逻...

2019-09-05 20:22:28 851

原创 docker 中文乱码

docker run -d -p 9998:9998 --name=hotel-service -e LC_ALL=C.UTF-8 hotel-service:1.1

2019-09-02 10:20:05 404

转载 docker mysql

本文简述如何使用Docker部署mysql,同时持久化数据.我们会用到tutum-docker-mysql这个项目来搭建一个mysql,省去重头写Dockerfile的时间.首先我们将tutum-docker-mysql跑起来.docker run -d -p 3306:3306 --name mysql tutum/mysql如果你本地没有tutum/mysql的image,do...

2019-08-18 13:12:52 106

原创 spring boot 解决中文乱码问题

package com.unisound.iot.unione.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.converter.Htt...

2019-07-11 10:51:37 688

转载 数据库索引

https://blog.csdn.net/kennyrose/article/details/7532032强烈建议参阅链接:http://www.linezing.com/blog/?p=798#nav-1说白了,索引问题就是一个查找问题。。。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外...

2019-07-06 18:08:55 134

转载 GOPATH有多工作区的问题

https://cloud.tencent.com/developer/article/1339789如果GOPATH设置了多个工作区,那么查找依赖包时是以怎样的顺序进行的?例如 a 依赖 b ,b依赖c那么 会先查找c包,那在工作区是如何查找这个依赖包c的呢?首先在查找依赖包的时候,总是会先查找 GOROOT目录,也就是go语言的安装目录,如果没有找到依赖的包,才到工作区去找...

2019-06-22 15:45:32 581

转载 java中Class.getResource

https://www.cnblogs.com/keyi/p/6282838.html  用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要取得c:/test.txt文件,就会这样用File file = new File("c:/test.txt");这样用有什么问题,相信大家都知道,就是路径硬编码,对于...

2019-06-19 10:01:07 104

转载 Spring Boot Actuator

https://www.jianshu.com/p/af9738634a21Spring Boot 的 Actuator 提供了很多生产级的特性,比如监控和度量Spring Boot 应用程序。Actuator 的这些特性可以通过众多 REST 接口、远程 shell 和 JMX 获得。一、Actuator 的 REST 接口Spring Boot Actuator 的关键特性是在应用...

2019-06-17 10:36:42 265

转载 MEMORY OVERCOMMIT

http://linuxperf.com/?p=102Overcommit的意思是操作系统承诺给进程的内存大小超过了实际可用的内存。一个保守的操作系统不会允许memory overcommit,有多少就分配多少,再申请就没有了,这其实有些浪费内存,因为进程实际使用到的内存往往比申请的内存要少,比如某个进程malloc()了200MB内存,但实际上只用到了100MB,按照UNIX/Linux的算...

2019-06-16 14:43:11 462

转载 @ControllerAdvice

https://www.cnblogs.com/magicalSam/p/7198420.html在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。参考:@ControllerAdvice 文档一、介绍创建 MyC...

2019-06-14 19:01:02 1850

转载 @PostConstruct

https://www.jianshu.com/p/98cf7d8b9ec31、从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct和@PreDestroy,这两个注解被用来修饰一个非静态的void()方法。写法有如下两种方式:@PostConstructpublic void someMethod(){}或者pu...

2019-06-13 19:41:14 2314

unix环境高级编程

unix环境高级编程,英文版。

2017-03-06

空空如也

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

TA关注的人

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