`
文章列表
  1.java 内存模型,其实管理java内存模型和os操作内存可以类比。    java里面工作内存其实就是栈,主内存就是堆。   操作系统中存在可见性问题,解决方案即缓存一致性,比如两个cpu共同加载了一个内存块,A进行读,B进行写,则B会发送一个写广播,在cpu间进行通信,此时写的优先级会大于读的优先级,所以A收到写广播,会将缓存中的变量置为失效,重新从内存中加载该变量。   那么java线程之间同样存在可见性问题,线程A读取变量value,线程B写变量value,线程B写的变量不一定会立刻同步到主存,线程A读取变量不一定会从主存中读取变量。   2.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功能的必要步骤

JDK监控命令

  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参数浅析

后续的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一直以为自己拥有的对象就是 ...
  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 ...

Java之enum

     思考:      1.为何enum的构造器不能为public               因为enum的构造器外部不能访问,所以只能定义。      2.为何参数和方法写在后面会报错。            3.为何enum不能继承类?               因为它已经继承了enum类,java不能多继承。   /** * * User: rm * Date: 2014年8月31日 * Time: 下午10:09:22 */ public enum TestEnum { Red("#000011") ...
Global site tag (gtag.js) - Google Analytics