public class TestTryCatch {
public static void main(String[] args){
int test1 = test1();
System.out.println("main block : "+test1);
}
public static int test1(){
int i = 1;
try{
i++;
System.out.println("try block, i = "+i);
}catch(Exception e){
i++;
System.out.println("catch block i = "+i);
}finally{
i = 10;
System.out.println("finally block i = "+i);
}
return i;
}
}
测试结果如下:
try block, i = 2
finally block i = 10
main block : 10
try catch finally每个部分,基本类型变量 i 都被修改值,最后返回值取finally中i的最终值。此时整个方法中只有一个局部变量 i 。
即,方法末尾处返回的变量取值于最后一次被修改的值!
② 在try catch 部分分别放return语句
测试代码如下:
public static int test2(){
int i = 1;
try{
i++;
System.out.println("try block, i = "+i);
return i;
}catch(Exception e){
i++;
System.out.println("catch block i = "+i);
return i;
}finally{
i = 10;
System.out.println("finally block i = "+i);
}
}
测试结果如下:
try block, i = 2
finally block i = 10
main block : 2
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
// try catch finally处 return
public static int test22(){
int i = 1;
try{
i++;
int m = i / 0 ;
System.out.println("try block, i = "+i);
return i;
}catch(Exception e){
i++;
System.out.println("catch block i = "+i);
return i;
}finally{
i = 10;
System.out.println("finally block i = "+i);
return i;
}
}
测试结果如下:
catch block i = 3
finally block i = 10
main block : 10
public static List test52(){
List list = new ArrayList<>();
try{
list.add("try");
int i = 10/0;
System.out.println("try block");
return list;
}catch(Exception e){
list.add("catch");
System.out.println("catch block");
return list;
}finally{
list.add("finally");
System.out.println("finally block ");
return list;
}
}
测试结果如下:
catch block
finally block
main block : [try, catch, finally]
方法编译后的源码如下:
public static List test52() {
ArrayList list = new ArrayList();
try {
list.add("try");
int i = 10 / 0;
System.out.println("try block");
} catch (Exception var6) {
list.add("catch");
System.out.println("catch block");
} finally {
list.add("finally");
System.out.println("finally block ");
return list;
}
}
public static Integer test42(){
Integer i = new Integer(100);
try{
i++;
System.out.println("try block, i = "+i);
return i;
}catch(Exception e){
i++;
System.out.println("catch block i = "+i);
return i;
}finally{
i = new Integer(110);
System.out.println("finally block i = "+i);
}
}
测试结果如下:
try block, i = 101
finally block i = 110
main block : 101
方法编译后的代码如下:
public static Integer test42() {
Integer i = new Integer(100);
Integer var2;
try {
i = Integer.valueOf(i.intValue() + 1);
System.out.println("try block, i = " + i);
Integer var1 = i;
return var1;
} catch (Exception var7) {
i = Integer.valueOf(i.intValue() + 1);
System.out.println("catch block i = " + i);
var2 = i;
} finally {
i = new Integer(110);
System.out.println("finally block i = " + i);
}
return var2;
}
// 方法末尾处 return try中抛异常
public static int test11(){
int i = 1;
try{
i++;
int m = i/0;
System.out.println("try block, i = "+i);
}catch(Exception e){
i++;
System.out.println("catch block i = "+i);
}finally{
i = 10;
System.out.println("finally block i = "+i);
}
return i;
}
测试结果如下:
catch block i = 3
finally block i = 10
main block : 10
方法编译后源码如下:
public static int test11() {
byte i = 1;
try {
int i;
try {
i = i + 1;
int m = i / 0;
System.out.println("try block, i = " + i);
} catch (Exception var5) {
i = i + 1;
System.out.println("catch block i = " + i);
}
} finally {
i = 10;
System.out.println("finally block i = " + i);
}
return i;
}
② try catch中return,try中抛异常 测试代码如下:
// try catch return try中抛异常
public static int test12(){
int i = 1;
try{
i++;
int m = i/0;
System.out.println("try block, i = "+i);
return i;
}catch(Exception e){
i++;
System.out.println("catch block i = "+i);
return i;
}finally{
i = 10;
System.out.println("finally block i = "+i);
}
}
测试结果如下:
catch block i = 3
finally block i = 10
main block : 3
方法编译后源码如下:
public static int test12() {
byte i = 1;
int var2;
try {
int i;
try {
i = i + 1;
int m = i / 0;
System.out.println("try block, i = " + i);
var2 = i;
return var2;
} catch (Exception var6) {
i = i + 1;
System.out.println("catch block i = " + i);
var2 = i;
}
} finally {
i = 10;
System.out.println("finally block i = " + i);
}
return var2;
}
// try catch finally处 return try finally 抛出异常
public static int test23(){
int i = 1;
try{
i++;
int m = i / 0 ;
System.out.println("try block, i = "+i);
return i;
}catch(Exception e){
i++;
System.out.println("catch block i = "+i);
return i;
}finally{
i = 10;
int m = i / 0 ;
System.out.println("finally block i = "+i);
return i;
}
}
测试结果如下:
catch block i = 3
Exception in thread "main" java.lang.ArithmeticException: / by zero
at com.jane.TestTryCatch.test23(TestTryCatch.java:222)
at com.jane.TestTryCatch.main(TestTryCatch.java:23)
方法编译后源码如下:
public static int test23() {
label39: {
byte i = 1;
boolean var8 = false;
label36: {
try {
int i;
try {
var8 = true;
i = i + 1;
int m = i / 0;
System.out.println("try block, i = " + i);
var8 = false;
break label36;
} catch (Exception var9) {
i = i + 1;
System.out.println("catch block i = " + i);
var8 = false;
}
} finally {
if(var8) {
i = 10;
int var5 = i / 0;
System.out.println("finally block i = " + i);
return i;
}
}
}
}
}
Tomcat的组成部分 1、server
A Server element represents the entire Catalina servlet container. (Singleton) 2、service
service包括多个connector以及一个engine,其职责为处理由connector获得的客户请求。
3、connector
一个connector
基本概念: 1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率。 2.OOP中最重要的思想是类,类是模板是蓝图,
由于明天举要上课,所以刚刚将代码敲了一遍PL/SQL的函数和包体的实现(单例模式过几天好好的总结下再发出来);以便明天能更好的学习PL/SQL的循环,今天太累了,所以早点睡觉,明天继续PL/SQL总有一天我会将你永远的记载在心里,,,
函数;
函数:PL/SQL中的函数相当于java中的方法;函数有返回值
定义函数的
--输入姓名找到该姓名的年薪
create or re
/*
*编写控制结构
*/
--条件分支语句
--简单条件判断
DECLARE
v_sal NUMBER(6,2);
BEGIN
select sal into v_sal from emp
where lower(ename)=lower('&name');
if v_sal<2000 then
update emp set
public class CollectionDemo implements Serializable,Comparable<CollectionDemo>{
private static final long serialVersionUID = -2958090810811192128L;
private int id;
private String nam