摘要:
tcpdump 命令使用 tcpdump命令参数解析 option 可选参数:能够控制tcpdump命令,比如是否解析域名,将结果输出到文件,或者从文件读包数据,以及打印格式等。 protocol 协议过滤:能够根据不同的协议进行过滤,常用的已经上面了。 direction 方向过滤:能够根据数据的 阅读全文
随笔- 1046
文章- 115
评论- 19
阅读-
36万
摘要:
CPU架构对redis的性能影响 主流CPU架构 一个CPU处理器中通常有多个运行核心,每一个运行核心称为一个物理核,每个物理核都可以运行应用程序。每个物理核都拥有私有的一级缓存(Level 1 cache,简称L1 cache),包括一级指令缓存和一级数据缓存,私有的二级缓存(Level 2 ca 阅读全文
摘要:
JVM 异常处理原理 异常相关概念 Java异常抛出类型有两种: 显式抛出:抛出异常的主体是应用程序,它指的是程序在代码中使用 throw 关键字进行异常抛出。 隐式抛出:抛出异常的主体是JVM,它指的是程序在执行过程出现无法执行的异常状态,由JVM自动抛出相关异常。比如数组越界。 捕获异常相关的三 阅读全文
摘要:
JVM监控和诊断工具 jps 它将打印所有正在运行的Java进程的相关信息。 在默认情况下,jps的输出信息包括Java进程的进程ID以及主类名。我们还可以通过追加参数,来打印额外的信息。例如,-l将打印模块名以及包名;-v将打印传递给Java虚拟机的参数(如-XX:+UnlockExperimen 阅读全文
摘要:
Linux 写时复制技术 Linux fork fork是类Unix操作系统上创建进程的主要方法。fork用于创建子进程,也就是需要复制父进程得到,也可以说子进程是父进程的副本。在linux中,所有的进程都是通过init进程fork或者vofork生成的。 Linux exec exec函数的作用就 阅读全文
摘要:
Mysql常用函数操作 INSTR(str, substr) 返回字符串str中子串substr第一个出现的位置,如果不存在,返回0。 SELECT `column` FROM `table` WHERE INSTR(`column`, ‘keyword’ ) > 0 LOCATE(substr, 阅读全文
摘要:
Zookeeper实现分布式锁 分布式锁设计 使用临时有序节点 znode 来表示获取锁的请求,创建最小后缀数字 znode 的线程成功拿到锁。同时为了避免出现羊群效应,需要将锁的请求者按照后缀数字进行排除,后缀数字小的锁请求者先获取锁。因为如果所有的锁请求者都 watch 锁持有者,当锁持有者的 阅读全文
摘要:
Java字节码 操作数栈 在解释执行过程中,每当为Java方法分配栈桢时,Java虚拟机往往需要开辟一块额外的空间作为操作数栈,来存放计算的操作数以及返回结果。具体来说,**JVM执行每一条指令之前,Java虚拟机要求该指令的操作数已被压入操作数栈中。在执行指令时,Java虚拟机会将该指令所需的操作 阅读全文
摘要:
CodeForces 146E Lucky Subsequence 题意 首先定义了一种叫幸运数,幸运数是只包含数字4和数字7的数字。给定n()个数,每个数字都不大于 ,让你从中选出k个数,这k个数只要下标不同就算不同,并且这k个数中都不包含两个相同的幸运 阅读全文
摘要:
CodeForces 1467D Sum of Paths 题意 有一条直线,直线上有 n(n ⇐ 5000) 个点,每个点有一个值,你可以选择在任意点出发,移动 k(k ⇐ 5000) 步,只能向左或向右移动,但是可以多次经过同一个点,所有可能出现的路径称好路径。下面有 q(q ⇐ 200000) 阅读全文
摘要:
Java 桥接方法 桥接方法概念 Java中的桥接方法(Bridge Method)是一种为了实现某些Java语言特性而由编译器自动生成的方法。可以通过使用Java反射中 Method 类的 isBridge() 方法来判断该方法是否是桥接方法。通过反射 Class.getMethod("") 取出 阅读全文
摘要:
nginx 替换 问题 nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf nginx缺少http_ssl_module模块,需要在已安装的nginx中 阅读全文
摘要:
JVM方法调用原理 方法重载 方法重载在编译过程就已经能够确定,具体到每个方法调用,Java编译器会根据所传入参数的声明类型来选取重载方法。可以分为三个步骤: 在不考虑对基本类型自动装拆箱,以及可变长参数的情况下选取重载方法; 如果在第1个步骤中没有找到适配的方法,那么在允许自动装拆箱,但不允许可变 阅读全文
摘要:
JVM 编译的细节 Java中boolean类型 首先先来查看如下代码: public class BooleanTest { public static void main(String []args){ boolean ok = true; if(ok){ System.out.println( 阅读全文
摘要:
写一个程序实现base32的编码与解码。base32编码的原理:对于任意一个二进制字节数组,将连续的5个bit进行编码,5个bit可以表示32个不同的数,分别映射到a-z(26个字母)和 0-5(6个数字),比如00000映射到a,00001映射到b,00010映射到c,...,11110映射到4, 阅读全文
摘要:
深入理解Java虚拟机——垃圾收集算法 分代收集理论 当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(Generational Collection)的理论(分代收集理论也有其缺陷,最新出现(或在实验中)的几款垃圾收集器都展现出了 面向全区域收集设计的思想,或者可以支持全区域不分代的收集的工 阅读全文
摘要:
spring 多数据源的使用 在同一个项目中需要使用多个数据源,这就需要根据不同的场景进行切换数据源,spring给我们提供一种很方便的方式,那就是使用 AbstractRoutingDataSource 进行切换数据源。 首先来看 AbstractRoutingDataSource 这个类,下面是 阅读全文
摘要:
横向拆分与纵向拆分 数据库拆分 横向拆分: 将数据库中表的数据按照记录(行)拆分到多个表(库)中去,每个数据库表的结构都一样,也就是列数是一样的。比如某个表有100w条记录,可以把该表横向拆分到10个表里去,每个表10w记录,第一个表是1~10w,第二个表是100001到20w,以此类推。以后当需要 阅读全文