关于JAVA的try catch finally的一个问题
class TestTryFinallyC {
public static void main(String[] args) {
System.out.println(testt());
}
public static int testt() {
int x = 99;
try {
return x;
}finally {
x = 8;
}
}
}
某年某月的某一天,群里一位仁兄发了上边的代码。
结果是出人意料的。
下面我发一下这段代码的JVM完整指令
Compiled from "TestTryFinallyC.java"
class TestTryFinallyC extends java.lang.Object
SourceFile: "TestTryFinallyC.java"
minor version: 0
major version: 50
Constant pool:
const #1 = class #2; // TestTryFinallyC
const #2 = Asciz TestTryFinallyC;
const #3 = class #4; // java/lang/Object
const #4 = Asciz java/lang/Object;
const #5 = Asciz <init>;
const #6 = Asciz ()V;
const #7 = Asciz Code;
const #8 = Method #3.#9; // java/lang/Object."<init>":()V
const #9 = NameAndType #5:#6;// "<init>":()V
const #10 = Asciz LineNumberTable;
const #11 = Asciz LocalVariableTable;
const #12 = Asciz this;
const #13 = Asciz LTestTryFinallyC;;
const #14 = Asciz main;
const #15 = Asciz ([Ljava/lang/String;)V;
const #16 = Field #17.#19; // java/lang/System.out:Ljava/io/PrintStream;
const #17 = class #18; // java/lang/System
const #18 = Asciz java/lang/System;
const #19 = NameAndType #20:#21;// out:Ljava/io/PrintStream;
const #20 = Asciz out;
const #21 = Asciz Ljava/io/PrintStream;;
const #22 = Method #1.#23; // TestTryFinallyC.testt:()I
const #23 = NameAndType #24:#25;// testt:()I
const #24 = Asciz testt;
const #25 = Asciz ()I;
const #26 = Method #27.#29; // java/io/PrintStream.println:(I)V
const #27 = class #28; // java/io/PrintStream
const #28 = Asciz java/io/PrintStream;
const #29 = NameAndType #30:#31;// println:(I)V
const #30 = Asciz println;
const #31 = Asciz (I)V;
const #32 = Asciz args;
const #33 = Asciz [Ljav
相关文档:
1. Struts体系结构实现了MVC设计模式的概念,那么它将以下选项中给出的什么分别映射为web应用中的组件?( )
A View
B Model
C ActionServlet
D Action
E ActionMapping
F Controller
参考答案:ABF
2. 在Struts体系结构中,以下哪个由代表系统状态和商业逻辑的Action来构建 ......
public boolean copy(String from, String to) {
boolean temp=true;
FileInputStream stream;
try {
stream = new FileInputStream(new File(from));
FileOutputStream bos = new FileOutputStream(to);
int bytesRea ......
1、 Java对象赋值
Java代码
Employee e1=
new
Employee(
"李"
);
//Employee是一个自定义类
Employee e2=e1; //赋值对象
e2.setName("王"
);
//改变对象e2的名字
System.out.println(e1.getName ......
JAVA中的传递都是值传递吗?有没有引用传递呢?
在回答这两个问题前,让我们首先来看一段代码:
Java代码
public class ParamTest {
// 初始值为0
protected int num = 0;
// 为方法参数重新赋值
public void change(int i) {
i = 5;
}
// 为方法参数重新赋值
public void change(ParamTest t) {
P ......
在Java中,如果在对一个List或者Map排序,可以采用Collections的集合类中的sort方法来对List进行排序。至于map,可以使用TreeMap自动排序。
但以上排序仅仅是对英文排序时,才会正确,若果数据里面存在中文和英文时,那么排序就乱了。
现在我实现的方法是按照中文的拼音来排序。(网上,还有按笔画排序,在这里我就不一一 ......