Solace Blog

Thinking will not overcome fear but action will.

Redis

Redis 数据类型 string: list:有序列表,比如微博大V粉丝,lrange可以实现分页 hash:比如存对象 set:无序,自动去重,微博大V共同粉丝 sorted set(zset):有序,自动去重,可排序,排行榜 问题 redis和memcached区别 redis更丰富的数据结构,更强大的数据操作;redis官方是支持cluster模式,...

Mysql优化

MySQL优化 如果明确知道查询结果只有一条记录,建议使用 limit 1 来提高效率,可以让数据库停止游标的移动 select name from user where id=6105281991******** limit 1 索引(index): 对于记录较多的表在使用时可以提高检索速度,分为单列索引和组合索引。 普通索引:create index index_name on...

线程2

线程 - 并发容器 马士兵老师线程示例代码;concurrent文件为源码 ConcurrentLinkedQueue /** * 有N张火车票,每张票都有一个编号 * 同时有10个窗口对外售票 * 请写一个模拟程序 * * 分析下面的程序可能会产生哪些问题? * 重复销售?超量销售? * * 使用Vector或者Collections.synchronizedXX...

线程1

线程 马士兵老师线程示例代码;concurrent文件为源码 前言 什么是线程 如何创建一个线程 线程同步的概念 synchronized关键字 当要保证一个代码块在多线程执行时,使用synchronized关键字加锁来实现,一般的方法可以对成员变量加锁,或者也可以对this自身来加锁。 public void m() { synchr...

数据库概念

PostgreSQL 数据类型 整数类型: SMALLINT INT 任意精度浮点数类型 REAL NUMERIC(m, n) m位数保留n位 时间类型 TIME 10:05:00 DATE 1989-10-01 TIMESTAMP 2019-01-14 21:52:10 RDBMS: A: Atomicity(原子性)事务中执行...

异常

异常 异常顶层类Throwable Error:大多数此类错误都是异常情况,程序无法触及的错误,不用处理 Exception:Exception和他所有非RuntimeException子类的异常都属于checked exception,这些异常都必须进行处理,throws或者try catch; RuntimeExcept...

Jvm调优

JVM调优 主要调整两块:堆内存参数的调整、垃圾回收器的调整 JVM参数 -:标准参数,所有JVM都支持 -X:非标准参数,每个JVM实现都不同 -XX:不稳定参数,下一个版本可能会取消 内存溢出问题定位 -XX:HeapDumpOnOutOfMemoryError:把堆内存信息dump出来 -XX:HeapDumpPath=*** :demp到哪个文件里面...

Jvm监控 jconsole

无监控不调优 : JVM监控 - Jconsole ### Jconsole是JDK自带一个监控JVM运行情况的GUI工具,稳定。 官方Jconsole使用文档 启动:使用命令行切换到tomcat的bin目录下,执行jconsole即可 概览(Overview) 在需要保存的图标上右键单击可保存为(CSV)文件中,可以使用Excel打开查看数据 ...

Jvm内存模型

JVM内存模型 运行时数据区域 程序计数器(Program Counter Register) 是一块比较小的内存空间,用来标识当前线程所执行的字节码的行号指示器。处于线程独占区。如果执行java代码记录的是行号;如果是native方法,值为undefined。此区域是唯一一个在Java虚拟机中没有规定任何OutOfMemoryError情况的区域 Java虚拟机栈(Java V...

Gc回收算法

判断对象是否“存活” 首先,在发生GC时需要先确定哪些对象是否可以被回收,一般可以使用下面两种方法来区别: 引用计数法 该方法是针对每个对象添加一个计数器,每次引用一次计数器就+1;引用失效一次-1;当计数器变为0时该对象不能再被引用,此时该对象可确定为已”死去“。 但Java并未使用此方法来判断对象是否“存活”,原因是当出现相互循环引用时,这种方法并不奏效。 可达性分析算法 所...