关于IT人的一些消遣区】的更多相关文章

https://www.csdn.net/http://www.51cto.com/http://bestcbooks.com/http://www.jobbole.com/http://www.code4apk.com/http://it-ebooks.flygon.net/mooc/http://www.178linux.com/60558http://www.jfedu.net/sztd/3.htmlhttp://blog.51cto.com/cloumn/indexhttps://www…
2016/10/30 14:31:32   一.对事物的见解分为两类:         1.评论性的见解               说的内容都是对的,符合常理的,但是却是不解决问题的.         2.工程学的见解               面对具体的目标,拆解为具体的行为,最终可以解决问题   二.怎样成为一个高手?         答案:刻意练习                  先说练习,         1.套路               接触一个陌生的东西时候,先搜寻老司机的…
目录 1. 概述 2. Java内存结构 3. 程序计数器 4. Java虚拟机栈 5. 本地方法栈 6. 堆 7. 方法区 8. 运行时常量池 9. 直接内存 10. 总结 1. 概述 作为日常的Java开发者,可能对于Java内存堆有简单的了解,但是也是朦朦胧胧的,一些点不是很明确.本文就把堆内存中的每个空间说清楚,把每个空间内存储的内容说明白. 2. Java内存结构 用一张图片了解Java的内存结构. 其中一些空间是私有或者共享的: 线程私有:PC寄存器(程序计数器),虚拟机栈,本地方法…
方法区与Java堆一样,是各个线程共享的内存区域,他在与存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据,虽然Java虚拟机规范把方法区描述为堆得一个逻辑部分,但是他却有一个别名Non-heap(非堆),目的是与Java堆区分开来. 对于习惯在Hotspot虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为永久代(Permanent generation),本质上两者并不等价,仅仅是因为Hotspot虚拟机的设计团队选择把gc分代收集扩展中方法区,,或者说使用永久…
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2.堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收.注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵.3.全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全…
方法区 方法区,Method Area, 对于习惯在HotSpot虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为“永久代”(Permanent Generation),本质上两者并不等价,仅仅是因为HotSpot虚拟机的设计团队选择把GC分代收集扩展至方法区,或者说使用永久代来实现方法区而已.对于其他虚拟机(如BEA JRockit.IBM J9等)来说是不存在永久代的概念的. 主要存放已被虚拟机加载的类信息.常量.静态变量.即时编译器编译后的代码等数据(比如spring 使用IOC…
JVM内存结构 所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问题,以便于快速的解决生产故障. 先看一张图,这张图能很清晰的说明JVM内存结构布局. Java的内存结构: JVM内存结构主要有三大块:堆内存.方法区和栈.堆内存是JVM中最大的一块由…
原文地址:http://www.cnblogs.com/dingyingsi/p/3760447.html 1.程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看 做是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型里(仅是概念模型, 各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变 这个计数器的值来选取下一条需要执行的字节码指令,分支.循环.跳转.异常处理. 线程恢复等基础功能都需要依赖这个计数器来完…
看到很多人在Docker问题区讨论:如何在OS X和Windows的Docker上运行GUI程序, 随手记录几个参考资料: https://github.com/docker/docker/issues/8710 http://sourceforge.net/projects/xming/ https://www.gitbook.com/book/yeasy/docker_practice/details…
转自:http://www.cnblogs.com/gw811/archive/2012/10/18/2730117.html 本文引用自:深入理解Java虚拟机的第2章内容 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民-既拥有每 一个对象的"所有权",又担负着每一个对象生命开始到终结的维护责任. 对于…
一.问题起源 淘宝搜索的博客 http://www.searchtb.com/2011/01/zookeeper-research.html  提到Paxos是zookeeper的灵魂 有一篇文章标题更是以“Zookeeper全解析——Paxos作为灵魂” 作为标题,认为是zookeeper的基础: “ Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为止唯一的分布式一致性算法,其它的算法都是Paxos的改进或简化.有个问题要提一下…
文章目录: 1.生态圈概述. 2.说说Java,高级Java,Java生态圈的衍生 3. 说说servlet.servlet容器.比较tomcat.jetty.tomcat.jboss: 1. 哪个项目能离开网络,数据库,操作系统来运行?所以生态圈的应用技术主要在这些知识点处. 2. Java组件,组件其实就是一个应用程序块 但是它们不是完整的应用程序,不能单独运行.就有如一辆汽车,车门是一个组件,车灯也是一个组件.但是光有车灯车门没有用,它们不能跑上公路在java中这些组件就叫做javabea…
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子.   同样,根据摩尔定律,我们知道单核 CPU的主频不可能无限制的增长,要想很多的提升新能,需要多…
兵无常势,水无常形,读书亦无法.彼之砒霜,我之佳肴.然读书无法却有道.你我都是使用同一颗大脑在读书.这颗大脑受制于那千千万万年以来,星辰起落,狩猎采集,演化大道. Q1:读物如何分级? 坏书.可用的书.力作.杰作与神作. 世人皆知精读略读,却不知冷读热读.你的大脑习惯用数字来锚定一切.既然都是书这种载体,价格.页数成了你的挑选标准.你总是习惯赋予神作与垃圾读物一样的阅读时间.须不知,人有好坏,书有高下.因此爱书之人均有自己的读物分级系统.我将图书分为:坏书.可用的书.力作.杰作与神作.多数图书,…
        JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆.栈以及静态数据区.那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分.在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:                                       如上图所示,首先Java源代码文件(.jav…
不应该对Properties对象调用get方法:而应该调用getProperty方法.许多人认为二者的区别是getProperty声明了返回值为String类型,而get声明的返回值类型为Object.但实际上二者之间有更大的区别:getProperty会查看默认值.get是继承自Hashtable的方法,它会忽视默认值,所以get的职责就像Hashtable文档中描述的一样,但是这种方式可能会跟你想象中的不一样.其它继承自Hashtable的方法也会忽略默认值(如isEmpty和toStrin…
ECMAScript的数据有两种类型:基本类型值和引用类型值,基本类型指的是简单的数据段,引用类型指的是可能由多个值构成的对象. Undefined.Null.Boolean.Number和String是值类型,其他都是引用类型.其他语言String是以对象的形式表示,ECMAScript放弃了这一传统. 内存中的存储区域 值类型存储在栈中,引用类型存储在堆中.内存中是分为两个区域的,一个是栈:它就是专门存放值类型的,但是它有一定的存储空间,只能存放基本数据类型的数据和对象类型的引用地址也叫哈希…
        JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆.栈以及静态数据区.那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分.在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:                                      如上图所示,首先Java源代码文件(.java…
前言 在Java语言开发过程中,out of memory错误是很常见的一种错误.对于JVM的内存结构有更深入的了解,更更好的帮我们排查此类问题,有效的避免此类问题发生.在JAVA 8中内存结构有进行了改变,Metaspace替代了PermGen. 内存结构简介 JVM的内存结构如下图所示:(图片来源于网络) JVM的内存结构大概分为:堆(heap):线程共享,所有的对象实例以及数组都要在堆上分配.回收器主要管理的对象.方法区(MEATHOD AREA):线程共享,存储类信息.常量.静态变量.即…
JVM的组成部分与内存管理 JVM区域划分 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分.在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行.在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段…
(1)你没有必要耗尽你一生的积蓄,承担财务风险. (2)你可以一边继续日常工作,一边开始创业,这样随时都能有现金满足需要.你甚至不需要办公室. 现在可以在家工作,和从未见面离你千里之外的人合作. (3)那种世界也许对于他们来说是真实的, 但并不表示你一定要生活在其中. (4)真实的世界不是一个地方,而是一个借口.是为毫无尝试而辩护. 这对你没有任何好处. (5)被高估的“从过失中学习”. (6)如果别人不能销售他们的产品,那与你无关.如果别人不能组建一个团队,跟你也没关系.如果别人不能为他们的服…
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每 一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任. 对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现 内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切…
JVM的总体结构参考如下两图:…
JVM内存划分吗? 前言: 大家都知道虚拟机,都知道JVM,其实这些都是基于sun公司[oracle公司]的HotSpot虚拟机,当然本篇博文也是以sun公司为基础.还有其他的虚拟机,常见的就有JRockit虚拟机.以及IMB的j9虚拟机,大致市场上就这三个,三个各有好处,如果想详细了解可以问问google大神. 一.传统划分[程序猿认为] 很多程序猿都认为jvm在划分内存的时候分为栈内存和堆内存,这个分法其实比较粗糙的,java内存区域的划分实际上远比这个复杂.这个划分方式的流行只能说明,大多…
将jvm内存很不错的文章,转自 堆(Heap)又被称为:优先队列(Priority Queue),是计算机科学中一类特殊的数据结构的统称.堆通常是一个可以被看做一棵树的数组对象.在队列中,调度程序反复提取队列中第一个作业并运行,因而实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权.堆即为解决此类问题设计的一种数据结构.        堆的数据结构如图所示: Heap 是一种数据结构,而我们平时常说的Heap 其实指的是"Heap Memo…
序言 清风万里的季节,周末本该和亲人朋友一起消遣这烂漫的花花草草,或是懒洋洋的晒个太阳听听风声鸟鸣.无奈工作使然,理想使然,我回到啦公司,敲起啦键盘,撸起啦代码,程序狗的世界一片黯然,一片黯然,愿天下所有努力的程序狗都梦想成真吧!! 回到正题,为什么搭建rabbitmq集群?rabbitmq集群有那些模式?如何搭建Rabbitmq集群?rabbitmq镜像高可用策略有那些? 1.首先这款产品本身的优点众多,大家最看好的便是他的异步化提高系统抗峰值能力,然后便是系统及功能结构解耦,那么照此两点来说…
RPM包命名原则 httpd-2.2.15-15.el6.centos.1.i686.rpm httpd       软件包名 2.2.15       软件版本 15      软件发布的次数 el6.centos       适合的linux平台 i696       适合的硬件平台 rpm       rpm包扩展名(实际上linux是没有扩展名的,linux扩展名只是为了给人看的) 区分包名和包全名 httpd 包名      操作的是已经安装的软件包是,使用包名.是搜索/var/lib…
Java虚拟机内存原型 寄存器:在程序中无法控制 栈:存放基本类型的数据和对象的引用,但是对象本身不存放在栈中,而是存放在堆中 堆:存放用new产生的数据 静态域:存放在对象中用static定义的静态成员 常量池:存放变量 非RAM存储:硬盘等永久存储空间 Java内存分配中的栈 栈的基本单位是帧(或栈帧):每当一个Java线程运行的时候,Java虚拟机会为该线程分配一个Java栈,该线程是执行某个Java方法的时候,向Java栈压入一个帧,这个帧用于存储参数,局部变量,操作数,中间运算结果等.…
本博客是为了自己学习JVM而建立,只记录一些自己学习的经过. 最近在看<深入理解Java虚拟机>这本书,里面的内容,很是乏味,因为看不懂所以就会觉得很枯燥,觉得很枯燥看着看着就犯困,然后就睡过去了,再醒来就没心思看书了.不过自己还是要坚持学习,虽然计划赶不上变化,但是还是有自己的小目标的.加油吧. 看到第二章的时候,前半部分就开始看不懂了,然后就一边看一边在网上搜索相关的知识,后来自己也根据书上的介绍和自己的一些理解把下面这个关系图看明白了一些. 弄明白了这张图,我才想到,怪不得我在看介绍ja…
一.概述 内存在计算机中占据着至关重要的地位,任何运行时的程序或者数据都需要依靠内存作为存储介质,否则程序将无法正常运行.与C和C++相比,使用Java语言编写的程序并不需要显示的为每一个对象编写对应的内存分配和内存回收等相关的函数,这主要是得益于JVM的自动内存管理机制,使得Java开发人员可以从频繁的体力劳动中解放出来,只关注与自身的业务即可. 尽管JVM的自动内存管理机制大大提高了Java开发人员的编程效率,甚至从某种意义上说降低了内存泄漏和内存溢出的风险,但是Java开发人员过度的依赖于…