- 浏览: 37441 次
- 性别:
- 来自: 杭州
最新评论
-
lizhengzy:
...
Java中的ClassLoader -
hezhou_0521:
Servlet&JSP学习系列(3) - Response消息 -
dlutdt:
不错 ! 顺便问一下楼主 杭州哪里可以买到《深入java虚拟机 ...
finally知多少(二)
文章列表
在上文《Java中的ClassLoader》中,已经对ClassLoader做了介绍。在那里也提到过了部分关于ClassLoader的扩展,那么下面我将简单的实现一些自定义的ClassLoader。
ClassLoader中提供了三个方法用于子类扩展其行为:
findResource
findResources
findClass
从它们的名字中已经能知道它们的行为了,因而就不做过多的解释了。
Java中类的加载过程(如Dog类):
1. 通过类型信息定位Dog.class文件。
2. 载入Dog.class文件,创建相应的Class对象。
3. 执行父类的静态字段定义时初始化语句和父类的静态初始化块。
4.
首先来比较两段代码所产生的中间代码:
public class AppConfig {
public static final boolean
在Java中,系统属性是通过System.getProperty(String key)来获取的,也可以通过System.setProperty(String key, Object value)来设置。
对于获取系统属性的代码是非常简单的,主要是把所有系统默认存储的属性打印出来,以后就可以直接查了,不用每次都去Google。
代码:
Properties props = System.getProperties();
for(Entry<Object, Object> entry : props.entrySet()) {
读取Jar文件的部分实现
- 博客分类:
- Tips
读取Jar文件的内容可以通过JarInputStream来实现(继承于ZipInputStream)。
Java中通过ZipEntry来表示Jar中的一项。
JarInputStream提供getNextEntry()方法以遍历Jar文件中的每一项。
JarInputStream提供getManifest()方法以获取Manifest中定义的信息。
JarInputStream提供read()
今天在看ClassLoader源码的时候,突然发现里面有一个叫Void的类使用,代码看起来挺新颖的,摘下来,以备后用。
public abstract class ClassLoader {
private static
问题重现:
今天一刚开始学Java的同学在接触Jsp的时候遇到了一个比较诡异的问题,他在JSP中始终无法使用自己写的类。简单的演示问题代码:
//没有定义包名
public class MyDefaultClass {
}
问题重现
让我们先来看一下以下的程序:
public class StaticInitSequence {
//-------------------Static fields-------------------
private static int staticIntVar = 10;
private static int staticComputeIntVar = (int)(Math.random() * 10);
private static String staticStrVar = "Static field init(before)"; ...
Java接口中的字段默认都是静态常量,不管在编码的时候有没有显示的指定static或者final。
如以下接口:
public interface AccessFlag {
public
接:finally知多少(一)
问题解释
结合《深入Java虚拟机(第二版)》这本书和代码编译后产生的二进制指令代码,我对以上问题做了部分解释,鉴于我的才疏学浅,有些观点是有误的,希望高手指正(有误的观点容易引起误导,这也是所以我一直非常小心,奈何水平有限,有些时候难免出错)。
在《深入Java虚拟机(第二版)》的第18章中提到,在早期的Java中,finally的行为是通过JSR指令来实现的,并且为这个指令引入了微型子程序的概念。我的理解,所谓微型子程序就是在函数A中嵌入一个不完整的函数B的调用。比如在这本书上的一个例子:
private stat
问题重现
先来看一下以下的代码,猜猜他们会是什么样的结果:
public class FinallyIssue {
public static void main(String[] args) {
System.out.println("finallyReturnTest : ");
System.out.println("return value : " + finallyReturnTest(1));
System.out.println("return value : " + finally ...
今天发现把
jar
文件或
.class
文件放在系统配置的
CLASSPATH
目录下,然而在
eclipse
的工程中却是无法加载的
(
通过
ClassLoader
去加载相应的类
)
。最后我发现
eclipse
应该是重新设置了
CLASSPATH
的值了,也正因为这样它才能运行其
bin
目录下的文件。如打开工程目录下的
.classpath
文件:
<?xml version="1.0"
encoding="UTF-8"?>
<classpath>
...
1、概述
在最初的 http 协议中,没有上传文件方面的功能。 rfc1867 (
http://www.ietf.org/rfc/rfc1867.txt
) 为 http 协议添加了这个功能。客户端的浏览器,如 Microsoft IE, Mozila, Opera 等,按照此规范将用户指定的文件发送到服务器。服务器端的网页程序,如 php, asp, jsp 等,可以按照此规范,解析出用户发送来的文件。
Microsoft IE, Mozila, Opera 已经支持此协议,在网页中使用一个特殊的 form 就可以发送文件。
绝大部分 http server ,包括 tomca ...
Servlet是基于HTTP协议的,因而深入了解HTTP协议的消息格式,对理解Servlet有很大的帮助。事实上,HttpServletResponse就是对HTTP响应消息的一种封装。
Reponse的消息格式如下:
[HTTP-Version][SP][Status-Code][SP][Reason-Phrase][CRLF] // Status Line
[headers(key: value)]*
[CRLF]
[Message-Body]
注:SP为空格
CRLF为回车换行
如:
HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
最近突然想看看HTTP的消息到底是怎么回事,在网上搜了几款软件来监控,并且搜到了下面的文章,感觉介绍的不错,就copy下来了。
下文摘自:http://www.imkevinyang.com/2009/11/%E3%80%90%E6%8E%A8%E8%8D%90%E3%80%91%E4%B8%A4%E6%AC%BEhttp%E6%B5%81%E9%87%8F% ...