自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

转载 数据库锁

共享锁和排它锁MySQL的锁系统:shared lock和exclusive lock(共享锁和排他锁,也叫读锁和写锁,即read lock和write lock)读锁是共享的,或者说是相互不阻塞的写锁是排他的,一个写锁会阻塞其他的写锁和读锁在实际的数据库系统中,每时每刻都发生锁定,当某个用户在修改某部分数据时,mysql会通过锁定阻止其他用户对同一数据的读取 共享锁【S锁】又称读锁,若事务T对数...

2018-04-29 20:26:18 243

转载 synchronized

当一个线程访问同步代码块时,它首先是需要得到锁才能执行同步代码,当退出或者抛出异常时必须要释放锁,那么它是如何来实现这个机制的呢?我们先看一段简单的代码:public class SynchronizedTest { public synchronized void test1(){ } public void test2(){ synchroniz

2017-03-19 22:24:27 346

转载 jvm三色标记

2)标记过程标记过程采用的算法为DFS三色标记算法。这里大致介绍一下三色标记法:如果节点当中有3个颜色,白色,灰色和黑色,白色代表这个节点从来没有被处理过,灰色代表正在被处理,黑色代表已经被处理。对应标记就是白色代表这个节点还没被标记,灰色代表正在被标记还没标记完,黑色代表已经标记完而且确确实实不能被回收。下面举个例子:图代表对象之间的引用关系,假设把1当做

2017-03-12 10:07:37 6666 1

原创 PreparedStatement 防止sql注入

sql执行分为:1 变异阶段2 执行阶段sql 数据库引擎,执行sql经过一下阶段:1 语法分析,2 变异阶段3 查询最佳的执行计划4 缓存:最佳的执行计划会被存储在缓存中5执行PreparedStatement  并不是产生真正的sql,PreparedStatement stmt = conn.prepareStatement("INSERT INTO

2017-03-11 23:46:18 266

原创 spring循环依赖

AbstractAutowireCapableBeanFactory 方法中创建beandoCreateBean实现如下:protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final Object[] args) { // Instantiate the bean.

2017-03-11 16:40:55 303

原创 redis发布订阅

@Testpublic void testPub() { RedisUtil.getJedis().publish("JRedisChat","my name is chenLong"); RedisUtil.getJedis().publish("JRedisChat","Hello chenLong!");}@Testpublic void testSub() { J

2017-03-05 21:52:01 253

原创 java反射-private方法

public class reflectJava { private void privatePrint() { System.out.println("11"); } public void publicPrint() { System.out.println("22"); }}关闭//method.setAccessible(true);Me

2017-02-26 09:17:45 1048

转载 kafka

Kafka系统的角色Broker :一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topictopic: 可以理解为一个MQ消息队列的名字Partition:为了实现扩展性,一个非常大的topic可以分布到多个 broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列

2017-02-18 19:20:52 306

转载 cms使用场景

采用CMS时候,新生代必须使用Serial GC或者ParNew GC两种。CMS共有七个步骤,只有Initial Marking和Final Marking两个阶段是stop-the-world的,其他步骤均和应用并行进行。持久代的GC也采用CMS,通过-XX:CMSPermGenSweepingEnabled -XX:CMSClassUnloadingEnabled来制定。在采用cms g

2017-02-11 12:16:36 3492

转载 jvm垃圾回收算法2

1.GC介绍垃圾回收器(Garbage Collection,GC),顾名思义,垃圾回收就是释放垃圾占用的空间, Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。我们需要考虑一下JVM处理垃圾回收三个问题:1).哪些内存需要回收?2).GC什么时候开始回收?3).如何回收 2.垃圾收集方式2.1

2017-02-11 11:41:03 237

原创 jvm垃圾回收算法

垃圾收集的第一步就是先需要算法来标记哪些是垃圾,然后再对垃圾进行处理。 引用计数(ReferenceCounting)算法这种方法比较简单直观,FlashPlayer/Python使用该算法,简单高效。核心思路是,给每个对象添加一个被引用计数器,被引用时+1,引用失效-1,等于0时就表示该对象没有被引用,可以被回收。但是,Java/C#并不采用该算法,因为该算法没有解决对象

2017-02-11 11:37:48 194

转载 filter,interceptor

HttpRequest ----> DispactherServlet ----> HandlerInterceptor ---->Controller----> HandlerInterceptor ----> HttpResponse两者的主要区别在于Filter起作用的时机是在请求到达Servlet之前,二HandlerInterceptor其作用的时机是在DispactherSer

