- 浏览: 39874 次
- 性别:
- 来自: 杭州
最新评论
文章列表
浅入JVM一--JVM内存管理
- 博客分类:
- java
1 jvm内存模型
jvm规范将jvm用到的内存分成如下几个不同的功能区:
程序计数器
虚拟机栈
本地方法栈
方法区(运行时常量池)
堆
当然,这只是逻辑上的划分,不同的虚拟机在实现时可能会略有不同,例如有些虚拟机将虚拟机栈和本地方法栈合在了一起(Hotspot就是)。因为这些区域在java程序运行时的作用不同,因此每个区块可能发生的问题也不同,下表描述了这些区域的作用和可能发生的问题:
区域
作用
作用域
可能的问题
HotSpot虚拟机中控制其大小的参数
程序计数器
线程当前 ...
1 简单的泛型
1.1
泛型类
1.2 泛型接口
1.3 泛型方法
1.4 内部类和匿名内部类中的泛型
2 泛型的奥秘(擦除)及其缺陷
3 通配符和泛型的边界
3.1 泛型的边界
...
1 通过序列化方式进行对象的深度拷贝
public static <T> T deepCloneBySerialize(T src) {
T o = null;
try {
if (src != null) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(src);
oos.close();
B ...
the solution is to download “Class Files 1.0.1B” from http://www.oracle.com/technetwork/java/javaee/tech/jta-138684.html
and then do:
mvn install:install-file -Dfile=./jta-1_0_1B-classes.zip -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar
1 Shell运算符
Shell提供大量的基本运算操作,在脚本中非常有用。Shell提供的算术表达式求值,执行运算展开式,此时使用得出的结果替换表达式。以下面的格式提供运算表达式:
$(( expression ))
可以使用 echo 在命令行显示运算展开式的结果,了解其工作情况。例如
$ echo $((10+40))
50
$ echo $((5*(3+3)))
30
还可以将展开式分配给变量:
$ myvar = 10
$ echo $myvar
10
$ echo $(($myvar-2))
8
$ myva ...
These errors happend because some
interface
/class in the hierarchy cannot be resolve.
For example: the error is occur in your class - class x, x inherits y, and in turn, y inherits z. However, the
compiler
cannot resolve z (in above error is EventManager), because z is belong to ...
TTServer是什么?
Tokyo Cabinet 是一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍。利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统。key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。
Tokyo Tyrant 是由同一作者开发的 Tokyo Cabinet 数据库网络接口。它拥有Memcached兼容协议,也可 ...
RAR Linux
用于在linux下解压rar包,软件下载地址http://www.rarsoft.com/download.htm
,下载后make , make install安装即可,使用方式则为:
unrar e filename.rar
DropBox
DropBox是一个很好文件存储和同步软件,可惜被封锁了,但是改一下IP还是可以使用的。不过安装的过程不墙就不行了。为了避免墙的麻烦,可以将安装包都先下载到本地。这样如果第二次再装的时候就不用再墙了。可以从下面的地址下载安装包http://download.csdn.net/sour ...
安装好系统之后,可以进行一些简单的偏好设置,以让Linux用得更得心应手。快捷键
* Ctrl+Alt+D:切换到桌面
* Ctrl+Alt+T:打开终端
安装RPM
Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。具体步骤为:
* sudo apt-get install alien #alien默认没有安装,所以首先要安装它
* sudo alien xxxx.rpm #将rpm转换位deb,完成后会生成一个同名的xxxx.deb
* sudo dpkg -i xxxx.deb #安 ...
Spring为企业级开发提供了轻量而又强大的支持。但是为了使用spring还是需要大量的配置文件对系统中的bean进行配置。虽然提供了基于注解的配置,但其也只能省去依赖部分的配置,而对每个Bean本身的配置仍然需要。为了进一步减少配置,Spring进一步提供了从classpath自动扫描Bean组建并将其对应的BeanDefinination加入到容器中的功能。本文就对spring自动扫描组建的功能进行学习和分析。
提供自动扫描功能的核心类是:ClassPathBeanDefinitionScanner,该类根据提供个基础包名,扫描classpath下与该包名的路径下,找到复合 ...
在前文《Spring Schema》中讲述了如何使用Spring Ext功能,但并未具体讲其内如原理。本篇进行一些补充。
要研究spring ext的实现原理就需要研究下解析xml文件生成相应的BeanDefination的过程了。下面的类图是与load BeanDefinition相关的主要的类:
<!--[endif]-->
其中与Spring EXT相关的主要是NamespaceHandlerResolver和ResourceEntityResolver两个类。
ResourceEntityResolver类由BeansDtdResolver和P ...
新装了win7,在win7下,eclipse经常自动死掉。改了下eclipse.init下的内存配置好了:
-Xms256m
-Xmx512m
-XX:PermSize=128M
-XX:MaxPermSize=128M
另外对于PermSize问题,PermSize大一点肯定更好,而且最好是设置PermSize和MaxPermSize一样大。理由如下:
PermSize 和MaxPermSize如果设置为相同还可以在一定程度上提高性能,因为,PermSize在不断的变化中会需要转移其中的数据。如果固定了以后,则可以减少每次扩大PermSiz ...
Spring
2.5在2.0的基于Schema的Bean配置的基础之上,再增加了扩展XML配置的机制。通过该机制,我们可以编写自己的Schema,并根据自定义的Schema用自定的标签配置Bean。要使用的Spring的扩展XML配置机制,也比较简单,有以下4个步骤:
编写自定义Schema文件;
编写自定义NamespaceHandler;
编写一个或者多个自定义BeanDefinition;
在Spring中注册上述组建
下面是一块自定义的Bean配置:
myns:datef ...
2.2
杂项数据类型
2.4.1 逻辑数据类型
逻辑数据性用于规定 true 或 false 值。
下面是一个关于某个 scheme 中逻辑声明的例子:
<xs:attribute name="disabled" type="xs:boolean"/>
文档中的元素看上去应该类似这样:
<prize disabled="true">999</prize>
注释:合法的布尔值是 true、false
XML Schema
0 概述
XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD。它的作用如下:
定义可出现在文档中的元素
定义可出现在文档中的属性
定义哪个元素是子元素
定义子元素的次序
定义子元素的数目
定义元素是否为空,或者是否可包含文本
定义元素和属性的数据类型
定义元素和属性的默认值以及固定值
XML Schema是DTD的替代方案,对比难以理解且又不灵活的DTD,XML Schema有一下优点:
XML Schema