- 浏览: 415455 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (255)
- Android (53)
- java (57)
- javascript (7)
- linux (19)
- springside3 (6)
- spring (2)
- struts2 (11)
- hibernate (2)
- jsp&servlet (15)
- jquery (1)
- ExtJs (5)
- freemarker (1)
- apache (5)
- mysql (3)
- tomcat (3)
- eclipse&maven (23)
- 电脑小技巧 (1)
- 配置安装 (3)
- 开源框架 (2)
- 设计模式 (2)
- 架构 (2)
- ajax (1)
- 正则表达式 (7)
- 测试 (2)
- 装修 (1)
- 不错的软件 (4)
- http协议 (2)
- 网络 (2)
- windows (2)
- nodejs (1)
最新评论
-
yhyx:
好
JAVA URI URL区别 -
dingbuoyi:
我文章很早以前写的啊 估计软件版本早更新了 你要自己研究一下
windows下Sublime Text 2开发 Nodejs -
di1984HIT:
写的很好,学习了
【转帖】IP网段的计算和划分 -
农民柏柏:
感谢分享
【转】Android实现人人网点击“+”弹出效果 -
lianwanf:
大神,求源码,很想要那jar包.官方的不懂下载啊.谢谢啊. ...
开源框架ignition[二]
原帖地址:http://blog.csdn.net/BU_BetterYou/archive/2008/06/18/2560972.aspx
接上一部份:
以下是一个简单的异常处理例子:
public class ExFun
{
public static void main(String[] args)
{
try
{
System.out.println("In try block");
throw new Exception();
}
catch (java.io.IOException ioEx)
{
System.out.println("In catch IOException block");
System.out.println(ioEx);
}
catch (Exception ex)
{
System.out.println("In catch Exception block");
System.out.println(ex);
}
finally
{
System.out.println("In finally block");
}
}
}
字节码为:
Compiled from "ExFun.java"
public class ExFun extends java.lang.Object
SourceFile: "ExFun.java"
minor version: 0
major version: 50
Constant pool:
(snipped for simplicity)
{
public ExFun();
(snipped for simplicity)
public static void main(java.lang.String[]);
Code:
Stack=2, Locals=3, Args_size=1
0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3; //String In try block
5: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: new #5; //class java/lang/Exception
11: dup
12: invokespecial #6; //Method java/lang/Exception."<init>":()V
15: athrow
16: astore_1
17: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
20: ldc #8; //String In catch IOException block
22: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
25: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
28: aload_1
29: invokevirtual #9; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
32: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
35: ldc #10; //String In finally block
37: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
40: goto 81
43: astore_1
44: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
47: ldc #11; //String In catch Exception block
49: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
52: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
55: aload_1
56: invokevirtual #9; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
59: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
62: ldc #10; //String In finally block
64: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
67: goto 81
70: astore_2
71: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
74: ldc #10; //String In finally block
76: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
79: aload_2
80: athrow
81: return
Exception table:
from to target type
0 16 16 Class java/io/IOException
0 16 43 Class java/lang/Exception
0 32 70 any
43 59 70 any
70 71 70 any
LineNumberTable: (snipped)
StackMapTable: (snipped)
}
“try”块内的操作符是在0~16的范围内,Java源代码的“catch”块是被编在异常(Exception)表的开始两行(0(来自)~16(目标)~16(类型) java.io.IOException,0~6~43 java.lang.Exception),catch的操作符偏移量分别是16和43。也需要注意的是,异常表的最后三行表明了方法的其他地方抛出异常的情况(在异常块内部也一样),必须跳转到操作符70处来进行finally块的处理。而且需要注意的是,每个catch块都会对应一个finally块,所以finally块在字节码中重复出现了两次。这只是一个简单的例子,让我们看见了javac编译产生的字节码输出。
JVM字节码集合有212个操作符,46个保留字为后续扩展使用。完全的集合可以通过JVM规范来了解。
接上一部份:
以下是一个简单的异常处理例子:
public class ExFun
{
public static void main(String[] args)
{
try
{
System.out.println("In try block");
throw new Exception();
}
catch (java.io.IOException ioEx)
{
System.out.println("In catch IOException block");
System.out.println(ioEx);
}
catch (Exception ex)
{
System.out.println("In catch Exception block");
System.out.println(ex);
}
finally
{
System.out.println("In finally block");
}
}
}
字节码为:
Compiled from "ExFun.java"
public class ExFun extends java.lang.Object
SourceFile: "ExFun.java"
minor version: 0
major version: 50
Constant pool:
(snipped for simplicity)
{
public ExFun();
(snipped for simplicity)
public static void main(java.lang.String[]);
Code:
Stack=2, Locals=3, Args_size=1
0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3; //String In try block
5: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: new #5; //class java/lang/Exception
11: dup
12: invokespecial #6; //Method java/lang/Exception."<init>":()V
15: athrow
16: astore_1
17: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
20: ldc #8; //String In catch IOException block
22: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
25: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
28: aload_1
29: invokevirtual #9; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
32: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
35: ldc #10; //String In finally block
37: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
40: goto 81
43: astore_1
44: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
47: ldc #11; //String In catch Exception block
49: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
52: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
55: aload_1
56: invokevirtual #9; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
59: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
62: ldc #10; //String In finally block
64: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
67: goto 81
70: astore_2
71: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
74: ldc #10; //String In finally block
76: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
79: aload_2
80: athrow
81: return
Exception table:
from to target type
0 16 16 Class java/io/IOException
0 16 43 Class java/lang/Exception
0 32 70 any
43 59 70 any
70 71 70 any
LineNumberTable: (snipped)
StackMapTable: (snipped)
}
“try”块内的操作符是在0~16的范围内,Java源代码的“catch”块是被编在异常(Exception)表的开始两行(0(来自)~16(目标)~16(类型) java.io.IOException,0~6~43 java.lang.Exception),catch的操作符偏移量分别是16和43。也需要注意的是,异常表的最后三行表明了方法的其他地方抛出异常的情况(在异常块内部也一样),必须跳转到操作符70处来进行finally块的处理。而且需要注意的是,每个catch块都会对应一个finally块,所以finally块在字节码中重复出现了两次。这只是一个简单的例子,让我们看见了javac编译产生的字节码输出。
JVM字节码集合有212个操作符,46个保留字为后续扩展使用。完全的集合可以通过JVM规范来了解。
发表评论
-
JAVA中的Observable
2012-06-24 16:51 14581 addObserver deleteObserver都是同 ... -
为什么覆盖了equals方法一定要覆盖hashcode方法?
2012-06-08 11:14 13021 测试代码 public class HashMapTe ... -
java synchronized
2012-03-21 11:30 478我的理解,不一定正确的,如果有错误欢迎留言纠正 1 pub ... -
特殊字符与UNICODE码
2011-08-10 17:27 1714Unicode(统一码、万国码、单一码、标准万国码)是计算机科 ... -
【转】如何用ResourceBundle来读取配置文件 .
2011-08-10 16:47 847引用 对于ja va基础很好的人来说,这个应该是简单的不能再简 ... -
嵌入式JVM
2011-02-22 10:22 1345Robert Lougher发布了嵌入式JVM比较结果。他在嵌 ... -
CLASSPATH PATH 解释
2011-02-11 17:01 762ava执行环境本身就是一个平台,执行于这个平台上的程序是已编译 ... -
【转帖】java verbose命令
2011-02-11 17:01 829java -verbose[:class|gc|jni] ... -
JAVA嵌入式开发
2011-02-11 15:07 1107JVM选用 JAMVM http://jamvm.source ... -
JAVA 编译 解释 运行
2011-02-11 10:19 1338java是混合型语言。 先通过JAVA编译器把.java文件编 ... -
【转帖】类分解器JavaP--分析Java字节码
2011-02-11 09:38 1179原帖地址:http://www.comprg.com.cn/d ... -
【转帖】Java字节码揭秘(四)
2011-02-11 09:36 785原帖地址:http://blog.csdn.net/BU_Be ... -
【转帖】Java字节码揭秘(二)
2011-02-11 09:34 787原帖地址:http://blog.csdn.net/BU_Be ... -
【转帖】Java字节码揭秘(一)
2011-02-11 09:33 814原帖地址:http://blog.csdn.net/BU_Be ... -
JAVA volatile 关键字
2011-01-19 16:30 754每次读这个变量仍然要老老实实从内存读取,每次写这个变量也仍然要 ... -
java 排序
2011-01-11 15:47 9891 对象自然排序 第一种方式 排序对象必须实现Comparab ... -
JAVA 静态变量
2011-01-06 10:52 1242个人的总结 1 静态变量只有一份被类的所有实例共享 2 静态变 ... -
java 正则表达式
2011-01-05 17:18 433http://topic.csdn.net/u/2008082 ... -
java 注解
2011-01-05 10:20 388http://www.iteye.com/topic/4000 ... -
java jce provider
2011-01-04 17:41 7771 http://www.bouncycastle.org/
相关推荐
在Java中,设计模式分为三类:创建型模式、结构型模式和行为型模式。 创建型模式关注于对象的创建,它们包括: 1. 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 2. 工厂方法模式(Factory ...
标题中的“论坛转帖工具.rar”表明这是一个用于在论坛之间转移帖子的软件工具,通常用于帮助用户方便地将一个论坛的帖子内容复制到另一个论坛,可能是为了分享信息、讨论或保存重要的帖子。这类工具可能包括自动抓取...
UBB论坛转帖圣手.exeUBB论坛转帖圣手.exe
使用此类工具时,用户需要确保其安全性,因为任何第三方工具都可能存在潜在风险,如账号安全问题、软件携带病毒等。同时,遵循贴吧社区的规定,合理、合法使用转帖工具,避免滥用导致账号被封禁。 此外,工具的使用...
转帖PLCDCSFCS三大控制系统的特点和差异 PLC、DCS、FCS 三大控制系统是自动化技术中的热点,各有其特点和差异。下面对这三大控制系统的特点和差异进行分析。 1.PLC(Programmable Logic Controller) PLC 是一种...
本篇文章将详细探讨“编辑人员转帖去水印工具”,并介绍如何使用名为Teorex Inpaint的1.0.0.2版本的软件来实现这一目标。 首先,我们要理解什么是水印。水印通常是指在图像或视频中添加的半透明标记,它可以是文字...
三、使用注意事项 1. 法律合规:使用这类工具时,必须确保所发布的帖子内容合法,不侵犯他人权益,遵循网络道德规范,尤其是版权法和隐私保护。 2. 论坛规则:每个论坛都有自己的规定,使用批量发帖工具前,应了解并...
J2ME全方位开发讲解基础汇总[转帖] 一、J2ME中需要的Java基础知识 现在有大部分人,都是从零开始学J2ME的,学习J2ME的时候,总是从Java基础开始学习,而且现在讲Java基础的书籍中都是以J2SE来讲基础,这就给学习造成...
1.修改自Convert X转帖工具 2.新增批量替换关键词(原来是单个词语替换,可以利用这个...5.新增按颜色屏蔽干扰码 6.新增减少缩进以及优化了首行缩进 7.优化一些小细节 8.重新布局优化显示及方便操作 9.不断更新中...
团队成员应根据各自的优势分配任务,如一人负责算法设计,另一人负责代码实现,第三人则专注于调试和优化。团队还需要建立一套有效的工作流程,确保每个人都能及时获取信息并协同工作。 6. **心理素质与时间管理**...
7. **安全与性能**:在使用任何第三方插件时,都应注意其可能带来的安全风险。虽然这个插件声称无需修改核心文件,但用户仍需关注插件的安全性,避免引入潜在的漏洞。 8. **故障排查**:如果在使用过程中遇到问题,...
这个插件的安装分为三个主要步骤: 1. **上传文件**:将`copyto.js`和`copyto.php`这两个关键文件复制并上传到帝国CMS系统的根目录下。这是为了让系统能够识别和调用这两个文件,以便实现一键转帖的功能。 2. **...
"一键转帖功能插件 for 帝国CMS v1.0.rar" 是一个专为帝国CMS设计的扩展工具,其主要目标是简化用户在网站上分享内容的过程,提高用户体验。这个插件允许用户轻松地将网站上的文章或信息复制并转发到其他平台,如...
转帖图片提取工具可以对论坛图片附件信息进行清除,只保留图片代码,操作很简单,推荐有需要转帖图片工具的朋友下载 转帖图片提取工具使用方法: 将IP138上处理过的东西复制到上方的编辑框内,点击只要图片,下面...
标题中的“论坛专用屏蔽干扰码转贴工具”指的是一个专为论坛设计的软件,它的主要功能是处理并转换论坛上常见的干扰码,以便用户能够顺利地复制和粘贴信息。在论坛交流中,有时为了防止恶意爬虫或者保护内容不被搜索...
HTML2UBBMaxcj 是一款专为Softii论坛设计的转帖工具,它主要用于将HTML格式的帖子内容转换成UBB代码,以便在论坛中更好地显示和分享。UBB(Universal BBCode)是一种轻量级的标记语言,常用于网络论坛,与HTML类似,...
JProfiler是一款功能强大的Java性能分析工具,它可以对Java应用程序、Applets、Java Web Start应用以及应用服务器进行性能监控与分析。通过深入地分析内存使用、线程活动、垃圾回收等关键性能指标,帮助开发人员及...
看到论坛里帖子由精美的图片想转过来,或者批量提取地址时很好用
转帖:本项目是一个聊天机器人的小例子,使用的图灵(www.tuling123.com)提供的聊天api,javaapk之前也发布过一个聊天机器人http://www.javaapk.com/source/1488.html,现在的问答机器人只能分析关键字做一个简单的...