Archives for the ‘Java’ Category

两种单例模式的探讨

单例模式最简单最常见的两种实现方式:
1、Eager方式(饥饿方式)
public class Singleton {
public final static Singleton INSTANCE = new Singleton();
private Singleton() { }
}
2、Lazy方式(懒惰方式)
public class ClassicSingleton {
private static ClassicSingleton instance = null;

protected ClassicSingleton() { }
public synchronized static ClassicSingleton getInstance() {
if(instance == null) [...]

Java连接access数据库

转自:yexj00’s Blog
JDBC(Java DataBase Connectivity)是Java数据库连接API。JDBC能完成与一个数据库建立连接,然后向数据库发送SQL语句,再处理数据库返回的结果。
JDBC在设计上和ODBC相似。JDBC和数据库建立连接的一种方式是首先建 立起一个JDBC-ODBC桥接器。
首先安装office2000,就有了Access2000,启动Access,建立新数据库mess.mdb,建立包含两个文本型字段name和sex的 表,表名为member,随便录入一 些字符串到member表中,保存在任意目录下,比如说C盘下。然后打开控制面板 -> 管理工具 -> 数据源 (ODBC),选择”系统DSN“,也可以选择”用户DSN”选项卡,系统的DSN对每个用户都适用可避免调试时出现的权限问 题,单击“添加”,选择如下图的项目:

点击”完成”,弹出的对话框里将”数据源名“一 项设为你喜欢的名字,比如redsun。 点”选择“,找 到”C:\mess.mdb”文件,如此一个ODBC数据源就配置好了。
要连接该数据源,也就是连接数据库,首先要建立一个JDBC-ODBC桥接器,上面已经说过了,其方法是:
Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver”);
Class 是Java.lang包中的一个类,通过调用它的静态方法forName就可以建立桥接器。但建立桥接器时可能发生异常,这是我们所不想见到的,因此要捕 获这个异常:
try{ Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver”); } catch(ClassNotFoundException e){异常捕获}
然后就是连接数据库了,这里要用到java.sql包中的Connection类声明一个对象,再用类DriverManager调用它的静态方法 getConnection创建这个连接。
Connection con=DriverManager.getConnection(”jdbc:odbc:数据源名字”,”数据源用户名”,”数据源密码”);
为防止连接出现异常,这里也要有个异常的处理,具体看代码:
=========access.java============

程序代码

import java.sql.*; public class access{ public static void main(String args[]){ Connection con; Statement sql; //声明Statement对象 ResultSet rs; try{ Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver”); } catch(ClassNotFoundException e){ System.out.println(””+e); } try{ con=DriverManager.getConnection(”jdbc:odbc:redsun”,””,””); [...]

关于Java中static方法的重写问题

前几天遇到一个问题: 在子类继承父类时,父类中的静态方法是否可以在子类中被重写?又是否能实现多态?
网上搜一下,大概总结一下:
从效果上来看,static方法是可以被重写的,但是在父类引用子类对象时, 多态就无法实现了,关键在于方法被加载的顺序。当一个方法被调用时,JVM首先检查其是不是类方法。如果是,则直接从调用该方法引用变量所属类中找到该方 法并执行,而不再确定它是否被重写(覆盖)。如果不是,才会去进行其它操作(例如动态方法查询)。所以,当JVM检查到是父类引用时,直接就调用父类中的 静态方法了,而不会去理引用的是什么类型的对象。
看实例最清楚了,同时也是从这篇文章上学到的。点击链接。
以下是引用文章最关键的部分:

类方法的重写? 进行到这儿,对类方法与继承、重写等概念应该有较清楚的认识了。如果您不是很清楚、或者我上面介绍得不够详细,请参考Java的圣经《The Java Language Specification》
现在开始本文的 问题吧:
public class Test { public static void main(String[] args) { Man man = new Programmer(); Programmer pro = new Programmer(); man.printName(“ManCallMe“); System.out.println(); pro.printName(“CallMeByMyself“); } } class Man { public static void printName(String name) { [...]