自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (2)
  • 问答 (3)
  • 收藏
  • 关注

转载 mysql explain执行计划详解

 1)、id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询。 2)、select_type列常见的有:A:simple:表示不需要union操作或者不包含子查询的简单select查询。有连接查询时,外层的查询为simple,且只有一个B:primary:一个需要union操作或者含有子查询的select,位于最外层的单位...

2018-05-23 23:47:59 216

原创 JVM的指令重排

JVM在执行代码的时候,在不影响最终结果的基础上,可能性的会对指令进行重排 。例如 : a = 2 ,b = a+3, c=5 . 重排后,可能是 :a = 2 , c=5,b = a+3。当然上面这个例子看不出什么影响 。再来看看 new Object()的例子 。在JVM中,new Object()并不属于原子操作,对于 Object a = new Object(),会分为3条指令1、在内存...

2018-05-20 12:17:06 618

原创 JVM内存中的主内存与工作内存即CAS

每个线程有自己的工作空间,称之为栈,而每个栈元素(栈帧)对应一个方法,这个栈帧里边又会分为局部变量、计数器等等区域。每次new的时候,对象会分配在堆,也就是主内存,线程是通过拷贝副本的方式把变量从主内存到工作内存。至于volatile,他是为了解决可见性的问题,刚才说了线程会拷贝副本,那么假如多个线程同时操作一个对象,他们把副本值更新回主内存的时候就会有线程安全问题,而用volatile修饰的变量...

2018-05-20 11:44:58 1923 3

转载 Linux查看对应的线程进程CPU问题

转摘地址:https://www.cnblogs.com/ghost240/p/3863774.html多线程程序 怎样查看每个线程的cpu占用可以用下面的命令将 cpu 占用率高的线程找出来: ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu这个命令首先指定参数'H',显示线程相关的信息,格式输出中包含:user,pid,ppid,tid,...

2018-05-19 11:30:45 2220

原创 职责链(Chain of responsibility)模式

职责链模式:       书上说 : 职责链模式的目的是通过给予多个对象处理请求的机会,以解除请求的发送者与接收者之间的耦合 ;        而我说 :职责链模式的目的是体现请求的处理这之间的递进关系。例子 :      公司来放一个客人 , 接待者则是前台 。 如果只是问路等 ,前台即可解决 ;如果是谈生意,则会交给一个业务员 ; 如果谈的是大生意,业务员处理不了,

2017-11-29 11:21:06 208

原创 调停者模式

调停者模式 :       调停者模式的目的就是通过定义一个对象,封装一组对象的交互,从而降低对象间的耦合度,避免了对象间的显示交互,对于对象间的关系拓展有很好的作用。例子 :     需求 :创建一个广告,广告中可以嵌入多个视频,多个图片 。     模型设计 : 广告表 、图片表、视频表 、广告素材(图片、视频)关系表 (或者分为2个表)     映射java对

2017-11-29 10:54:04 281

转载 spring AOP切面表达式详解

在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点"例如定义切入点表达式  execution (* com.sample.service.impl..*.*(..))execution()是最常用的切点函数,其语法如下所示: 整个表达式可以分为五个部分: 1、execution(): 表达式主体。

2017-10-09 14:09:57 27063 3

转载 大数据平台搭建(hadoop+spark)

大数据平台搭建(hadoop+spark)标签:大数据 发布于 2017-08-15 11:51:13一.基本信息1. 服务器基本信息主机名ip地址安装服务spark-master172.16.200.81jdk、hadoop、spark、scalaspark-slave01172.16.200.82jdk、hadoo

2017-08-16 10:35:04 392

转载 sybase 主键自动增长

CREATE TABLE peng_user(  userId int   identity,  userName varchar(10) NULL,  password  varchar(10) NULL,  comment  varchar(10) NULL,  constraint pk_peng_user PRIMARY KEY (userId))with iden

2017-07-14 09:29:20 480

原创 代理模式

代理模式 代理模式 ,  即在某些时刻,某些场景下 ,原来的对象不足以应付时候,使用一个代理类来代替该对象 应用场景a、页面图片懒加载 ,当图片还未完全加载出来的时候 ,用一张临时小图片代替b、程序加载缓冲 ,用一个GIF代替位置c、动态代理实现切面编程JDK动态代理实现 示例 : 具体原理分析请看上文 public static interfa

2017-07-12 14:38:44 260

转载 CGLIB介绍与原理

原文地址  :  http://blog.csdn.net/zghwaicsdn/article/details/50957474CGLIB介绍与原理(部分节选自网络)一、什么是CGLIB?CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理,但当要代理的类没有实现接口或者

2017-07-12 10:57:32 800

转载 JDK 动态代理实现原理

原文地址  : http://rejoy.iteye.com/blog/1627405请大家去看原文地址 ,原文地址编码格式比这里要好之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。    废话不多说了,先来看一下JDK的动态

2017-07-12 09:29:27 276

