JAVA网页编程之别用Java 7?你是在开顽笑吗?仓酷云
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net网页编程里有这些工具吗?要简单多少?。Java7方才公布没两天,但来自Lucene和Solr社区的某些人当即报料了一些Java7中的严峻bug。乃至ApacheLucene项目办理委员会成员UweSchindler公布了临时不要利用Java7的告诫信息。那末究竟Java7是有甚么成绩,为何我们等了5年的Java7如今却不克不及利用呢?让我们来看看实践的情形。这个成绩跟Java7有关,而是跟JVM有关
起首这个成绩是跟HotSpotJVM有关,而不是Java7言语自己的成绩。此次公布的GA版本包括三个bug:7070134,7044738和7068051,这三个bug间接招致JVM溃散大概举行毛病的盘算。
Hotspot是由于PorterStemmer的sigsegv而溃散的
第一个成绩(7070134)是关于毛病的编译器对轮回的优化,该特征在HotspotJVM中是默许启用的,你能够经由过程-XX:-UseLoopPredicate参数来封闭这个特征。假如你想懂得关于这个成绩的概况,请看Stemmer.java,编译并同意这个类你将会重现JVM溃散并报严峻毛病,信息以下:
#AfatalerrorhasbeendetectedbytheJavaRuntimeEnvironment:
#
#EXCEPTION_ACCESS_VIOLATION(0xc0000005)atpc=0x00000000026536da,pid=5432,t
id=6568
#
#JREversion:7.0-b135
#JavaVM:JavaHotSpot(TM)64-BitServerVM(21.0-b05mixedmodewindows-amd64
compressedoops)
#Problematicframe:
#JStemmer.step4()V
这个毛病间接在代码实行过程当中产生,在JDK1.6是体验不到的。而比来Lucene做了一些更天真的基于PulsingCodec算法的索引机制,而这个机制相称年夜的水平上会招致上述的毛病。
轮回睁开优化会招致不准确的了局
第二个bug(7044738)是“毛病的盘算”,这个毛病极其稀有的产生在OSR(On-StackReplacement)编译嵌套轮回上,把持流加入且对应的内存没有被思索到,这间接招致反复的克隆了局,想懂得编译细节请看olderoverview(PDF)
一个最复杂的办理举措就是利用-XX:LoopUnrollLimit=1参数来制止这个成绩。
Clonelooppredicateduringloopunswitch
第三个bug(7068051)跟一些老的featurerequest相干,因为一些有效的JVM统计招致利用轮回优化后的JVM溃散。
结论
依据这些bug的情形,只要在你大批的利用这些优化办法,那末你才大概已受Java7中存在的成绩所影响。一样平常情形下是不受影响的。现实上Java6的用户利用了某些优化选项也会存在成绩,但由于这些优化选项在Java7中是默许启用的才招致这个成绩影响那末年夜,比方(-XX:+OptimizeStringConcator-XX:+AggressiveOpts),因为这些成绩在Java7公布的前5天赋被发明,因而Oracle来不及办理这些bug,今朝Oracle仿佛也正在筹办下一个补钉版本,但对一些初级用户来讲,这些都不是成绩,由于源码是开放的,你能够做你想做的。
进而能拉拢大多数程序员用windows产品。并且从net网页编程网页编程AJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net网页编程可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net网页编程决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net网页编程的,如果跨平台的.net网页编程还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 是一种为 Internet发展的计算机语言 是一种将安全性(Security)列为第一优先考虑的语言 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 是一种使网页(Web Page)产生生动活泼画面的语言 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 是一种使网页(Web Page)产生生动活泼画面的语言 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
页:
[1]
2