- java 在 switch 语句这一项上更多的是承袭了 c++,其实整个语法就是 c 风格的。java 的 switch 里只能用 byte、char、short、int 和 enum 类型,连 long 型都不能用(因为 switch 里的要被转换为 int 型,而 long 太长了)。要说不支持 float 和 double 那样的浮点那好理解,因为它们本身是不精确的,1 可能是 0.9999999999。boolean 就两值,放 switch 里无意义,因为 c++ 的 switch 里可用bool 型,但在 java 中遭摈弃。
现在在 jdk7 里 switch 可以用字符串了,学了 c#,字符串的好处就是它是表意的,像 switch(action) case "create" : ...; case "delete" : .....,多写意啊,再也不用先定义一堆常量,然后再 switch(action) case Constants.ACTION_CREATE : ......; case Constants.ACTION_DELETE : ......,当然写过不少程序的尽量会避免写成 case 1... case 2 这样的写法了,会让人不知所以的。常量放在 case 中就要求我们经常要去查它定义的值是什么。 Read More - 再次进入到 JDK7 语法增强的第二道道上来,也就是数值常量书写时可以中间插入下划线作为分隔线,也就是 int i = 22_33 相当于 int i = 2233,仅仅是一定程度上的有助于阅读代码,除此之外,别无它处。编译后或执行时这些下划线便透明掉了,编译后的字节码里也没有了附加的下划线,当然执行时也不可能向你输出下整数 i 为 22_33 的。
也不知道是谁只是众目期盼中的版本净找些这类来增强,感觉意义不是很大,大约类同于二进制方式来表示整数。这里的数值包括整数和小数的,加上 16 进制那么可用来表示数字的字符就有 0-9 和 a-f(A-F) 了,注意下划线只能加在前面所列的某两个字符之间,而且可连续多个下划线。看例子吧: Read More - JDK 7 预览版已出,当然到实际的使用还有段时间,包括 IDE 的和各大主要的应用服务器的升级,及 JDK 7 本身的稳定尚须时日,但我们还是有必须瞧瞧新版 JDK 带来了哪些语法增加。
我们没有盼到闭包,相对于 JDK 5 的语法增强,JDK 7 的动作还较小,大约 8 个,这里介绍第一个 二进制字面常量。
1)二进制字面常量 -- 任何整数类型(byte, short, int 和 long) 声明时可用二进制的形式,即 01 串,只要数字前加上 0b 或 0B 即行。 Read More - 在 Tomcat 中可以配置 reloadable="true" 做到类改变后,Tomcat 重新加载。其实这个过程大约也是当 Tomcat 发现有改变的类会重新启动一个新的应用程序重新加载所有的类来服务于新的请求,只是不需要你手动的去执行 shutdown.sh(.bat),再 startup.sh(.bat)。这种方式对于古老的 jsp 程序完全能从容以对,因为 web.xml 里几乎没什么随应用一起启动且耗时长代码;但当下是框架横行,web.xml 中随应用一起启动的程度可谓是争先恐后的,所以仅仅依赖 reloadable="true" 是满足不了需求的。每改一个类(无论是改动了方法体中的代码还是变动了类的结构,准确的说是动了 WEB-INF/classes 目录中的任何文件) 你都可能就会在
Jan 28, 2011 7:19:42 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext Read More - 无名博客再次收集更新了一些Linux VPS下的一键安装包,一键安装包可以大大简化人工成本,节约时间,不仅方便了使用Linux VPS的小白,对于Linux老手来讲编译安装需要输入大量的命令,如果是配置生产环境需要耗费大量的时间。这些一键安装包使用非常简单,傻瓜化的安装方 式,采用Shell编写,容易修改。这次添加了cnBeta网友留言里的一键安装包。 Web套装一键安装包
LNMP一键安装包
LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat、Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序。
适用系统:CentOS/Debian/Ubuntu
安装方法:猛击这里 Read More - 在用 jquery 1.4.2 的 $.ajax() 时:
1$.ajax({ 2 url: "updateRoles.action", 3 data: form.serialize(), 4 dataType: "json", 5 success: function(msg){ 6 7 }, 8 complete: function(xhr,msg){ 9 alert(msg); 10 } 11});
在其他浏览器中表现的很好,但是在 IE(7/8) 下总报 parsererror 错误。在 jquery 中找到 parsererror,定位在 5989 行: Read More - Java 步入到 Tiger 后增加了自动拆装箱特性,构造 Integer 不用 Integer i = new Integer(1); 或者 Integer i = Integer.valueOf(1); 只要写成 Integer i=1 就行了。Java 的自动拆装箱只是针对基本类型与其封装类型之间的转换,无法自定义类似的行为,比如想实现某个自定义类 Item,能够通过 Item i = 1; 就完成从整形 1 到自定义类的自动装箱功能。
Java 在目前还是没办法做到的,当然也是我自己的一个猜想。Java 的自动拆装箱与 C# 相比也是要弱些,C# 中 int 仅仅是 Int32 这样的类型的别名,所以它们也是等效的,声明 int i=0; 你就可以呼叫 i.ToString() 方法了。可以说 C# 比 Java 更对象化了。
现在来看下 C++ 是怎么实现自定义类的 Item i = 10; 这样的声明的,见代码: Read More - 我们什么时候会接触到 Java 的方法签名呢?在进行 JNI 调用时,还有在看方法重载时。重载的方法是有不同的方法签名的,而是不区分返回值,而实际方法签名还揉入了返回值类型的,还有就是 javap -s 查看方法签名时,如 javap -s java.util.Date。
看来方法签名与我们实际工作的关系还真的不大。倒是有次遇着了,事出于 Struts2 应用中提交表单时报出了下面的错误:
00:43:59.716 [http-8080-4] WARN com.opensymphony.xwork2.ognl.OgnlValueStack - Error setting expression 'version' with value '[Ljava.lang.String;@e18a9a'
ognl.MethodFailedException: Method "setVersion" failed for object cc.unmi.model.Post@ed0cd7
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1285) ~[ognl-3.0.jar:na]
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474) ~[ognl-3.0.jar:na]
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85 Read More - 在Maven中,使用第三方库一般是通过pom.xml文件中定义的dependency从远程repository中下载该库。但是如果库文件是公司内部的库,或者在本地而不能通过远程repository下载,这种情况下,有两种方法可以满足需求。
方法一:
将本地的jar文件安装到本地repository中,具体步骤如下:
1、准备好本地的jar文件
2、使用如下命令安装jar文件
mvn install:install-file -Dfile=abc.jar
-DgroupId=com.mycompany.myproduct -DartifactId=abc
-Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
其中,-Dfile制定jar文件的位置。执行完该命令后,会在本地repository(通常是$HOME\.m2目录)中出现一个目录(com),在其下会有一个abc-1.0.jar的文件和一个自动产生的pom文件。 Read More - 笔者致: 当你打开这个页面的时候, 基本就无需再看后面的内容了, 因为直接用
LinkedHashMap就能满足您的需求. 文中对这个问题的探索只是不知道别人早已过河了, 仍然在河里摸着石头.LinkedHashMap是 JDK 1.4 加进来的, 之所以有apache-commons ListOrderedMap大约是因为它最早所处的是 JDK 1.4 之前的年代.
在使用 Java 的 Hashmap 时,输出 Map 中的值如何使之按放入的顺序输出来,像 List 那样保持顺序。这里的顺序不是说对集合中的数据进行的排序,要是的话用 TreeMap,像 TreeSet 一样就行。 我们看个例子:1Map<String, Integer> map = new HashMap<String, Integer>(); 2map.put("a", 12); 3map.put("b", 11); 4map.put("c", 3); 5 6for (String key : map.keySet()) { 7 System.out.println(map.get(key)); 8}
Read More