- 浏览: 201938 次
- 性别:
- 来自: 北京
最新评论
-
fireway200:
good job good job
深入理解JVM--JVM垃圾回收机制 -
sinat_19635357:
good job
深入理解JVM--JVM垃圾回收机制 -
jayung:
不错,非常感谢
Eclipse正则表达式 替换查找 /* */ 注释 -
yuanwofei:
[c[color=darkblue][color=cyan][ ...
深入理解JVM—JVM内存模型 -
w10001:
非常感谢,花费2个小时,按照楼主的方法终于成功了
ext4.1 spket 1.6.23 Myeclipse10.5 开发环境 extjs代码提示
文章列表
maven依赖包版本冲突解决
- 博客分类:
- maven
在有冲突的依赖下面加上exclusion,如不想用slf4j-log4j12默认的slf4j-api版本,而自己指定一个,可以这样:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j-log4j12.version}</version>
<exclusions>
<exclusion> ...
转载:http://blog.csdn.net/laoshuisheng/article/details/6420003
Maven 多模块项目在eclipse下面热部署,即你可以体验下无论你修改整个项目里面的任何模块的代码,都不需要用maven打包就可以看到效果,
1、首先准备好创建一个maven多项目的代码,准备好一个eclipse,一个tomcat,什么java环境,tomcat环境我就不多说了,如果这个你都没有配好就别往下看了,
2、创建项目,mvn archetype:generate -DgroupId=com.laoshuisheng -Dartifact ...
对于写代码的人都知道,我们一般的程序编译过程都有语法分析、词法分析等一系列检查操作,然后生成对应的机器码或者字节码。对于C++来说,其编译过程可使用下图表示
当然我们知道还有一部分语言是使用解释 ...
Java语言出来之前,大家都在拼命的写C或者C++的程序,而此时存在一个很大的矛盾,C++等语言创建对象要不断的去开辟空间,不用的时候有需要不断的去释放控件,既要写构造函数,又要写析构函数,很多时候都在重复的allocat ...
使用说明
-XX:+<option> 启用选项
-XX:-<option> 不启用选项
-XX:<option>=<number> 给选项设置一个数字类型值,可跟单位,例如 32k, 1024m, 2g-XX:<option>=<string> 给选项设置一个字符串值,例如-XX:HeapDumpPath=./dump.core
行为选项
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子。
< xmlnamespace prefix ="v" ns ="urn:schemas-microsoft-com:vml" />< ...
在完成将class文件信息加载到JVM并产生class对象之后,就可以执行Class对象的静态方法或者实例方法对对象进行调用了。JVM在源代码编译阶段将源代码编译为字节码文件,字节码是一种中间代码的方式,要由JVM在运行时进行解释 ...
1:支持命名空间
<
script type
=
"
text/javascript
"
>
//
定义一个命名空间
Ext.namespace(
"
Ext.wentao
"
);
//
在命名空间上定义一个类
Ext.wentao.helloworld
=
Ext.emptyFn;
深入理解ClassLoader(五)—类的卸载
- 博客分类:
- java
我们知道,当一个类被加载、连接和初始化之后,他的生命周期就开始了,当该类的class对象不再被引用之后,该类的生命周期也就结束了,之后,该类会被类加载器卸载!
我们来看以下代码:
package com.yhj.jvm.classloader.uninstall;< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
上几次我们介绍到了JVM内部的几个类加载器,我们来重新画一下这个图,再来看一下他们之间的关系。
JVM
的ClassLoader采用的是树形结构,除了BootstrapClassLoader以外?每个ClassLoader都会有一个
类的初始化
静态变量的生民语句以及静态代码块都被看作类的初始化语句,Java虚拟机会按照初始化语句在类文件中的先后顺序来依次夹在他们。
上图中a的初始化其实经过了四步
1、 a被初始化为默认值
类的加载的最终产品是位于堆(heap)中的class对象
Class对象封装了类在方法区内的数据结构并向Java程序员提供访问方法区内的数据结构的接口。而反射就像一面镜子一样可这个接口是反射的接口,所以我们可以通过反射获得这个类的方法和属性,包括私有的方法和属性!
下面我们来详细的介绍一下类加载器
类的加载器有两种
1、 Java虚拟机自带的加载器
2、
我们知道
java
运行的是这样的,首先
java
编译器将我们的源代码编译成为字节码,然后由
JVM
将字节码
load
到内存中,接着我们的程序就可以创建对象了,我们知道
JVM
将字节码
load
到内存之后将将建立内存模型(
JVM
的内存模型我们将在稍后阐述),那
JVM
是怎么将类
load
到内存中的呢?对了,是通过
Classloader
,今天我们就来深入探讨一下
Classloader
。
首先我们来看一段诡异的代码(一段单实例测试代码)。
用于在spket中进行提醒时的筛选。以下是具体的操作步骤:
一 下载并安装spket插件
1、从官网下载spket-1.6.23.zip文件,
下载地址:http://www.spket.com/download.html 2、从中解压出features与plugins文件夹,复制到E:\MyEclipse\myPlugins\spket-1.6.23里面3、在E:\MyEclipse\MyEclipse 10\dropins下新建文件
spket-1.6.23 .link,内容是:path=E:\\MyEclipse\\myPlugins\\spket-1.6.2 ...