- 浏览: 289588 次
-
最新评论
-
labreeze:
szq80140 写道@PostConstruct 也可以试了 ...
NPE联想到的spring bean的生命周期 -
szq80140:
@PostConstruct 也可以
NPE联想到的spring bean的生命周期 -
chenaini119:
>>> inter interceptor ...
Java之Interceptor和Filter -
labreeze:
renzhengzhi 写道实际是因为Exception是Th ...
Log4j 打印堆栈信息 -
renzhengzhi:
实际是因为Exception是Throwable的子类,而lo ...
Log4j 打印堆栈信息
文章列表
java并发浅析第一篇
- 博客分类:
- JAVA基础
1.java 内存模型,其实管理java内存模型和os操作内存可以类比。
java里面工作内存其实就是栈,主内存就是堆。
操作系统中存在可见性问题,解决方案即缓存一致性,比如两个cpu共同加载了一个内存块,A进行读,B进行写,则B会发送一个写广播,在cpu间进行通信,此时写的优先级会大于读的优先级,所以A收到写广播,会将缓存中的变量置为失效,重新从内存中加载该变量。
那么java线程之间同样存在可见性问题,线程A读取变量value,线程B写变量value,线程B写的变量不一定会立刻同步到主存,线程A读取变量不一定会从主存中读取变量。
2.java存在哪些并发 ...
本周感悟 2014.11.23
- 博客分类:
- 生活日记
发现自己真的是很喜欢买书啊,最近买了很多书,觉得很兴奋。
同时发现很多书自己根本没有深究,真实好读书,不求甚解啊。
记录下自己的感悟。
冥想的力量读了一点,说冥想可以让人快乐,但是自己目前感悟不是很深。后续有新的感悟再在这里补充吧。总的主旨是把注意力放在自己的呼吸上。第一点如果有时候自己走神了,请不要抱怨自己,请对自己宽容,告诉自己这个是正常的,只需要重新开始就好了,人生同样是这样,如果努力失败了,请不要抱怨自己,告诉自己只要重新开始就好了。第二点,感受自己的呼吸,感受自己的喜怒哀乐,就会把自己当成一个中心体,以旁观者的角度来感受这些喜怒哀乐,这样很多事情我们会更加理 ...
javap的简单理解
- 博客分类:
- JAVA基础
参照http://blog.csdn.net/junsure2012/article/details/7099222
java特种兵,深入理解jvm
了解一些javap的知识。
这里列举下我这里接触过的常用指令吧
xconst_n 将常量压入栈顶 如iconst_1,将int常量1压入栈顶
bipush n 将-128 到 127 压入栈顶
sipush n 将-32768 到32767压入栈顶
ldc v 将int,float,String产量压入栈顶
xload_n ...
keepalived的目的主要是为实现高可用,master和backup切换防止单点故障。
这里准备了两台服务器192.168.1.109 192.168.1.111
vip: 192.168.1.250 其中vip本身是不存在的是个虚拟的服务器。
一安装步骤
1.官网下载安装包 http://www.keepalived.org/download.html
2.解压安装包,安装需要的环境包,这一块可以在执行./configure --prefix=/usr/local/keepalived报错之后看缺少什么安装什么,我发现我只缺少openssl openssl ...
最近在搞keepalived,过程还是相当的纠结啊。
一 开始在用virtualbox里面的redhat发现这个redhat的os有很多问题啊,先吐槽下
1.虚拟机里的redhat和宿主主机ping 不同啊,但是虚拟机可以访问外网,后来从Nat转化为桥接就解决了。
建议还是仔细了解一下虚拟机联网的四种方式。
2.yum里面很多软件下载不了,切换了163的centos6的yum源,第一次搞,没有经验啊,这里会单独总结下。
3.尼玛redhat出现中文乱码。
如果是系统 ...
注意点:
1.删除默认JDK
删除默认openjdk
rpm -qa | grep openjdk
rpm -qa| grep openjdk|xargs rpm -e --nodeps
2.一般设置JAVA_HOME /usr/local/java/jdk1.8.0_20这个目录下
3.注意执行权限的问题jdk/bin目录的可执行权限
refer from http://jingyan.baidu.com/article/948f59242c231fd80ff5f9ec.html
最近在看深入理解nginx这本书,看完了前两章,先记录下心得吧,来个初步的直观体验。
一 准备步奏如下:
1.当然是先搞个linux服务器啦,但是发现自己搭建比较麻烦而且家里的话估计也就只能搞个虚拟机,后来用了阿里云的ecs,0元免费体验6个月,只需要花费100多块1M宽带的money,就能半年拥有自己的云服务器,感觉还是相当的划算。大家可以去阿里云的官网体验下http://www.aliyun.com/。
2.有了服务器当然就是装个ftp功能,傻瓜式操作见之前博客。
3.安装jdk这个也不说了。
...
安装主要参考一下博客
http://www.iteye.com/topic/591119
但是注意两点
1.复制的时候vsftpd.conf 注意window的换行符号问题
2.后面有些步骤不是安装ftp功能的必要步骤
export命令
export CLASSPATH=.:CLASSPATH:xxx-1.0.0-SNAPSHOT.jar
jstack -l pid
解析:
daemon后台进程
prio=10 优先级是10
tid在内存中的物理地址
nid线程id 16进制
WAITING 线程状态,可以是RUNNING ...
先简单介绍下常见dump 内存的两种方式
XX:+HeapDumpOnOutOfMemoryError
jmap -dump:format=b,file=testdump.bin <p ...
后续的JVM参数分析都在这里整理
#-Xss1m 设置每个线程的堆栈大小
#-XX:+UseParNewGC 设置年轻代为并行收集。
#-XX:+UseConcMarkSweepGC 设置并发收集器
#-XX:+CMSParallelRemarkEnabled 表示并行remark
#-XX:+UseCMSCompactAtFullCollection 打开对年老代的压缩。可能会影响性能,但是可以消除碎片
#-XX:+UseFastAccessorMethods 原始类型的快速优化
#-XX:+UseCMSInitiatingOccupancyOnly 使用手动定义初始化定义 ...
设计模式之结构性模式
- 博客分类:
- 设计思想和技巧
1. 装饰模式
装饰者模式动态将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
装饰者模式的精髓是装饰者与被装饰者是同一种类型,为何,假设他们两个不是同一种类型,DeceratorA装饰了componentA,返回了DeceratorA。如果DeceratorB也想装饰下componentA,那么DeceratorB只看到了DeceratorA而DeceratorB以为是componentA,如果DecetorA没有ComponentA的方法,那么DeceratorB调用的时候则会报错,因为DeceratorB一直以为自己拥有的对象就是 ...
linux java 常用监控命令
- 博客分类:
- JAVA基础
1.jstat用法
ps -ef | grep java | grep className 获取pid 或者jps命令
jstat -gcutil pid invervals count
参数解释
s0:survivor0,s1:survior1,E:eden,O:old,P:permanent。这些都是内存的占用比。
YGC:YoungGC次数,YGCT:YoungGC总时间
...
1.模板方法模式 Template Method
主要逻辑在父类中实现,子类只实现部分抽象方法或者钩子方法。
钩子方法的目的是让子类能够控制模板算法中可选的部分。
2.状态模式。
...
前几天同事突然问了个问题让我不大理解,先在这里记录下。 1.log4j.error和e.printstacktrace()有什么区别? 我的理解当然很简单,e.printstacktrace()是在控制台输出来的,logger4j是在日志中输出来的。 后来同事打了个哑谜还有一个是关系到buffer上的区别,对于这点其实我还是没有怎么搞明白,有知道的小伙伴可以来解答下。 2.logger.error(exception)和logger.error("",exception) 看很多人都是后者的写法,为什么就不能直接用logge ...
思考:
1.为何enum的构造器不能为public
因为enum的构造器外部不能访问,所以只能定义。
2.为何参数和方法写在后面会报错。
3.为何enum不能继承类?
因为它已经继承了enum类,java不能多继承。
/**
*
* User: rm
* Date: 2014年8月31日
* Time: 下午10:09:22
*/
public enum TestEnum {
Red("#000011") ...