2017-01-21 15:56:20 182

原创 https

CRT 即 certificate的缩写,即证书。X.509 是一种证书格式.对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。X.509的证书文件,一般以.crt结尾,根据该文件的内容编码格式,可以分为以下二种格式:PEM - Privacy Enhanced Mail,打开看文本格

2017-01-14 22:22:33 252

原创 jstat

jstat -gc : 可以显示gc的信息,查看gc的次数,及时间。显示列名具体描述S0C   年轻代中第一个survivor(幸存区)的容量 (字节)S1C   年轻代中第二个survivor(幸存区)的容量 (字节)S0U   年轻代中第一个survivor(幸存区)

2016-12-28 23:29:00 934

转载 cms垃圾回收算法心得

为什么给了一个这么“武断”的建议呢,不是我对CMS GC有什么不爽,相反CMS GC一直是我很热爱的一种GC实现,之所以建议在<=3G的情况下完全不要考虑CMS GC,主要出于以下几点考虑: 1、触发比率不好设置 在JDK 1.6的版本中CMS GC的触发比率默认为old使用到92%时,假设3G的heap size,那么意味着旧生代大概就在1.5G--2.5G左右的大小,假设是92%触发,那么意味

2016-12-28 23:20:19 2051

原创 beanFactory与FactoryBean区别

