java基础知识点总结(一)

2014-11-24 08:49:20 · 作者: · 浏览: 3
集合的泛型版本,尤其是set、list和map接口及implementation类的使用
该代码不使用泛型:
List li = new ArrayList();
li.put(new Integer(3));
Integer i = (Integer) li.get(0);
该代码不使用泛型:
List li = new ArrayList();
li.put(new Integer(3));
Integer i = li.get(0);
当声明或者实例化一个泛型的对象时,必须指定类型参数的值: Map map = new HashMap();
List<>
List list = newArrayList();list.add(rs.getString("ZJHM"));
.List list = newArrayList();
Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值
Map接口用于维护键/值对(key/value pairs)。该接口描述了从不重复的键到值的映射。
Map接口
实现了Map接口的类用来存储键-值对。
Objectput(Object key,Object value);//如果key已经存在,则返回原key的值value
Objectget(Object key);
Objectremove(Object key);
booleancontainsKey(Object key);
booleancontainsValue(Object value);
int size();
booleanisEmpty();
voidputAll(Map t);
voidclear();
implementation类
interface接口,只列出方法,而不实现,具体实现在其子类中
implementation,实现接口,表示子类实现了怎样的接口或父类
"=="和equals方法有什么区别
==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同
==是指对内存地址进行比较
equals()是对字符串的内容进行比较
==操作符专门用来比较变量的”内容”或者”实质”是否相等的;
==是”内容”(或实质),而equals是表象
正确使用 hashCode 和 equals 方法
hashCode()和equals()定义在Object类中,这个类是所有java类的基类,所以所有的java类都继承这两个方法。
hashCode()方法被用来获取给定对象的唯一整数。这个整数被用来确定对象被存储在HashTable类似的结构中的位置。
重写equals()方法必须要重写hashCode()方法。
正确选用集合类和接口包括comparable接口
JAVA集合类-用集合(Collection)
Java.lang.Comparable接口中唯一的方法是compareTo(),在该方法中可以进行简单的相等比较以及执行顺序比较
定义、实例化和启动新线程
java.lang.thread—run() 直接new即可
java.lang.runnable—run() 用Thread的构造方法
注意:对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称(和签名)。因此,在Runnable上或者Thread上调用run方法是合法的。但并不启动新的线程。
四、例子
1、实现Runnable接口的多线程例子/**
*实现Runnable接口的类*
Public class DoSomethingimplements Runnable{
privateStringname;
publicDoSomething(Stringname){
this.name=name;}
publicvoidrun(){
for(inti=0;i<5;i++){
for(longk=0;k<100000000;k++);System.out.println(name+":"+i);}}}
/***测试Runnable类实现的多线程程序*
Public class TestRunnable{
Public static void main(String[]args){
DoSomethingds1=newDoSomething("阿三");
DoSomethingds2=newDoSomething("李四");
Threadt1=newThread(ds1);
Threadt2=newThread(ds2);
t1.start();
t2.start();
}
}
执行结果:李四:0阿三:0李四:1阿三:1李四:2李四:3阿三:2李四:4阿三:3阿三:4
Processfinishedwithexitcode02、扩展Thread类实现的多线程例子/**
*测试扩展Thread类实现的多线程程序*
Public class TestThreadextends Thread{
publicTestThread(Stringname){
super(name);}
publicvoidrun(){
for(inti=0;i<5;i++){
for(
longk=0;
k<100000000;
k++);
System.out.println(this.getName()+":"+i);
}}
Public static voidmain(String[]args){
Threadt1=newTestThread("阿三");
Threadt2=newTestThread("李四");
t1.start();
t2.start();
}}
执行结果:
阿三:0李四:0阿三:1李四:1阿三:2李四:2阿三:3阿三:4李四:3李四:4
Processf