serialVersionUID作用:
序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
有两种生成方式:
一个是默认的1L,比如:private static final long serialVersionUID = 1L;
一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:
private static final long serialVersionUID = xxxxL;
当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个
提示功能告诉你去定义 。在Eclipse中点击类中warning的图标一下,Eclipse就会
自动给定两种生成的方式。如果不想定义它,在Eclipse的设置中也
可以把它关掉的,设置如下:
Window ==> Preferences ==> Java ==> Compiler ==> Error/Warnings ==>
Potential programming problems
&nbs ......
java Map 遍历速度最优解
第一种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
效率高,以后一定要使用此种方式!
第二种:
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
效率低,以后尽量少使用!
HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:
public class HashMapTest {
public static void main(String[] args) ...{
HashMap hashmap = new HashMap();
for (int i = 0; i < 1000; i ) ...{
hashmap.put("" i, "thanks");
}
long bs = Calendar.getInstance().getTimeInMillis();
Iterator iterator = hashmap.keySet().iterator();
while (iterator.hasNext()) ...{
System.out.print(hashmap.get(iterator.next()));
}
System.out.println();
System.out. ......
ParserAdapter,MouseInputAdapter....
interface can be added to an existing class or used to create an adapter
方法就是 面向结构语言的:函数
java中适配器的作用实际上是实现了接口的类,但是适配器所实现的只是空方法。因为如果我们不用适配器,直接去实现接口,也要逐个实现里面的方法,并且大多情况下我们也会像 jdk里适配器所做的:仅仅以空方法去实现,只实现对我们有用的方法。
几乎所有申明了很多方法 的接口,都会有它自己的 适配器类。
本身adapter没有什么作用,只是帮助程序员专注 所实现的功能,使代码简洁罢了
你可以查一下jdk:
java.awt.event.KeyAdapter
All Implemented Interfaces:
KeyListener, EventListener
它里面的方法:
void keyPressed(KeyEvent e)
Invoked when a key has been pressed.
void keyReleased(KeyEvent e)
Invoked when a key has been released.
void keyTyped(KeyEvent e)
Invoked when a key has been typed.
都是空方法
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/faith_zerg/archive/2007/09/30/1807850.aspx ......
2010-03-18
package javaEcsl;
import java.io.*;
import java.util.*;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
/** */
/**
* <p>
* Title:
* </p>
* <div>Description: Excel数据导入到oracle数据库类. </div>
* <p>
* Copyright: Copyright (c) 2004
* </p>
* <p>
* Company: 易通技术有限公司
* </p>
*
* @author Allen
* @version 1.0
*/
public class ExcelImportOracle {
/** */
/**
* 用于返回三维数组的ArrayList.
*/
private static ArrayList subdata = new ArrayList();
/** */
/**
* Excel中的表名.
*/
private static String tablename;
/** */
/**
* 文件的路径
*/
private static String filePath;
/** */
/**
* 该方法为完成读取Excel中的数据并将数据插入到对应的数据库表中的操作(在调用前需要先调用 setFilePath(String)这个方法.).
*
* @author Administrator
* @param data:读取Excel中的数据的数组.
* @dedivcated:将读取Excel中的数据插入到对应的数据库表中. *
*/
public s ......
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。
2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、 HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你 对java实际上还很不了解。
3、工具:必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试。
4、API:Java的核心API是非常庞大的,但是有一些内容笔者认为是必须熟悉的,否则不可能熟练的运用Java,包括:
◆java.lang包下的80%以上的类的功能的灵活运用。
◆java.util包下的80%以上的类的灵活运用,特别是集合类体系、规则表达式、zip、以及时间、随机数、属性、资源和Timer.
◆java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。
◆java.math包下的100%的内容。
◆java.net包下的60%以上的内容,对各个类的功能比较熟悉。
......
对于Java的语言机制而言,当一个方法被声明为了static或者final类型的时候,该方法可以被拥有该方法的类的子类继承,但是不能被覆盖,这是因为当一个方法被声明为了上述两种类型的时候,在编译时刻该方法的调用着的类型已经被确定,是静态绑定,而不是动态绑定。同时在声明为static方法体里是不允许使用this和super关键字的,这是因为static方法只能访问静态变量,而this和super则都是引用的一个对象变量,并不是静态的。补充说明,static方法即使在子类中有同样的实现,此时也只是隐藏了父类的方法,而并不是对父类static方法的覆盖,static方法的调用类型为对象引用类型,而不是实际的对象类型。 ......