beanFactory ioc容器接口,FactoryBean 是一个bean,工厂类接口package org.springframework.beans.factory;  public interface FactoryBean {      T getObject() throws Exception;      Class getObjectType(

2016-10-22 23:25:44 308

原创 cup占有率高

ps -mp pid -0 THREAD,tid,time-A 显示所有进程(等价于-e)(utility)-a 显示一个终端的所有进程,除了会话引线-N 忽略选择。-d 显示所有进程,但省略所有的会话引线(utility)-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)-p pid 进程使用cpu的时间-u uid or us

2016-10-17 13:16:51 309

转载 linux 安装字体

建立字体缓存 代码如下复制代码# mkfontscale (如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale )# mkfontdir # fc-cache -fv (如果提示 fc-cache: command not found,则需要安装# yum i

2016-09-06 12:56:29 2067 1

原创 thrift基础

基本类型:bool:布尔值,true 或 false,对应 Java 的 booleanbyte:8 位有符号整数,对应 Java 的 bytei16:16 位有符号整数,对应 Java 的 shorti32:32 位有符号整数,对应 Java 的 inti64:64 位有符号整数,对应 Java 的 longdouble:64 位浮点数,对应 Java 的 doublestring:ut

2016-08-27 22:06:39 386

原创 java-反射

获取静态属性Class c=Topic.class();Field[] fields=c.getDeclaredFields();for(Field f:fields){ Object o; try{ o=f.get(null); String top=o.toString(); }}public Object get(Ob

2016-08-24 23:09:17 215

原创 java-反射

反射获取静态属性Class c=Topic.class();Field[] fields=c.getDeclaredFields();for(Field f:fields){ Object o; try{ o=f.get(null); String top=o.toString(); }}public Object ge

2016-08-24 23:00:47 144

转载 单例

public class Singleton { private Singleton() {} private static final Singleton   instance = new Singleton(); public static Singleton getInstance() {  return instance;  } }public cl

2016-08-20 22:54:42 133

转载 java内部类

4. 匿名内部类      有时候我为了免去给内部类命名,便倾向于使用匿名内部类,因为它没有名字。例如:((Button) findViewById(R.id.start)).setOnClickListener(new Button.OnClickListener() {     @Override     public void onClick(View v) {         

2016-08-20 22:34:36 153

原创 java-嵌套类

分类在一个类(外部类)中直接定义的内部类(成员内部类)、局部内部类、静态内部类、 不能声明为private,调用时初始化匿名内部类public void out(String str){//public String str1 = "test Inner";//不可定义,只允许final修饰//static String str4 = "static Str";

2016-08-20 22:15:30 194

原创 jwt

基于 Token 的身份验证方法JWT 标准的 Token 有三个部分:headerpayloadsignature中间用点分隔开,并且都会使用 Base64 编码public String generateJwtToken(){ Date beginDate = new Date(); Timestamp endDate = new Timestamp(S

2016-08-20 17:36:56 1517 1

原创 mysql-covering index

SELECT SQL_NO_CACHE aa FROM user_group WHERE  bb= ?存在索引 index(aa,bb)

2016-08-16 22:58:49 161

原创 spring-cache

配置标签:缓存注解:@Cacheable 支出spel表达式使用方式如:@Cacheable(value = "users", key = #user.age@CacheEvict  从缓存存储器中删除一个值@CachePut  与@Cacheable 注解相同工作,返回值放入缓存。用返回值更新缓存存储器缓存管理器的实现:SimpleCacheManager 可采用Concur

2016-08-15 22:15:05 268

转载 zookeeper分布式锁

zk简单示例代码:http://zookeeper.apache.org/doc/r3.4.6/javaExample.html分布式锁思路:进程需要访问共享资源时,在zk创建/lock(永久节点)创建一个sequence类型的子节点称为thisPath,当thisPath 是所有节点中最小时,获得锁,可以访问共享资源,访问完成后,删除当前节点,由新的最小节点获取锁。若不是最小节点,找

2016-08-14 21:21:02 597

原创 zookeeper安装

进入目录:/home/work/zookeeper-3.5.2-alpha/conf创建zoo.cfgtickTime=2000  dataDir=/home/work/www/zookeeper/data  dataLogDir=/home/work/www/zookeeper/logsinitLimit=5syncLimit=2clientPort=4180

2016-08-14 17:49:19 237

转载 mysql--straight_join

在oracle中可以指定的表连接的hint有很多:ordered hint 指示oracle按照from关键字后的表顺序来进行连接;leading hint 指示查询优化器使用指定的表作为连接的首表,即驱动表;use_nl hint指示查询优化器使用nested loops方式连接指定表和其他行源,并且将强制指定表作为inner表。 在mysql中就有之对应的straight_join,由

2016-08-07 16:37:01 372

原创 mysql-join优化

在介绍join 语句的优化思路之前,首先要理解在MySQL 中是如何实现join 的。只要理解了其实现原理,优化就比较简单了。在MySQL 中,只有一种join 算法,就是nested loop join,它没有很多其他数据库提供的hash Join,也没有sort merge join。nested loop join 实际上就是通过驱动表的结果集作为循环基础数据,然后将该结果集

2016-08-07 16:35:37 237

原创 mysql优化

注意:如果columnX对应多个值,如下面语句就无法利用索引来实现order by的优化SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] IN ([value1],[value2],…) ORDER BY[sort];3、WHERE+ 多个字段ORDER BYSELECT * FROM [table] WHER

2016-08-07 16:08:25 149

原创 btrace

@BTrace public class App { @TLS private static long startTime = 0; @OnMethod(clazz = "com.rrc.finance.service.FluidService", method = "queryRuntimeTasks") public static void startMethod() {

2016-08-07 15:47:26 197

原创 mysql

using 用法SELECT * FROM table1   JOIN table2 ON table1.id = table2.id  相当于SELECT * FROM table1   JOIN table2 USING(id)index merageMySQL优化器如果发现可以使用多个索引查找后的交集/并集定位数据,那么MySQL优化器就会尝试inde

2016-08-07 12:27:12 160

原创 内存监控

生成dump文件:jmap -dump:format=b,file=HeapDump.bin sage: jstat -help|-options       jstat - [-t] [-h] [ []] 参数解释:Options — 选项,我们一般使用 -gcutil 查看gc情况vmid    — VM的进程号,即当前运行的java进程号

2016-08-03 12:26:02 192

原创 mysql缓存

mysql> SHOW VARIABLES LIKE 'query%';+------------------------------+---------+| Variable_name | Value |+------------------------------+---------+| query_alloc_block_size | 8192 || query_cache_lim

2016-07-29 17:46:18 226

原创 linux 开通白名单

查看打开端口  netstat -anp关闭端口号:iptables -A INPUT -p tcp --drop 端口号 -j DROP                 iptables -A OUTPUT -p tcp --dport 端口号 -j DROP打开端口号:iptables -A INPUT -ptcp --dport  端口号 -j ACCEPT

2016-06-27 12:32:49 2274

原创 远程debug

JVM启动参数 -Xdebug -Xrunjdwp:transport=dt_socket,address=2424,server=y,suspend=n

2016-06-23 13:31:09 183

转载 java lock 与 synchronized

1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候     线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定,     如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断     如果 使用ReentrantLock,如果A不释放,可以使B在

2016-06-13 23:14:08 167

原创 查看端口占用

netstat -anp|grep 8080

2016-06-02 18:25:46 172

MFC 深入浅出

MFC 深入浅出。此书很经典值得学习!!

2012-04-14

空空如也

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

TA关注的人

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