博文

JVM平台开发语言 一直在流行(2012-05-21 16:52:00)

摘要:关于JVM平台开发语言一直是Java开发者茶余饭后的一个热门话题,JVM作为一种机制用以提供应用在不同的环境,其他平台以及不同硬件上的可移植性,而基于JVM平台的编程语言也是不断的在增加。从动态语言如Groovy、JRuby, Jython到静态型Scala语言, JVM也正成为一个多元化的平台,开发人员可以充分利用不同语言来满足各自不同的需求。           从本月的编程语言排行榜上我们可以看出,本次最受欢迎的5种编程语言中3种就属基于JVM平台开发的编程语言。这也意味着开发者对JVM平台开发语言的关注、使用也不断的增加。为什么JVM的编程语言会如此受到开发者的青眯?下面我们从JVM平台的3点特性进行分析。         动态语言支持         从SE 6开始就是对动态语言的支持,动态语言逐渐成为许多Java开发者应用开发日常工作的一部分,并常常用于原型开发或用来提高开发速度。为了快速得到更大规模的Java应用程序,人们一直在使用动态语言胶合程序部件。         事实上,任何可以使用有效class 文件表述的功能性语言,都可以运行在JVM上。动态语言的灵活性,尤其是脚本语言,对于实验性、原型应用程序以及需频繁更新的程序,都具有独特的吸引力。         Java开发人员也可以使用动态语言进行部分编程,然后将这部分代码转换成Java,或继续用Java来开发程序中更为健壮、生命力更强的部分,其他代码则可以通过更加动态的语言来进行开发。动态类型固有的灵活性与JVM的执行效率,合二为一。很明显,这就是它能够吸引动态编程语言创建者以及使用这些语言构建应用程序的开发者的原因。         跨平台性         如果单单说JVM支持动态语言编程就能够吸引更多的开发者那......

阅读全文(946) | 评论:1

Java编程中“为了性能”要做的几点(2012-05-21 16:41:00)

摘要: 最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。         下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。         1. 尽量在合适的场合使用单例         使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:         第一,控制资源的使用,通过线程同步来控制资源的并发访问;         第二,控制实例的产生,以达到节约资源的目的;         第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。         2. 尽量避免随意使用静态变量         要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如         public class A{  static B b = new B();  } 此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会常驻内存,直到程序终止。         3. 尽量避免过多过常的创建Java对象         尽量避免在经常调用的方法,循环中new对象,由于系统不仅要花费时间来创建对象,而且还要花时间对这些对象进行垃圾回收和处理,在我们......

阅读全文(609) | 评论:2

解读Java环境变量配置(2012-05-21 16:39:00)

摘要: 1、查看当前可用的所有环境变量(=系统变量+用户变量)         set         查看某个环境变量,如PATH         set PATH         添加环境变量,如xxx=aa         set xxx=aa         将环境变量(如xxx)的值置为空         set xxx=         在某个环境变量(如PATH)后添加新的值(如d:\xxx)         set PATH=%PATH%;d:\xxx         [注]:以命令行方式对环境变量的操作只对当前窗口的应用有效!         2、Windows下JAVA用到的环境变量主要有3个:JAVA_HOME、CLASSPATH、PATH.         1)JAVA_HOME指向的是JDK的安装路径,如x:\ j2sdk1.4.2,在这路径下你应该能够找到bin、lib等目录。设置方法:JAVA_HOME=c:\ j2sdk1.4.2         2)PATH变量的作用         java程序在运行时首先在path变量所定义的路径去找java.exe,并以最先找到的为准,如果安装完j2sdk后不加设置,一般是C:\WI......

阅读全文(776) | 评论:1

java 设计模式之责任链模式(2012-05-21 16:38:00)

摘要:不知道大家都写过宏没有,就是一个键绑定多个技能。如果排在前面的技能有CD,则跳过此技能,会执行之后的技能。记得曾经玩DK,打怪的时候,就是用一个键,一直按就行了。在servlet里的doGet和doPost方法,我们一把都把doGet请求发动到doPost里来处理,这也是一种责任链的模式。         这里,有个宏,绑定了 冰血冷脉和寒冰箭,两个技能:         package responsibility;/** * DOC 技能接口,要绑定的技能都要实现这个接口 * */public interface ISkill { public void castSkill();}         package responsibility;import java.util.ArrayList;import java.util.List;/** * DOC 宏类,用来把多个技能绑在一起,实现一键施放 * */public class Macro { /** * DOC 多个技能绑在一起的集合 */ public List<ISkill> skills = new ArrayList<ISkill>(); /** * * DOC 按照绑定顺序施放技能。 */ public void castSkill() { for (int i = 0; i < skills.size(); i++) { skills.get(i)。castSkill(); } } /** * DOC 绑定技能。 * * @param skill */ public void bindSkill(ISkill skill) { skills.add(skill); }}         package responsibility;/** * DOC 寒冰箭技能,无冷却时间 * */public class IceArrow implements ISkill { @Override public vo......

阅读全文(908) | 评论:1