2016 - 2024

感恩一路有你

java十大优化方法 循环优化中常见的优化手段有哪些?

浏览量:3364 时间:2023-05-30 21:21:43 作者:采采

循环优化中常见的优化手段有哪些?

前端主要指html、css、java三种技术,这三种技术,都有吧一些优化手段。

html和css部分有很多优化手段,例如用div不用table、慎用iframe、css精灵图等,就不多说了,咱们主要说哈java部分的优化手段。

java部分

十万元手中掌握高颜值双联屏还带6气囊

广告

十万元手中掌握高颜值双联屏还带6气囊

案例一:

代码1:

vararr[“a”,“b”,“c”]

for(vari0iltarr.lengthi){

console.log(arr[i])

}

上面的代码确实没有问题,都能够对数组接受循环,但,iltarr.length这个写法将会造成性能迅速下降,毕竟在这一刻判断时,都不需要声望兑换arr的length属性,解决的方法是,提前用变量需要保存length属性,推测时仅确认变量再试一下。

代码2:

vararr[“a”,“b”,“c”]

varlenarr.length

for(vari0iltleni){

console.log(arr[i])

}

上面的代码就比第二次的代码性能好大部分了,但是它还有一个优化的空间,就是var声明变量部分,上面的代码用了3个var,这3个var如果没有合并成1个,那你性能会更好。

代码3:

vararr[“a”,“b”,“c”],i0,lenarr.length

for(iltleni){

console.log(arr[i])

}

总结:

1,是对疼时是需要获取某一个属性时,我们提前用一个变量收不到,例如lenarr.length;

2,能合并的代码,是可以做合并操作,例如var声明多个变量;

取平衡点

代码4:

vararr[#34a#34,#34b#34,#34c#34],i-1,lenarr.length-1

for(iltlen){

console.log(arr[i])

}

代码4从性能的角度讲,会比代码3更优;但从语义的角度讲,代码3比代码4优。

选择类型哪种,必须看具体需求,要是单单是这种3次的循环,那肯定没所谓了,性能都应该差不多。

案例二:

代码1:

vara1,b2,fnfunction(){

alert(ab)

}

上面的代码中,不能执行fn函数时,会输出ab的值,假如没有其他程序必须要用a和b,那么变量a和b就不应该写在全局下,而肯定写在函数内,写在全局下,页面直接关闭才会销毁,而写在函数内,函数执行完毕,是会全部销毁,因此从内存建议使用的角度,我们也可以在此之前做系统优化。

代码2:

varfnfunction(){

vara1,b2

alert(ab)

}

如果不是fn函数仅必须不能执行1次,之后就再也找不到使用场景了,我们可以不使用下面的自调用函数。

代码3:

(function(){

vara1,b2

alert(ab)

})()

总结归纳:不要减少全局变量,变量用完记的要销毁。

上图为我推荐推荐给大家的一本说,里面写的内容比较比较具体点。

java中也可以优化软件的地方尤其多,时间关系,就先有讲这里。

jvm是如何实现的?

编程语言和自然语言相似,大都目的是打交道,自然语言主要是用于跟人交流,程序语言则主要是用于指示机器。jvm当然也就是一个程序,这个程序能接受你的Java代码,然后参照你的意愿先执行一系列操作。举个例子,你可以写一个这样的程序,这个程序得到用户键入一句话,如果用户输入“beep”则动态创建机器的鸣叫,如果用户再输入“exit”,则关闭本程序。在这个例子中,不过用户写的“beep”和“exit”就临时了程序语言的角色,只是这门语言实在是太很简单所以不会普及。而java则更具体系的体系能够支持你思想感情任何意愿,接着jvm明白你的java语言并想执行或则操作,这是程序语言的原理。不过java另外360优化的方案,它的编译器将你的java语言英译中成字节码,只不过jvm不能执行字节码的速度比真接理解java代码要快很多,后来的版本还化入了JIT技术,实时将字节码再编译成机器码,那样就能让机器然后执行指令而不是需要jvm去解释。当然了垃圾收集器,应该是jvm以维护着每一个对象的引用(是可以明白成C里面的指针),依据什么一定的算法确认其是否是可达,如果不是这个脚注绝对不可达(也就是程序的现部分已经没能资源这个摘录,比如说已远远超出block范围了)这样就清除掉这个内存对象。这样的好处是能尽量减少导致程序员的疏忽紊乱的内存泄露,缺点是内存的清理太差即时,以致无用的对象常常觉得会占据内存很长时间。你也也可以在C里实现垃圾回收器,思路是写一个应用于管理内存的类,然后再程序里继续用next来新建任务对象,而是用这个类来产生对象,类内部手中掌握这个对象的指针,并在适当的时候delete它,这样的话就基于垃圾自动启动回收了,当然了要写这样一个类是很难办的事。

代码 java 程序 jvm 内存

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。