原创 Log4j 4种日志文件生成方式

参考了某位兄弟的代码, 但是使用了之后,回过头来写博客忘记原地址,勿怪。Log4j  4种日志文件生成方式方式1 : 按天生成日志  org.apache.log4j.DailyRollingFileAppender (log4j.jar 自带)方式2 : 按大小生成日志   org.apache.log4j.RollingFileAppender (log4j.jar  自带)

2017-06-30 10:24:27 1900

原创 观察者(Observer)模式

观察者(Observer)模式当某被观察对象发生变化时候,观察它的对象都能及时做出相应的反应应用场景:定义一对多的依赖关系,当其中的一发生变化的时候,其中的多能够及时做出相应的反应场景A:如上一篇讲的,客户端的多个事件都关注着网络连接状态,当网络连接状态OK的时候,多个事件都能够及时继续执行场景B:生产者与消费者情景 。多个消费者都要竞争一个产品。但是目前产品缺货,当产

2017-06-20 16:36:24 324

原创 单例模式

单例(Singleton)模式     单例模式,是指一个类有且仅有一个实例,并且提供一个全局访问点。懒汉式 、饿汉式、双重判定锁

2017-06-20 15:03:28 247

转载 40个Java多线程问题总结

前言个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可

2017-05-04 16:33:21 204

转载 Mysql PARTITION 数据表分区技术

在这一章节里, 我们来了解下 MySQL 中的分区技术 (RANGE, LIST, HASH) Mysql 的分区技术与水平分表有点类似, 但是它是在逻辑层进行的水平分表, 对于应用而言它还是一张表, 换句话说: 分区不是实际真正的对一张表进行拆分,分区之后表还是一个表,它是把存储文件进行拆分。 在 Mysql 5.1(后) 有了几种分区类型: RANG

2017-05-03 16:45:51 406

原创 Array、ArrayList、Vector、LinkedList

ArrayList : 不固定大小的数据,初始化默认size=0,第一次插入的时候会增大defaultSize=10,后续每次加多少就扩充多大。 当然,删除的时候 ,size也会相应减小。非线程安全, 但是自身会有安全检测, 需要内存的连续空间 ,适合遍历查询,不适合插入和删除操作

2017-05-03 16:24:56 261

原创 Mysql 闲杂问题聚集

1、where 条件是 从左向右执行吗 ?       答:是的  。所有过滤较多数据的条件应该写在左边 。 Oracle 刚好相反 2、如何进行汉语排序 ?      答: mysql :select * from Table order by convert(column USING gbk) COLLATE gbk_chinese_ci asc

2017-05-02 16:53:41 270

原创 Mysql DBMS执行SELECT 顺序

SQLSelect语句的执行步骤【从DBMS实现者角度,这个对我们用户意义不大】:   1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。   2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。   3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。   4)表达式转换...

2017-05-02 15:44:00 449

原创 Mysql select查询执行过程

SQL Select语句完整的执行顺序:        1、from 子句组装来自不同表的数据,包括join 、left join ; 全字段组装       2、where  子句基于指定的条件对记录进行筛选       3、group by  子句将数据划分为多个分组       4、执行select 中的聚促函数,例如count(*),Max(),min()函数 

2017-05-02 15:41:37 1005

转载 Mysql 函数

原文地址 : http://www.cnblogs.com/kissdodog/p/4168721.htmlMySQL数据库提供了很多函数包括:数学函数;字符串函数;日期和时间函数;条件判断函数;系统信息函数;加密函数;格式化函数;一、数学函数  数学函数主要用于处理数字,包括整型、浮点数等。函数作用ABS(x)返回x的绝对值  

2017-05-02 13:54:04 192

转载 浅析Mysql InnoDB存储引擎事务原理

一 事务的分类1.1 扁平事务要么都执行,要么都回滚,InnoDB最常用,最常见的事务.1.2 带有保存点的偏平事务事务的操作过程有 begin, A, B, C, D, commit 几个过程,那么带有保存点的扁平事务过程大致如下:begin--> 隐含保存点1(save work 1)-->A-->B(save work2)-->C-->D(rollback work2) 

2017-05-02 11:19:57 312

转载 Mysql 通过锁对事务的实现

MVCC(Multi-Version Concurrency Control) 多版本并发控制MVCC的实现,是通过保存数据在某个时间点的快照来实现的. InnoDB的MVCC是通过在每行记录后面保存2个隐藏的列来实现的,一列保存了行的创建时间,一列保存了行的过期时间(或删除时间).但它们都存储的是系统版本号MVCC最大的作用是:  实现了非阻塞的读操作,写操作也只锁定了必要的行.

2017-05-02 11:17:04 301

转载 数据库事务隔离级别

本文系转载,原文地址:http://singo107.iteye.com/blog/1175084数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现    ×: 不会出现

2017-05-02 10:21:17 206

转载 浅谈MySQL中优化sql语句查询常用的30种方法

