仓酷云

标题: 发布一篇Java内存保守成绩剖析 [打印本页]

作者: 仓酷云    时间: 2015-1-18 11:32
标题: 发布一篇Java内存保守成绩剖析
你总不能说你写框架吧,那无疑会加大工作量,现在大多企业采取的是折中的办法,就是改别人写好的框架,可要改框架,前提是你对这个框架足够的了解,这就更难了。
良多人在议论内存保守成绩,固然关于c/c++来讲,这个应当是老失落牙的成绩,可是良多Java职员也愈来愈多得会商这个成绩,我这里写个小结,但愿对人人有必定的参考代价。
内存泄露的慨念
1.c/c++是程序员本人办理内存,Java内存是由GC主动接纳的。
我固然不是很熟习C++,不外这个应当没有犯知识性毛病吧。
2.甚么是内存保守?
内存保守是指体系中存在没法接纳的内存,偶然候会形成内存不敷或体系溃散。
在C/C++平分配了内存不开释的情形就是内存保守。
3.Java存在内存保守
我们必需先供认这个,才能够接着会商。固然Java存在内存保守,可是基础上不必很体贴它,出格是那些对代码自己就不考究的就更不要往体贴这个了。
Java中的内存保守固然是指:存在无用可是渣滓接纳器没法接纳的对象。并且即便有内存保守成绩存在,也纷歧定会体现出来。
4.Java中参数都是传值的。
关于基础范例,人人基础上没有贰言,可是关于援用范例我们也不克不及有贰言。
Java内存保守情形
JVM接纳算法是很庞大的,我也不晓得他们怎样完成的,可是我只晓得他们要完成的就是:关于没有被援用的对象是能够接纳的。以是你要形成内存保守就要做到:
持有对无用对象的援用!
不要觉得这个很简单做到,既然无用,你怎样还会持有它的援用?既然你还持有它,它怎样会是无用的呢?
我其实想不到比谁人仓库更典范的例子了,乃至于我还要援用他人的例子,上面的例子不是我想到的,是书上看到的,固然假如没有在书上看到,大概过一段工夫我本人也想的到,但是当时我说是我本人想到的也没有人信任的。
publicclassStack{
privateObject[]elements=newObject[10];
privateintsize=0;
publicvoidpush(Objecte){
ensureCapacity();
elements[size++]=e;
}
publicObjectpop(){
if(size==0)
thrownewEmptyStackException();
returnelements[--size];
}
privatevoidensureCapacity(){
if(elements.length==size){
Object[]oldElements=elements;
elements=newObject[2*elements.length+1];
System.arraycopy(oldElements,0,elements,0,size);
}
}
}
<p>
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解
作者: 简单生活    时间: 2015-1-18 16:29
是一种为 Internet发展的计算机语言
作者: admin    时间: 2015-1-20 05:54
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 再现理想    时间: 2015-1-24 15:38
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者: 海妖    时间: 2015-2-1 17:16
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者: 蒙在股里    时间: 2015-2-8 16:10
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 柔情似水    时间: 2015-2-10 18:20
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 冷月葬花魂    时间: 2015-3-1 13:47
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 爱飞    时间: 2015-3-6 13:39
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 灵魂腐蚀    时间: 2015-3-11 06:52
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 仓酷云    时间: 2015-3-11 08:05
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 老尸    时间: 2015-3-17 23:38
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 愤怒的大鸟    时间: 2015-3-19 20:43
Java是一种计算机编程语言,拥有跨平台、面向对java
作者: 乐观    时间: 2015-3-23 16:43
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 若相依    时间: 2015-3-25 11:18
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 金色的骷髅    时间: 2015-3-25 23:50
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 活着的死人    时间: 2015-3-31 17:33
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 山那边是海    时间: 2015-4-1 02:09
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 精灵巫婆    时间: 2015-4-3 03:35
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 变相怪杰    时间: 2015-4-16 16:00
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2