Java中最常用的创建对象的方法便是用 new语句 来创建,但是 很多人用不好 却会使性能降低很多
下面请看一个测试例子:
package com.test;
public class Test {
@SuppressWarnings("unused")
public static void main(String[] args) {
int time = 100000;
long s1 = System.currentTimeMillis();
for (int i = 0; i < time; i++) {
Person person = new Person();
person.setId(1001);
person.setName("kevin");
person.setAge(29);
person.setSex("男");
}
System.out.println(" set 方式:"+(System.currentTimeMillis() - s1 )+" ms");
long s2 = System.currentTimeMillis();
for (int i = 0; i < time; i++) {
Person person = new Person();
person.born(1001, "kevin", 29,"男");
}
System.out.println(" init 方式:"+(System.currentTimeMillis() - s2 )+" ms");
long s3 = System.currentTimeMillis();
for (int i = 0; i < time; i++) {
Person person = new Person(1001, "kevin", 29,"男");
}
System.out.println("constrution方式:"+(System.currentTimeMillis() - s3 )+" ms");
}
}
class Person {
private int id;
private String name;
private int age;
private String sex;
public Person() {
}
public Person(int id, String name, int age,String sex) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
public Person born(int id, String name, int age,String sex){
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
return this;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
测试数据如下:
set 方式:14 ms
init 方式:3 ms
constrution方式:4 ms
可给局部变量time 重新赋值 ,可以自己重新测试一下!
从测试数据上即可看出 推荐大家创建对象时的习惯 使用 第2种,或者第三种!