原文链接 : http://www.jb51.net/article/39221.htm 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select

2017-05-02 10:02:02 302

原创 使用nmon检测JVM运行情况

1、下载工具包 nmon_linux_14g.tar.gz  下载地址http://download.csdn.net/download/xubo_ob/9823700;  包里面包含了 各个linux环境下的检测工具2、按照nmon , 用的是红旗linux,32位的 。 过程如下        1)用root用户登录到系统中;  2)建目录:#mkdir /usr/test

2017-04-24 14:54:49 1089

转载 spring bean 创建

原地址 : http://www.cnblogs.com/fyx158497308/p/3977391.html一、首先我们来看ClassPathXmlApplicationContext类体系结构从该继承体系可以看出:1.       BeanFactory 是一个 bean 工厂的最基本定义,里面包含了一个 bean 工厂的几个最基本的方 法,getBe

2017-04-01 15:41:08 234

原创 Java clone()方法详解

Object.clone()方法为影子(浅)克隆,例如将对象A克隆出个B, * 那么先根据A的大小分配B的空间,创建B对象,然后遍历A的域对象进行克隆。 * 克隆域对象时,如果是基本类型则重新创建对象然后赋值,包括String类型 * 对于非基本类型,则是复制引用,引用指向原域对象,修改其中一个另外一个就会改变 * * 至于深度克隆,这是将 原来对象的属性和引用属性全部复制一份

2017-01-05 16:28:59 389

原创 线程学习四:volatile 关键字

很显然,volatile关键字修饰的对象修改后,都能在任何线程中立马拿到。但是你是否注意到了volatile使用上面的2不能1必须呢?1、不能将volatile使用到频繁更新的值上面  如下图演示 public static void main(String args[]) throws InterruptedException { for (int i = 0; i <

2016-12-06 18:13:47 210

转载 如何提升网页加载性能

摘自 https://github.com/xitu/gold-miner/blob/master/TODO/building-a-shop-with-sub-second-page-loads-lessons-learned.md原文地址:Building a Shop with Sub-Second Page Loads: Lessons Learned原文作者:E

2016-11-15 21:07:37 2529

转载 Spring事务配置

摘自  http://www.cnblogs.com/newsouls/p/3988216.htmlSpring事务管理Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作。今天一起学习一下Spring的事务管理。Spring的事务管理分为声明式跟编程式。声明式就是在Spring的配置文件中进行相关配置;编程式就是用注解的方式写到代码里。下面先说声明式:

2016-11-03 16:33:59 244

原创 需要分OS类别处理的代码

1、获取根路径/** * getMainHome 获取工程目录 * @return */ public static synchronized String getMainHome() { String MAINHOME = System.getProperty("user.dir"); if (MAINHOME.startsWith("/workspace")) {

2016-11-03 14:09:43 239

转载 内存分析工具

摘自  : http://www.cnblogs.com/java-class/archive/2013/04/18/3027884.html   1:gc日志输出    在jvm启动参数中加入 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimestamps -XX:+PrintGCApplicationStopedTime,jvm将

2016-10-30 12:35:31 239

转载 通过GC日志分析程序性能与内存泄漏

摘自 : http://blog.csdn.net/huangzhaoyang2009/article/details/11860757JVM的GC日志的主要参数包括如下几个:-XX:+PrintGC 输出GC日志-XX:+PrintGCDetails 输出GC的详细日志-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)-

2016-10-30 11:09:46 1129

原创 log4j 根据日志级别输出到指定文件中

log4j的使用

2016-10-29 20:34:01 1312

原创 JVM学习

jvm内存分配回收机制,类加载机制,JVM运行时参数配置 应有尽有

2016-10-29 20:05:08 504

原创 线程学习三:线程池ThreadPoolExecutor 与 Executors

/**     * Creates a new {@code ThreadPoolExecutor} with the given initial     * parameters.     *     * @param corePoolSize the number of threads to keep in the pool, even     *        if they ar

2016-10-18 21:29:56 960

原创 线程学习二:线程池执行Runnable与Callable

1、了解线程池几个类之间的关系 (结合图看后面的分析)            FutureTask  继承 RunnableFuture , RunnableFuture 实现接口 Runnable2、分析常用调用线程池代码(以下称为代码A)      Executo

2016-10-14 16:44:25 2582

原创 线程学习一:线程基础

2、 JVM 线程与操作系统的线程啥关系 ? 先理解 线程模型 内核级别线程 内核级别线程(Kernel-level threading)是指用户进程通过内核提供API创建的线程。这样用户进程里的线程和内核调度的线程是1:1对应的。这也就最简单的线程管理方法。

2016-10-14 11:01:31 295

nmon分析工具

nmon内存分析工具,excel分析,下载无需安装,点击即用

2017-04-24

nmon_linux_14g.tar.gz

使用nmon,检测JVM运行情况,包括CPU、内存、进程等

2017-04-24

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

TA关注的人

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