标签 ‘java’
通过Java的static,理解JavaScript的prototype
先看两段代码:
Java 代码
public class Dog {
public static final String type="golden retriever";
public Dog(String name){
System.out.println(name + " is a " + type + " dog.");
}
public static void main(String[] args){
Dog dog = new Dog("tom_1");
dog = new Dog("tom_2");
}
}
JavaScript 代码
function Dog(name){
alert(name+ " is a " + this.type +" dog");
}
Dog.prototype.type="golden retriever";
var dog = new Dog("tom_1");
dog = new Dog("tom_2");
共性:
1、都是在构造方法之前就已经初始化了;
2、所有实例对象共享同一个变量;
在对List做remove操作时抛出java.lang.UnsupportedOperationException
日期:十月 27th, 2011 分类:编程相关
原因:
那个List是通过Arrays.asList()这个方法构造的,一直以为返回的就是一个ArrayList,今天查看了源码发现错了,是Arrays里面一个名叫ArrayList的私有类。
public class Arrays {
...
public static List asList(T... a) {
return new ArrayList(a);
}
private static class ArrayList extends AbstractList
implements RandomAccess, java.io.Serializable
{
...
}
...
}
它也继承自AbstractList,只是没有实现remove方法,而AbstractList类中remove方法默认是抛java.lang.UnsupportedOperationException异常的。
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
...
public E remove(int index) {
throw new UnsupportedOperationException();
}
...
}
分享:serialVersionUID for NetBeans 7.0.1
Netbeans 最近从7.0升级到了7.0.1,常用的serialVersionUID插件不可用,于是找官网,发现已经更新了。
地址:http://kenai.com/projects/nb-svuid-generator/downloads/directory/nbms/nb7.0.1
Notes: glassfish 出现__admingui/common/index.jsp not found 的问题处理
日期:八月 9th, 2011 分类:Linux服务器相关, 技术, 编程相关, 网站运营相关
这几天出现了一个奇怪的现象,glassfish的管理端“无缘无故”的登录不了了,查看server.log见以下错误:
File "%2Fopt%2Fglassfish3%2Fglassfish%2Flib%2Finstall%2Fapplications%2F__admingui%2Fcommon%2Findex.jsp" not found|#]
整理下:
File "/opt/glassfish3/glassfish/lib/install/applications/__admingui/common/index.jsp" not found|#]
这个是管理端的首页,更换了好几个全新的glassfish版本在服务器上的现象依旧,本地跑却一点儿事情没有,实在是不明白原因。
最后在这里:http://www.java.net/node/699754 得到了提示,一个叫 dcam 的家伙说:
深入理解JVM
带着问题去学习,jvm分析
[root@localhost ~]# jstat -gcutil 3461 2000 S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 0.00 23.72 6.21 53.61 9 1.302 3 5.263 6.564 0.00 0.00 23.72 6.21 53.61 9 1.302 3 5.263 6.564 0.00 0.00 23.72 6.21 53.61 9 1.302 3 5.263 6.564 0.00 0.00 23.72 6.21 53.61 9 1.302 3 5.263 6.564 0.00 0.00 23.72 6.21 53.61 9 1.302 3 5.263 6.564
上面是一段通过JVM内建的指令jstat对一个Java应用程序的资源和性能进行实时监控的记录,“3461”是Java应用程序的进程ID,“2000”是指每隔2秒钟采集一次监控数据。
各个数据的含义:
在web页面中提供打印功能
最近一个项目需要在页面里面提供打印功能,这个功能似乎看起来很不起眼,因为在目前各大网站的文章页面都有打印功能,之前的项目也使用过,而且很简单就一句话:
window.print();
调用本地的打印接口,很方便,也很轻量,主流浏览器支持非常好,用户只要点个按钮或者链接就基本上搞定。 但是也有问题,比如不能精确分页,不能设置纸型等。
除此之外,还有两种常见的基于网页的打印方式:
打开浏览器来编程,CodeRun – 基于web的IDE开发工具
作为开发人员,IDE应该是再熟悉不过了,每当我们编程时大部分时间是通过IDE来辅助的,但是有时候刚好手头的这台电脑没有安装IDE,闲暇之余想写点东西的想法就因此破灭了。
当然上面的可能只是借口,但是这种不方便还是存在的,OK,现在给你推荐一个在线的IDE – CodeRun。
CodeRun 是一个跨平台的集成开发环境,它立足于云计算的设计思路,方便开发者在浏览器端便可以轻松开发、调试和部署网络应用程序。
目前,CodeRun 主要支持一些Web开发语言,包括C#/.NET (3.5), PHP (5.1), JavaScript, HTML 以及 CSS等,其中C#项目包括ASP.NET, WCF, Silverlight 和 WPF, MVC等项目,JavaScript脚本项目支持目前流行的JQuery, ExtJS, YUI等框架,其中数据库支持SQL Server 2005 和 Amazon SimpleDB。
具体的支持情况,请参见下表:(点击可以放大)
比较吸引人的一块是,CodeRun可以直接在线Run和Debug,很不错!
不知道啥时候可以支持Java呢?
Java HTML 解析器:jsoup
jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。
比起之前用的HTMLParser方便很多,而且更轻便。
简单一句就可以搞定HTML过滤:
String tt ="你访问的是<a href='http://www.quanlei.com/' target='_blank'>权记</a>网站。"; System.out.println(Jsoup.parse(tt).text());
同时还有其他一些更好的支持,比如:
1、对 HTML文档中链接可以进行处理。
2、对可能怀有恶意的HTML进行处理。
3、对 HTML 修改节点的属性、内容等。
更多内容,请查看 jsoup 或者 http://www.oschina.net/p/jsoup
利用JSON插件进行数据交换格式(includeProperties和excludeProperties用法)
JSON(Java Script Object Notation),是一种语言无关的数据交换格式。 JSON插件是Structs 2 的Ajax插件,通过利用JSON插件,开发者可以很方便,灵活的利用Ajax进行开发。
Json是一种轻量级的数据交换格式,JSon插件提供了一种名为json的Action ResultType 。一旦为Action指定了该结果处理类型,JSON插件就会自动将Action里的数据序列化成JSON格式的数据,并返回给客户端物理视图的JavaScript。简单的说,JSON插件允许我们在JavaScript中异步的调用Action。
而且Action不需要指定视图来显示Action的信息显示而是由JSON插件来负责具体将Action里面具体的信息返回给调用页面。Json的数据格式可简单如下形式: person = { name: ‘Jim’,age: 18,gender: ‘man’}。
如果action的属性很多,我们想要从Action返回到调用页面的数据。这个时候配置includeProperties或者 excludeProperties拦截器即可。而这2个拦截器的定义都在struts2的json-default包内,所以要使用该拦截器的包都要继承自json-default。
<struts>
<constant value="spring" name="struts.objectFactory" />
<include file="struts-admin.xml"></include>
<package name="default" extends="json-default">
<action class="com.person.PersonAction" name="person" method="view">
<result type="json">
<param name="includeProperties">person\.name,persoon\.age,person\.gender </param>
</result>
</action>
</package>
</struts>




