自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 java性能调优概览

java性能优化分层:应用层:理解代码逻辑,通过java线程栈定位有问题代码行;数据库层:分析sql,定位死锁;框架层:懂源代码,理解框架机制jvm层:了解gc类型和工作机制,了解jvm参数使用性能诊断工具os层面和java应用层面os诊断:cpu,memory,iocpu诊断:关注点:平均负载,cpu使用率,上下文切换次数命令:topt

2017-10-16 11:11:29 254

原创 linux-command

问题排查常用linux命令tail head:tail -f  #监听写入tail -100  #查看末尾100行head -100  #查看开头100行tail -100fgrep:grep keyWord foo.txt #在文件中查找keyWord行, 可以跟多个文件grep keyWord ./  -r  #在目录下查找包含keyWord的行,目录中

2017-10-16 11:10:55 906

原创 jdk--ClassLoader

ClassLoader是用来将java字节码加载到java虚拟机中。java.lnag.ClassLoader分为系统提供的classloader和开发人员提供的其中:bootstrap class loader 加载java核心库,不继承classloader,extensions class loader加载java扩展库,systemn class loader 根据classp

2017-10-09 16:30:26 319

原创 jdk-accessController

在很多jdk源码中看到AccessController.doPrivileged,一直不知道这个类有什么作用,这次看common-logging源码时,加载classloader时又看到这个类,遂决定看下这个类的作用。简单来说,允许一个类实例的买吗,通知这个AccessController,不用进行checkPermission检查。复杂来讲要扯到java的安全模型:https://www

2017-10-09 16:29:50 453

原创 jdk--Class

1、getDeclared* 与get* 的区别:以getDeclaredMethods getMethods为例getDeclaredMethods 返回自身类所有公用和私有方法,但不包括继承方法getMethods 返回该类所有公用方法,包括继承类的公用方法getDeclaredAnnotations 返回直接存在于此元素上所有注解,忽略继承的注解getAnnotati

2017-10-09 16:29:11 224

原创 jdk源码--序列化

Serialization 序列化是将java对象转换成字节序列的过程,反序列化就是将这些字节重建成对象的过程起因:分布式对象经常需要将对象从网络的一端传递到另一端。如何序列化一个对象这个就要用到ObjectOutputStream,ObjectInputStream后面看下这个源码。java序列化算法:先输出对象类的元数据递归输出类的超类元数据从最

2017-10-09 16:28:10 345

原创 jdk源码--范型

范型编程通过参数化的方式将数据处理与数据类型解耦,通过对数据类型进行约束来保证数据处理正确性。java范型编译成字节码时,类型会在代码中被擦除,记录在Class文件的attribute域内,而在使用范型处做类型检查和类型转换。擦除规则为保留上界。 擦除后 为Object, 擦除后为A, 擦除后变为Object在定义包含范型的类或者方法时,会使用到范型字母,E或者其他乱七八糟的

2017-10-09 16:27:07 326

原创 jvm--重载重写原理

