- 浏览: 90688 次
- 性别:
- 来自: 上海
最新评论
-
jag522:
这个问题在JDK5,JDK6等老版本中存在,但是在JDK7,J ...
String 导致的内存溢出 -
jag522:
subStrings 不是保存了1000000个长度为2的字符 ...
String 导致的内存溢出 -
lliiqiang:
系统不可知道设计的逻辑,只有用关键字声明.
Java 中观察者模式的使用 -
fangguanhong:
update第一个参数表示主题角色,就是被观察的对象,第二个参 ...
Java 中观察者模式的使用 -
li5951680:
miroku 写道传递的数组是引用啊,怎么会产生多份相同大小的 ...
String 导致的内存溢出
文章列表
2010年的最后一天写了一个JSF2与JDBC集成的例子,记录一下。
准备数据库表创建:
SQL> create table customer(
2 id number(8) not null primary key,
3 name varchar2(20),
4 age number(3),
5 gender varchar2(8)
6 );
insert into customer(id,name,age,gender) values (1,'zhanghong',1,'male');
insert into customer(id ...
在一对多依赖的对象关系中, 如果这个'一'对象状态发生了变化,那么它所有依赖的'多'对象都应该被通知,然后做相应的变化,这就是观察者模式. 就如同'多'对象一直在观察'一'对象的状态变化一样.
在观察者模式中最重要的俩个对象分别是:Observable和Observer对象.它们的关系可总结如下:
1. Observable和Observer对象是一对多的关系,也就是说一旦Observable对象状态变化,它就要负责通知所有和它有关系的Observer对象,然后做相应的改变.
1. Observable对象不会主动去通知各个具体的Observer对象其状态发生了变 ...
J2SE
How to Write an Equality Method in Java
Design Pattern
http://en.wikipedia.org/wiki/Double-checked_locking
http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29
JavaScript
http://www.javascriptkit.com/javatutors/trycatch.shtml
String是java中经常使用的类,如果使用不当,也有可能出现内存泄露。例如执行以下代码就可能出现内存不够:
public class Test {
private String large = new String(new char[100000]);
public String getSubString() {
return this.large.substring(0, 2);
}
public static void main(String[] args) {
ArrayList<String> subStrings = new Arr ...
在有些JVM中,Integer类型从-128到127的范围内会放回用一个对象,所以用”==“ 的时候,同样大小的Ingeter俩个对象会返回TRUE。而超过这个范围,就可能返回False了。
Integer i1 = 300;
Integer i2 = 300;
if (i1 == i2)
System.out.println("i1 and i2 is equal");
else
System.out.println("i1 and i2 is not equal ");
运行 ...
p.setX(p.getX() + 1);
System.out.println(coll.contains(p)); // prints false (probably)
java.lang.Object类中定义了equals方法,其所有的子类都可以进行重写。但是,有时候不适当的重写会导致一些错误,特别是在使用HashMap,HashSet等的时候。比如以下几种情况重写equals方法会产生不一致的行为:
1. 定义equals方法的时候,方法署名不对;
2.修改了equals方法,却没有修改hashCode方法;
3.使用变量来定义equals方法;
4.在父类 ...
收藏几篇关于String很好的文章:
Under the Hood of Java Strings Concatenating Performance
Four Things to Remember about java.lang.String
String Performance
Performance improvement techniques in String and StringBuffer
很多人都有写这样代码的经历:
<a href="#" onclick="doSomething()">click me</a>
其实这样写非常不好,因为页面虽然没有跳转,但是页面会回到顶端。如果在href中链接到一个锚点,eg: href="#bookmark" ,它就会调到<a href="bookmark">的地方。那么我们什么也不用,就不会有什么情况发生了吧,其实不然,这样会在浏览器浏览历史中新增一条记录。
...
在使用sqlplus的时候遇到了这个问题,记录以下解决方法,在glogin.sql中加入以下代码:
define _editor='vi'
set editfile /home/oracle/afiedt.buf
我们都知道在java中有静态初始化块,也就是static{} ,他们会在类被加载时候调用。如果类中含有实例初始化块,也就是{}块,它会在什么时候被调用呢。
我们来看个例子:
public class InstanceInit {
public InstanceInit() {
System.out.println("InstanceInit created");
}
static{
System.out.println("InstanceInit static Initialzer");
...
instanceof表示此操作符左边的变量的实际类型是否是右边类型或右边子类型的一个实例,用法:
a instanceof B
Class1.isAssignableFrom(Class2) 表示Class1类型可不可以引用一个Class2表示的实例。也就是Class1 c = new Class2()是否正确。也就是判断Class2类型是否是Class1类型或且子类型:
例如 class C extends B{}; class B extends A{};
A a = new B();
System.o ...
JSF2中注解的应用,使得JSF2很容易与EJB3,JPA2集成。
首先,定义一个业务接口,作为EJB的一个本地接口:
@Local
public interface CustomerSessionBeanI {
public Customer getById(long id);
public List<Customer> findAll();
public void deleteById(long id);
public void save(Customer c);
}
定义一个SessionBean来实现这个接口:
@State ...
1. 首先创建数据库表
SQL> create table customer(
2 id number(8) not null primary key,
3 name varchar2(20),
4 age number(3),
5 gender varchar2(8)
6 );
写过一篇关于JSF2中Validator的实现,但那是JSF1中的实现方式,后来了解到JSF2中的实现其实更简单,其实只需要俩步:
1.定义Validator类,并实现Validator接口,并使用@FacesValidator注解
2.在页面中应用:
EmailValidator:
@FacesValidator(value="com.bond.validator.EmailValidator")
public class EmailValidator implements Validator {
private String pattern=" ...
在Tomcat中配置DataSource及调用需要三步:
1.server.xml中加入以下片段:
<Resource name="jdbc/oracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:ora1" ...