java的setter方法,java getter和setter
在优化Java代码的时候,想尽一切办法提高整体效率。用JProfiler看看代码的时间比例,然后看看哪些部分可以优化减少运行时间。下面这么多方向。
如何解决写爬虫IP受阻的问题?立即使用。
1.如果可以一步到位使用构造函数,尽量使用构造函数而不是setter函数。
2.如果可以使用数组,就使用数组。而不是列表,数组真的很快。
3.使用for循环时,for i循环用于列表界面的集合,for each循环不使用。当我循环的时候,在for循环之外提到length的值。
4.有些变量可以提的话,取一次,用多次。不要太频繁。即使是一个简单的int值。
5.如果可以使用内部类,就可以使用内部类,这样可以节省getter和setter方法的使用。
6.json的序列化和反序列化。不要说理论上是fastjson,就用fastjson吧,因为根据数据结构的简单和复杂程度,你可以选择用什么进行反序列化和反序列化。你应该在说话前测试一下。不能直接照搬理论,因为有时候Gson真的很快。
下面对这个构造和set的效率对比
然后,使用的代码如下:
包com . lxk . fast;
导入com . Google . common . collect . lists;
导入com . lxk . model . car;
导入com . lxk . model . dog;
/**
*测试谁快直接构造或者一个一个设置,他们的效率差多少。
*
* @作者李雪凯2019/6/18
*/
公共类FastIsConstructOrSet {
公共静态void main(String[] args) {
test fast();
}
/**
*使用JProfiler查看时间比例
*/
私有静态void testFast() {
while (true) {
//27.4%
set();
//72.6%
构造();
}
}
/**
*为属性赋值的构造函数
*/
私有静态void构造(){
Car car=新车( oooo ,100,Lists.newArrayList(新狗( aaa ,真,真)));
}
/**
*设置为属性赋值。
*/
私有静态空集(){
Car car=新车();
car . set sign( oooo );
car . set price(100);
狗狗=新狗();
dog . set name( AAA );
dog . set alive(true);
dog . set忠诚度(true);
car . setmydog(lists . newarraylist(dog));
}
}可以发现构造比一个一个设置要快得多。因此,当您可以一步设置属性值时,您必须考虑效率。
(2019年7月16日补充)
不是有老铁说的建筑商模式吗?
我出于好奇测试了一下,以防这个builder模式很快。
下面是builder的代码
/**
*使用JProfiler查看时间比例
*/
@测试
public void testFast2() {
while (true) {
//33%
set();
//12.4%
构造();
//54.6%
builder();
}
}
/**
*使用lombok的构建器模式来赋值。
*/
私有静态void生成器(){
Car car=Car.builder()。符号( 0000 )。价格(100)。my dog(lists . new ArrayList(dog . builder()。姓名( aaa )。活着(真)。isLoyal(真)。build()))。build();
}使用了龙目岛的注释。
然后是JProfiler监控结果。
结果:
大家可以看到,构造者牛X还是比较快的。况且以上比例:72.6: 27.4=33: 12.4=2.64。
并且建造和设置的时间比率不变。这就是Java中使用构造函数和setter的效率差异的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。