- 博客(374)
- 资源 (6)
- 收藏
- 关注
原创 使用AOP统计方法的执行时间
currentMis(),然后得到方法的执行时间。这种方式的缺点是方法多会写很多耦合代码,而且不可重用,测试完需要删掉。 另一种使用AOP监控方法的前后点,监控方法的执行时间,比较优雅且无侵入。可行的方案之一是使用 Around Advice, 环绕通知可在方法执行前后做一些操作。 AOP,面向切面编程,Aspect Oriented Programming, 可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。 3. AOP
2017-06-08 21:26:35 2471
原创 线上故障排查----高内存占用
; jmap.log 比如查看24102进程的存活对象:jmap -histo:live 24102 | more例如:$ /usr/java/default/bin/jmap -histo:live 8763 > ~/jmap.log 3. 将当前Java进程的内存占用情况导出来,方便用专门的内存分析工具(例如:MAT)来分析。jmap -dump:live,format=b,file=jmap.log [pid]--dump堆到文件,l
2017-04-10 20:31:13 154
原创 Java class文件
ss:cafe babe 0000 0033 0017 0a00 0300 14070015 0700 1601 0006 3c69 6e69 743e 01000328 2956 0100 0443 6f64 6501 000f 4c696e65 4e75 6d62 6572 5461 626c 6501 00124c6f 6361 6c56 6172 6961 626c 6554 61626c65 0100 0474 6869 7301 0021 4c63 6f6d2f77
2016-12-17 23:08:52 132
原创 Java类加载机制---类的初始化和卸载
情形有:1. 使用new关健字实例化对象2. 使用类的静态变量3. 使用类的静态方法4. 使用反射机制调用上述操作5. 程序入口 (调用main方法) 初始化顺序是:静态块 ---> 非静态块 ---> 构造函数。 如果有超类,则初始化顺序是:父类静态块--->子类静态块--->父类非静态块--->父类构造函数--->子类非静态块--->子类构造函数
2016-12-09 14:25:39 341
原创 反射机制之---Class对象
a对象都是基于Class信息生成新的对象。 众所周知,Class信息存在方法区(Method Area),或者称为永久代(Perm区),Class对象生成后和其他Java对象一样,也存放在堆(Heap)里。 获取Class对象的几路方式:1. Class类的静态方法: Class.forName("${className}"), className应该是全称,即包括Class所在的package名。2. Java对象的getClass方法,此方法属于Object类
2016-12-01 23:59:45 109
原创 设计模式之---策略模式
谋,都是一种策略。需要当事者根据具体的情形,去做选择变成什么和使用哪一个计谋。 1. 策略模式类图 2. 策略模式的组成:抽象策略基类、策略实现类、调用者。基类中有抽象的算法,实现类实现具体和算法行为,调用者类持有策略接口的引用,可以灵活调用不同实现类的策略。 3. design example以外出旅行为例,有各种不同的旅行方式。策略抽象基类/** * 策略抽象基类, 具有抽象行为接口 */public interface TravelStra
2016-11-19 01:20:29 107
原创 MySql的事务隔离级别
是将数据从一种状态改变到另一种状态。事务隔离级别是事务看别的事务修改的数据的可见程度。 事务的可见性脏读 (Dirty read): 一个事务读取到另一个事务还没有提交的数据,又叫无效数据读取。Example: 事务一对数据进行了增删改等写操作,但还未提交,事务二可以读取到事务一还未提交的数据。这时候事务一Rollback了,事务二读到的就是脏数据。 不可重复读 (Non-repeatable read):在同一个事务内的两次相同的查询,返回不同的数据。Example: 在同
2016-10-26 00:56:15 119
原创 Dubbo与Spring的配合使用
endency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version></dependen
2016-02-21 22:44:21 176
原创 使用encode和decode来处理参数传递
,直接传递,会导致特殊符号不能解析,中文乱码等问题。 对此一个解决方案就是对要传递的参数,做encode和decode处理。encode和decode使用方法:JavaScript:encodeURIComponent(URIString);decodeURIComponent(encodedURIString); Java:java.net.URLEncoder.encode(str, "UTF-8");java.net.URLDecoder.d
2015-11-16 17:29:31 1241
原创 SSH无密码登录Linux服务器
do mv id_rsa.pub authorized_keys 3. 目录机器修改目录权限:$ chmod 700 ~/.ssh$ chmod 600 ~/.ssh/authorized_keys 4. 执行完这些步骤后, 就可以在源机器上无密码登录Linux服务器:ssh -t [email protected] -p 50022
2015-11-06 14:43:27 92
原创 Linux Shell启动多个Tomcat
、tomcat3、tomcat4 四个tomcat实例。tomcat实例的命名规则: tomcat${i} 1. 新建一个shell文件命名为 tomcat.sh#!/bin/bash # Apache Tomcat daemon # # chkconfig: 345 10 10 # description: Apache Tomcat daemon # # processname: tomcat export JAVA_HOME=/u
2015-09-20 09:23:41 525
原创 Maven配置文件
.50:8081/nexus/content/groups/public</url><!--下载release版本的jar包,默认是开启的--><releases><enabled>true</enabled></releases><!--下载snapshots版本的jar包,默认是关闭的-->&a
2015-09-07 09:23:40 72
原创 Linux以服务方式启动单个tomcat
ocal目录:[wumart@dmallsol10007 local]$ sudo mv ~/apache-tomcat-8.0.26 /usr/local/tomcat 4. 解压tomcattar -xzvf apache-tomcat-8.0.26.tar.gz tomcat的位置: /usr/local/ 5. 在 /etc/init.d下创建tomcat文件$sudo touch tomcat在tomcat文件写入内容:#!/bin/bas
2015-08-27 11:24:16 136
原创 观察者模式和发布/订阅模式的区别
观察者模式的角色为观察者(observer)和主题(subject)对象,observer需要观察subject时,需先到subject里面进行注册(subject对象持有observer对象的集合句柄),然后,当subject对象的内部状态发生变化时,把这个变化通知所有的观察者。 发布、订阅模式的角色为发布者(publisher)和订阅者(subscriber),pub和sub之间没有直接的耦合关系,pub发布一个消息事件(event),sub订阅感兴趣的消息
2015-08-02 17:19:16 130
原创 Sonar的安装与设置
具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。 1. 配置数据库创建sonar数据库create database sonar default charset=utf8; 配置 sonar 用户create user 'sonar' identified by 'sonar123';grant all
2015-07-25 17:21:17 263
原创 win7/8使用curl
还需要安装SSL的支持包 2. 可以给Windows增加curl命令的环境变量,增加CURL_HOME环境变量,给PATH环境变量加上%CURL_HOME%; 这样就可以在命令窗口的任意目录下使用curl命令了。 3. post 请求:curl -d "leaderboard_id=7778a8143f111272&score=19&app_key=8d49f16fe034b98b&_test_user=test
2015-07-17 23:05:13 442
原创 动态代理之CGLIB
flect.Proxy 类更强的在于它不仅可以接管接口实现类的方法,还可以接管普通类的方法.CGLib 的底层是Java字节码操作框架 —— ASM。 cglib 组织架构图 cglib是针对类来实现代理的,原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预
2015-07-17 17:35:46 69
原创 同步、异步、阻塞、非阻塞的区别
个任务或事件必须顺序执行,前一个任务没执行完,后一行任务就不能进行。实现:常见的顺序编程, 串行执行场景:B/S架构的HTTP请求-响应模式、OA流程。 异步:多个任务或事情可以并行执行,任意一个任务的执行不会阻塞另外一个任务的执行。异步调用完成后,通过通知或回调将结果传递给接收者。异步常用于操作时间比较耗时的场合,为了不block当前的工作流程,而采用异步。实现:新建一个线程,或把任务放到消息队列中由消费者处理、并行处理场景:发短信、写信、写邮件、发微信,网上办电信业务(比如申请信
2015-07-15 14:32:55 186
原创 MongoDB 介绍
或IOS平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB,64位平台则非常大。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 mongodb中有三种元素:数据库(database),
2015-07-14 11:30:36 121
原创 NoSql 数据库的特性比较
1. 数据模型作为Key-value型数据库,Redis也提供了键(Key)和值(Value)的映射关系。除了常规的数值或字符串,Redis的键值还可以是以下形式之一:Lists (列表)Sets (集合)Sorted sets (有序集合)Hashes (哈希表)键值的数据类型决定了该键值支持的操作。Redis支持诸如列表、集合或有序集合的交集、并集、差集等高级原子操作;同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。 2. 持久化Redis通
2015-07-10 21:48:55 124
win7安装MongoDB服务
er\mongodb, 在D:\server\mongodb下创建db目录和logs目录,用来存数据文件和日志。 3. 新建环境变量mongodb_home,值为E:\server\mongodb,在Path里添加 %mongodb_home%\bin; 4. 在%mongodb_home%目录创建mongo.conf文件,配置dbpath和logpath信息:dbpath = E:\server\mongodb\dblogpath = E:\server\mongodb\log
2015-07-10 14:23:49 211
Maven的settings.xml配置
e}/.m2/settings.xml前者又被叫做全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi=&
2015-07-09 14:28:04 122
原创 Git排除目录
方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用情景不一样。 1. 针对单一工程排除文件这种方式会让这个工程的所有修改者在克隆代码的同时,也能克隆到过滤规则,而不用自己再写一份,这就能保证所有修改者应用的都是同一份规则,而不是张三自己有一套过滤规则,李四又使用另一套过滤规则。配置步骤如下:在工程根目录下创建 .gitignore文件,将要排除的文件或目录 写到.gitignore这个文件中,有两种写入方法:(a) 使用命令行增加排除文件(windows平台)排除以.cla
2015-07-06 23:22:51 2862
原创 win7下nginx和php的配置
2. 配置# java用8080端口做应用服务器,nginx反向代理到这个端口即可php用9000端口作为fastcgi的服务端口,nginx反向代理到这个端口即可处理相关应用nginx配置location / { root D:\phpdir\xiuno_bbs\upload_me; index index.php index.html index.htm; } // PHP的反向代理设置, 通过fastcgi解析PHP, 当 Ngin
2015-07-06 22:58:05 98
原创 Nginx 同一主机部署多个应用
hosts目录,用以放置vhost文件。mkdir vhosts 2. 修改nginx.conf的配置, 在http节点增加下面内容设置,用来包含vhosts里的配置文件# vhosts files include /usr/local/nginx/vhosts/*; 3. 在vhosts下创建testwp.com.conf和duwiki.com.conf文件, 注意:这里的配置文件以conf结尾testwp.com.confserver{
2015-07-05 17:19:06 1173
原创 php常见错误
00", host: "127.0.0.1"原因:php-fpm没启动,不能把请求解析到php文件。解决方法:启动php-fpm,在终端运行命令: sudo php-fpm 2. FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: open(/var/tmp//sess_bbdipplspnn6ee7tkj1ce03oj3, O_RDWR) failed: Permission
2015-07-05 01:07:56 232
powerdesigner使用手册
2008-03-24
Spring+Hibernate完整分页
2007-12-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人