一个重载的栗子:class Parent ...class Child extends Parent ...class Overload{public static void overload(Parent p) ...public static void overload(Child c) ...public static void main() {Parent p

2017-10-09 16:25:57 636

原创 ibatis源码

https://www.ibm.com/developerworks/cn/java/j-lo-ibatis-principle/http://blog.csdn.net/gaolu/article/details/53415420没办法不得不仔细看看数据库内部的调用情况了。总体来说ibatis内部功能分为两大类吧;1、sqlmapclient,用于处理参数映射,结果映射,

2017-10-09 16:24:50 489

原创 git原理和使用

1、HEAD是什么?git中每提交一次,会产生一个commitId,是一个hash值HEAD代表的是当前版本,也就是最新一次提交的commitId,上一个版本是HEAD^,上上个版本是HEAD^^,上100个版本HEAD~其实HEAD只是一个指针,指向当前版本。在使用reset命令进行版本回退或者前进(可以前进,只要有commitId),只是HEAD指针变化同时更新工作区。

2017-10-09 16:23:27 588

原创 日志学习

commons-logging(interface) + log4j(impl)slf4j(interface) + logback(impl)slf4j + log4jcommons-logging是一个接口包使用日志时,经常这样使用:private final static Log log = LogFactory.getLog(xxx.class);内部代码结构很

2017-10-09 16:21:51 366

原创 maven学习--杂

请直接访问maven网站查询用法1 生成jar包使用默认的mvn archetype:generate即可如何将依赖打包,并生成可执行文件: maven-assembly-plugin 3.0.0

2017-10-09 15:34:51 261

原创 jdk源码分析--Enum

enum可以定义枚举值,我们通过public enum TestEnum{...} 这样的语句定义一个枚举类型。enum是java的一个保留字,我们似乎没有找到enum的实现代码。不过我们可以通过反编译一个自己定义的枚举类型窥其一斑。public enum TestEnum { ONE("one", "1"); private String code; private St

2017-08-12 10:59:42 598

原创 jdk源码分析--了解class文件

class文件结构其实一般来说,如果仅仅是读一些常用类库的源代码的话,是用不到了解字节码、class文件结构等相关内容的,不过有些java内部的实现机制需要经过反编译之后我们才能够知道原理,反编译后的代码去掉了一些表层的语法,更容易看到java底层的实现原理,而要看懂反编译的代码就需要了解一些字节码相关知识。这部分知识在 深入了解java虚拟机 一书中有详细的解释。class文件是以8位(BYTE)

2017-08-12 10:43:32 492

原创 jdk8源码解析系列--前言

jdk8源码解析系列–前言写这篇文章的时候,我也深深的思考过一个问题:我真的有必要研读jdk源代码吗?我知道类库怎么使用,在什么情况下使用不就足够了?假如你吃了一个鸡蛋觉得很好,何必一定要去找下这只蛋的鸡呢?阅读jdk源码,能够让你更深入了解java类库中各种API的实现机理,了解原理后再去分析如何使用可以达到提纲挈领的效果;不懂基本原理的话,在分析排查问题时,也很难弄清楚根本原因出在哪里;jdk类

2017-08-12 10:40:22 1726 1

原创 java动态代理机制

spring有两大思想,一个是ioc,另一个是aop。其中aop的原理就是java的动态代理机制。动态代理相关两个重要的类和接口:类Proxy,接口InvocationHandler1、每一个动态代理类(代理者)都要事先InvocationHandler这个接口,当通过代理者调用一个方法时,这个调用都会变为有InvocationHandler这个接口的invoke方法来调用。该接口也只有这

2016-04-05 14:16:14 237

原创 spring事务管理

关于事务:逻辑上的一组操作,要么全部成功,要么全部失败。特性:原子性:不可分割的工作单位,都发生或都不发生一致性:事务前后数据完整性要保持一致,不会丢数据隔离性:多个用户并发访问数据库,用户之间互不干扰,通过设置事务隔离级别来达到持久性:事务提交后,对数据库数据的改变时永久性的spring事务接口:PlatformTransactionManager 事务管

2016-04-05 14:14:45 410

原创 关于restful风格

restful风格是针对请求url来讲的:简而言之,抛弃queryString,所有的请求都是感觉是在请求一个资源利用http的四种方法,完成crud操作,对应关系为:POST-create, GET-read, PUT-update, DELETE-deletePOST http://hostname/people 创建wcw记录GET http://hostname

2016-04-05 14:13:42 433

原创 spring事务管理

关于事务:逻辑上的一组操作,要么全部成功,要么全部失败。特性:原子性:不可分割的工作单位,都发生或都不发生一致性:事务前后数据完整性要保持一致,不会丢数据隔离性:多个用户并发访问数据库,用户之间互不干扰,通过设置事务隔离级别来达到持久性:事务提交后,对数据库数据的改变时永久性的spring事务接口:PlatformTransactionManager 事务管

2016-04-05 14:10:21 271

原创 结合策略模式和HashMap摆脱if else

在代码中使用过多的if else进行逻辑判断比较影响阅读,更重要的是,如果增加或减少一种逻辑情况就需要修改if else的分支,维护性差。if(type == 1) do1()else if(type == 2) do2()else...if else逻辑两个关键点:1、是什么条件;2、做什么事策略模式是通过接口抽象这一系列动作,提供统一的行为模式。用来解决做什么事。map

2015-06-04 17:46:25 2177

原创 关于web请求中的编码解码问题

以下编解码都是针对内容包含中文的情况,否则也不需要编解码 :)1、URL编解码url例子:http://localhost:80/contextPath/servletPath/pathInfo?queryStringURL中文主要会出现在pathInfo和queryString中,这两部分的编解码是不同的。a、pathInfo:编码--浏览器端,默认utf-8,IE在选项

2015-04-28 16:15:20 1135

空空如也

空空如也

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

TA关注的人

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