Java异常处理
六种异常处理的陋习
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?
Java代码
OutputStreamWriter out = ...
java.sql.Connection conn = ...
try { //捕获异常
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(
"select uid, name from user");
while (rs.next())
{
out.println("ID:" + rs.getString("uid") // ⑹
",姓名:" + rs.getString("name"));
}
conn.close();
out.close();
}
catch(Exception ex) { //异常处理
ex.printStackTrace();
}
OutputStreamWriter out = ...
java.sql.Connection conn = ...
try { //捕获异常
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(
"select uid, name from user");
while (rs.next())
{
out.println("ID:" + rs.getString("uid") // ⑹
",姓名:" + rs.getString("name"));
}
conn.close();
out.close();
}
catch(Exception ex) { //异常处理
ex.printStackTrace();
}
作为一个Java程序员,你至少应该能够找出两个问题。但是,如果你不能找出全部六个问题,请继续阅读本文。
本文讨论的不是Java异常处理的一般性原则,因为这些原则已经被大多数
相关文档:
java byte与char互转原理-转
一、字节和unicode
Java内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式是使用字节流的。因此Java要对这些字节流经行转化。 char是unicode的,而byte是字节。Java中 byte/char互转的函数在sun.io的包中间有。其中ByteToCharConverter类是中调度,可以用来告诉你, ......
package com.deng.oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestOracle {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriv ......
1)静态变量本身不会被回收
2)静态变量所引用的对象是可以回收的。
第一点大家应该没有疑问,下面我证明第2点:
看下面的例子及注释。自己可以运行试一下, 注意加上-verbose:gc参数
java -verbose:gc TestStaticGc
// TestStaticGc.java
public class TestStaticGc {
& ......
真是惭愧啊, 学了怎么久 java, 现在才知道 java 的基本数据类型是不存在有符号和无符号这种东西的. 平时都没有搞字节和位之类的运算, 所以倒是没有注意到这个方面呢.
JAVA中的基本数据类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。(这句抄的)
Java简单数据类型
......
数据库连接
流是指一连串流动的字符,是以先进先出的方式处理的。
构造一个文件输入流对象:InputStream o = new FileInputStream(“a.txt&rdquo ......