随笔分类 -  java

摘要:数据库连接是我们通常会创建出Connection、Statement、ResultSet的对象,新手可能会如下使用:Connection connection=DriverManager.getConnection(“数据库 的url”); Statement statement =connection.createStatement(); //接着是一些操作数据库的JDBC代码 ResultSet resultSet = …… …… resultSet.close(); statement.close(); connection.close();以上方法是错误的。因为如果与数据库创建... 阅读全文
posted @ 2012-02-25 16:36 我的IT技术 阅读(545) 评论(0) 推荐(0)
摘要:1、Servlet是Java EE应用中另一种常用的组件,是继JDBC后,Java EE技术的第二个重要发明。2、JSP与Servlet的区别:JSP是嵌入Java代码的HTML页面,JSP页面是转换为Servlet来执行的。Servlet是嵌入了HTML的Java类。3、Servlet执行请求和响应的处理。4、在Web应用程序中,<servlet>元素是用于描述Servlet的基本元素。<servlet>可以有下面的子元素:·<icon> ·<servlet-name>:定义一个用户友好的名称,用于表示所用到的资源。  阅读全文
posted @ 2012-02-24 19:58 我的IT技术 阅读(364) 评论(0) 推荐(0)
摘要:如同其它的Swing组件,JTable使用MVC(模型、试图、控制器)设计方式,将可视化组件(JTable实例)从其数据(TableModel实现)中分离出来。·TableModel接口1、TableModel为JTable提供·显示的数据·表格的维数·表格中每一列所包含的数据类型·应该显示的列标题·是否允许编辑指定单元格的值2、实现TableModel:TableValues类importjavax.swing.table.AbstractTableModel; /** * 注意:一般使用AbstractTableModel创建Ta 阅读全文
posted @ 2012-02-17 21:42 我的IT技术 阅读(2807) 评论(0) 推荐(0)
摘要:这俩天看《Java高级编程》,看到下面这例子,觉得挺适合新手学习Thread的,所以记录下来,供向我这样的菜鸟学习学习,大牛可以直接忽略。想法:完善并提高此程序的功能,做个专属自己的下载器。(2012/02/14 23:56 )此程序主要有3个类:Downloader、DownloadManager、DownloadFiles。1、Downloader:读取并写入数据2、DownloadManager:主要用于控制下载,有开始、暂停、恢复、停止等功能3、DownloadFiles:用于在文本框中输入URL并创建对应的DownloadManager类的实例涉及到的知识点有:线程(Thread)、 阅读全文
posted @ 2012-02-14 23:54 我的IT技术 阅读(712) 评论(0) 推荐(0)
摘要:1、Java中“流“类库让人迷惑的主要原因:创建单一的结果流,却需要创建多个对象。2、使用层叠的数个对象为单个对象动态地、透明地添加职责的方式,称作“修饰器“模式。修饰器必须与其所修饰的对象具有相同的接口,这使得修饰器的基本应用具有透明性——我们可以想修饰过或没有修饰过的对象发送相同的消息。3、为什么使用修饰器? 在直接使用扩展子类的方法时,如果导致产生了大量的、用以满足所需的各种可能的组合的子类,这是通常就会使用修饰器——处理太多的子类已经不太实际。4、修饰器的缺点:增加代码的复杂性。5、JavaI/O类库操作不便的原因在于:我们必须创建许多类——“核心”I/O类型加上所有的修饰器,才能得到 阅读全文
posted @ 2012-02-05 19:40 我的IT技术 阅读(431) 评论(0) 推荐(0)
摘要:上接:《Java编程思想》之对象的集合(数组、List、Set、Map)一22、使用自己创建的类作为HashMap的“键”,需要同时覆盖hashCode()和equals()。原因如下:1).默认的hashCode()继承自Object,它默认是使用对象的地址计算散列码。因此即使俩个对象的实例的内容相同,对象的地址是不同的,所以默认的hashCode()得到的散列码是不同的。如下例子:import java.util.HashMap; import java.util.Map; public class TestHashMap{ private int id; public Tes... 阅读全文
posted @ 2012-02-03 22:07 我的IT技术 阅读(428) 评论(0) 推荐(0)
摘要:1、Arrays类:提供了操作数组的一些static方法,如fill() 用于以某个值填充整个数组。sort() 用于对数组的排序,需要参数的类型实现Comparable接口binarySearch() 用于在已经排序的数组中查找元素。asList() 接受任意的数组为参数,并将其转变为List容器。……2、如果一个字符串需要多次改变其值,那么应该使用更高效的StringBuffer取代String。3、复制数组System.arraycopy(),用它复制数组比用for循环复制要快得多。4、基本类型数组和对象数组都可以复制,然而,如果复制对象数组,那么只是复制了对象的引用——而不是对象本身的 阅读全文
posted @ 2012-02-03 00:19 我的IT技术 阅读(464) 评论(0) 推荐(0)
摘要:1、类型时类型识别(run-timetype identification,RTTI):当之有一个指向对象的引用时,RTTI可以让你找出这个对象的确切类型。2、Java运行时识别对象和类的信息,主要有俩种方式:1).一种是“传统“RTTI,它假定我们在运行时已经知道了所有的类型。2).另一种是“放射“机制,它允许我们在运行时获得类的信息。3、Class对象:每个类都有一个Class对象,保存在一个同名的.class文件中,它包含了与类相关的信息。4、在运行时,当我们想生成这个类的对象时,运行这个程序的Java虚拟机(JVM)首先检查这个类的Class对象是否已经加载,就会根据类名查找.clas 阅读全文
posted @ 2012-02-01 16:57 我的IT技术 阅读(413) 评论(0) 推荐(0)
摘要:1、抛出异常之后1).使用new在对象上创建异常对象2).终止当前的执行路径3).从当前环境中弹出对异常对象的引用4).异常处理机制接管程序,并开始执行异常处理机制2、异常处理理论上有两种基本模型1).终止模型:一旦异常抛出,就表明错误无法挽回,也能回来继续执行。比较实用。2).恢复模型:异常处理之后继续执行程序。但是可能导致“耦合”。3、自定异常类(具有带参数的构造器)class SimpleException extends Exception{ public SimpleException(){} public SimpleException(String msg){ ... 阅读全文
posted @ 2012-01-30 17:20 我的IT技术 阅读(358) 评论(0) 推荐(0)
摘要:上接《Java编程思想》之为什么需要内部类?public abstract class Event{ private long eventTime; protected final long delayTime; public Event(long delayTime){ this.delayTime = delayTime; start(); } public void start(){ eventTime = System.currentTimeMillis() + delayTime; } public boo... 阅读全文
posted @ 2012-01-29 19:54 我的IT技术 阅读(208) 评论(0) 推荐(0)
摘要:上接《Java编程思想》之内部类——深奥而复杂13、为什么需要内部类?1).内部类最吸引人注意的原因是:每个内部类都能独立的继承自一个(接口的)实现,所以无论外围类是否已经继承了某个就(接口的)实现,对于内部类都没有影响。2).一个类中以某种方式实现两个接口。由于接口的灵活性,你有两种选择:使用单一类,或者使用内部类。从实现观点看,以下俩种方式没什么区别。interface A{} interface B{} class X implements A, B{} class Y implements A{ B makeB(){ return new B(){ ... 阅读全文
posted @ 2012-01-29 19:45 我的IT技术 阅读(334) 评论(0) 推荐(0)
摘要:1、当将内部类向上转型为其基类,尤其是转型为一个接口的时候,内部类就有了用武之地(从实现某个接口的对象,得到对此接口的引用,与向上转型为这个对象的基类,实质上效果是一样得。)这是因为此内部类——某个接口的实现——对于其他人来说能够完全不可见,并且不可用。所得到的只是指向基类或接口的引用,所以能够很方便地隐藏实现细节。interface Destination{ String readLabel(); } interface Contents{ int value(); } class Parce1{ private class PContents implements Con... 阅读全文
posted @ 2012-01-29 19:23 我的IT技术 阅读(348) 评论(0) 推荐(0)
摘要:1、interface不仅仅只是一个极度抽象的类,因为它允许人们通过创建一个能够被向上转型为多种基类型的类,来实现某种类似C++多重继承变种的特性。2、像类一样,可以在interface关键字前面添加public关键字(但仅限于该接口在与其同名的文件中被定义),或者不添加它而使其只是具有包访问权限,这样它就只能在同一个包内可用。3、可以选择在接口中显示地将方法声明为public的,但即使你不这么做,它们也是public的。因此当实现一个接口时,在接口中被定义的方法必须被定义为public。4、Java中,在方法的继承过程中,其可访问权限不能被降低。5、接口也可以包含字段,但是它们隐式为stat 阅读全文
posted @ 2012-01-27 19:21 我的IT技术 阅读(1628) 评论(0) 推荐(1)
摘要:1.在面向对象的程序设计语言中,多态是继承数据抽象和继承之后的第三基本特征。2.“封装”通过合并特征和行为来创建新的数据类型。3.“实现隐藏”则通过将细节“私有化”,把接口和实现分离开来。4.多态的作用则是消除类型之间的耦合关系。5.耦合就是指两个或两个以上的实体相互依赖于对方的一个量度。6.多态也称作动态绑定、后期绑定或运行时绑定。7.将一个方法调用同一个方法主体关联起来被称作“绑定”。8.“前期绑定”:程序执行前进行的绑定,由编译器和连接程序实现。面向对象的语言不需要选择就默认的绑定方式。9.Java中除了static方法和final方法(private方法属于final方法)之外,其它所 阅读全文
posted @ 2012-01-26 21:32 我的IT技术 阅读(305) 评论(0) 推荐(0)
摘要:控制对成员的访问权限有两个原因: 第一是为了使用户不要碰触那些他们不该碰触的部分,这些部分对于类内部的操作是必要的,但是它井不属于客户端程序员所需接口的一部分。因此,将方法和域指定成private,对客户端程序员而言是一种服务。因为这样他们可以很清楚地看到什么对他们重要,什么是他们可以忽略的。这样简化了他们对类的理解。 第二个原因,也是最重要的原因,是为了让类库设计者可以更改类的内部工作方式,而不必担心这样会对客户端程序员产生重大的影响。例如,最初可能会以某种方式创建一个类,然后发现如果更改程序结构,可以大大提高运行速度。 如果接口和实现可以被明确地隔离和加以保护,那么就可以实现这一目的... 阅读全文
posted @ 2012-01-21 16:07 我的IT技术 阅读(270) 评论(0) 推荐(0)