- 浏览: 198333 次
- 性别:
- 来自: 上海
最新评论
文章列表
WeakHashMap和HashMap的区别
- 博客分类:
- JAVA
http://mzlly999.iteye.com/blog/1126049
WeakHashMap,此种Map的特点是,当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值,
见实例:此例子中声明了两个Map对象,一个是HashMap,一个是WeakHashMap,同时向两个map中放入a、b两个对象,当HashMap remove掉a 并且将a、b都指向null时,WeakHashMap中的a将自动被回收掉。出现这个状况的原因是,对于a对象而言,当HashMap remove掉并且将a指向null后,除了WeakHashMap中还保存a外已经没有指向a的指针了, ...
使用动态字节码生成技术实现AOP原理是在运行期间目标字节码加载后,生成目标类的子类,将切面逻辑加入到子类中,所以使用Cglib实现AOP不需要基于接口
定义两个接口
package AOP;
public interface Business1 {
public void show_Business1();
}
package AOP;
public interface Business2 {
public void show_Business2();
}
定义实现类:
package AOP;
public class Business ...
JavaScript 函数
- 博客分类:
- JavaScript
JavaScript 函数
<html>
<head>
<script type="text/javascript">
function displaymessage() {
alert("Hello World!")
}
</script>
</head>
<body>
<form>
<input type="button" value="Click me!" ...
java 代码优化(一)
- 博客分类:
- JAVA代码优化
1.循环优化
缺:
List alist=uSvr.getUserinfoList();
for(int i=0;i<alist.size();i++){
}
此种方式会一直去执行alist.size()方法,带来性能消耗,改为
for(int i=0 p=alist.size();i<p;i++){
}
2.循环内不要创建对象
缺;
for(int i=1;i<=domainCount;i++){
.
AuditResult auditResult = new AuditResult( ...
volatile 的高级模式
- 博客分类:
- JAVA
前面几节介绍的模式涵盖了大部分的基本用例,在这些模式中使用 volatile 非常有用并且简单。这一节将介绍一种更加高级的模式,在该模式中,volatile 将提供性能或可伸缩性优势。
volatile 应用的的高级模式非常脆弱。因此,必须对假设的条件仔细证明,并且这些模式被严格地封装了起来,因为即使非常小的更改也会损坏您的代码!同样,使用更高级的 volatile 用例的原因是它能够提升性能,确保在开始应用高级模式之前,真正确定需要实现这种性能获益。需要对这些模式进行权衡,放弃可读性或可维护性来换取可能的性能收益 —— 如果您不需要提升性能(或者不能够通过一个严格的测试程序证明您需要它),那么 ...
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
To first explain the desired behavior, consider the following code:
// Single threaded version
class Foo {
private Helper helper = null;
public Helper getHelper() {
if (helper == null)
helper = new Helpe ...
http://www.java63.com/spring/introduce_spring_function.html
属性文件Properties
properties属性文件
1
log4j.threshold
阈值项
log4j.threshold = error
2
log4j.rootLogger
根日志属性项
log4j.rootLogger = info,stdout1,stdout2
3
log4j.category.
子日志属性项(旧)
log4j.category.com.eos = NULL,stdout1
4
log4j.logger.
子日志属性项(新)
log4j.logger.com.eos.log = debug,stdout2
5
l ...
Log4j支持两种配置文件格式,一种是java属性文件(键—值),一种是xml格式文件。
这里仅介绍下java属性文件的配置方法。
先看看个配置文件:log4j.properties
log4j.rootCategory=debug,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [% ...
Hibernate延迟加载机制
- 博客分类:
- JPA
延迟加载:
延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。下面我们就分别介绍这些种类的延迟加载的细节。
A、实体对象的延迟加载:
如果想对实体对象使用延迟加载,必须要在实体的映射配置文件中进行相应的配置,如下所示:
<hibernate-mapping>
<class name=”com.neusoft.entity.User” table=”user” lazy=” ...
pom.xml的介绍
- 博客分类:
- 项目管理
pom.xml包含了一个项目的项目对象模型(POM)。项目对象模型(POM)是Maven工作的基本单元。请记住,这个是非常重要的,因为POM包含了工程的非常重要的信息块,并且基本上包含了和项目相关的任何要素。
让我们熟悉一下pom.xml包含的基本项
poject 这是pom.xml的顶级元素。
modelVersion 这是元素指出了这个POM使用的是那个版本的对象模型。这个模型的版本自身么是经常改变的,但这种改变是为了使模型更加的稳定。
groupId 这个元素指出创建这个工程的组织或团队的唯一标识,并且这个也是一个项目的关键标识,推荐使用这个组织或团队的完整域名。例如:org.apac ...
等等 单例模式的俩种方式:
饿汉式
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
}
懒汉式
class Singleton {
private static Singleton instance=null;
private Singleton(){}
static Singleton getInstance() {
...
代理模式(静态以及动态)
- 博客分类:
- 设计模式
代理接口:
package ProxyPattern;
public interface Italk {
public void talk(String msg);
}
RealSubject:
package ProxyPattern;
public class People implements Italk {
public String username;
public String age;
public String getName() {
return username;
}
public void setName( ...
1.Eclipse连接MySQL数据库
mysql>CREATE DATABASE test; //创建一个数据库
mysql>use test; //指定test为当前要操作的数据库
mysql>CREATE TABLE user (name VARCHAR(20),password VARCHAR(20)); //创建一个表user,设置两个字段。
mysql>INSERT INTO user VALUES('huzhiheng','123456'); //插入一条数据到表中
2.驱动已经导入,下面我们来写一个程序验证一下
import j ...
java中ArrayList 、LinkList、List区别
java中ArrayList 、LinkList区别
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。例如我们可以用Ar ...