- HashMap 的遍历
1
2
3
4
5
6
7
8
9
10
11import java.util.HashMap;
public class test3 {
public static void main(String[] args){
HashMap<String, String> dic = new HashMap<>();
dic.put("name","storm");
dic.put("sex","man");
for (String key : dic.keySet()){
System.out.println(key + ":" + dic.get(key));
}
}
} ArrayList
ArrayList 和数组的区别有点类似go语言中切片和数组的区别,数组是一种静态的数据类型,长度固定,类型固定,而ArrayList的长度可以扩展且数据类型可以是任意类型(如果定义时不加任何泛型则可以存放任意类型)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import java.util.ArrayList;
public class test3 {
public static void main(String[] args){
ArrayList<String> list = new ArrayList<>();
list.add("super");
list.add("storm");
list.add("java");
System.out.println(list.toString());
list.set(0, "fx");
System.out.println(list.toString());
list.remove("fx");
System.out.println(list.toString());
System.out.println(list.indexOf("java"));
}
}java 继承
java继承使用extends关键字
在任意目录下创建三个文件分别为test3.java test2.java test1.java
写入代码
test3.javatest3.java 1
2
3
4
5
6
7
8
9
10
11public class test3 {
public String name;
private int age;
public test3(String name, int age){
this.name = name;
this.age = age;
}
public void show(){
System.out.println(this.age);
}
}test2.java
test2.java 1
2
3
4
5public class test2 extends test3{
public test2(String name, Integer age){
super(name,age);
}
}test1.java
test1.java 1
2
3
4
5
6
7public class test1 {
public static void main(String[] args){
test2 test = new test2("storm", 18);
System.out.println(test.name);
test.show();
}
}编译后运行test1。
1
2
3
4javac test3.java
javac test2.java
javac test1.java
java test1运行结果:
1
2storm
18值得注意的是java不支持多继承,只能多层继承,根据官方的意思是java多继承容易引起歧义,即如果继承的两个父类有同名的方法,编译器不知道子类中该指向哪个方法,另外java继承中子类不能访问父类对其不可见的变量,例如private修饰的变量
interface 接口
接口是一个对方法的抽象集合,即一个接口声明了堆需要实现的方法,但它不实现方法代码体,也不能直接实例化,,可以多继承,java类是不能多继承的
在任意目录下创建三个文件分别为test3.java test2.java test1.java
test1.java 声明接口1
2
3
4public interface test1 {
public void work();
public void study();
}test2.java 实现接口关键字implements,注意,一个类如果实现接口,要么全部实现接口中的方法,要么声明为抽象类
1
2
3
4
5
6
7
8
9
10import org.omg.Messaging.SYNC_WITH_TRANSPORT;
public class test2 implements test1{
public void work(){
System.out.println("work");
}
public void study(){
System.out.println("study");
}
}test3.java 实例化,调用接口方法
1
2
3
4
5
6
7public class test3 {
public static void main(String[] args){
test2 test = new test2(){};
test.study();
test.work();
}
}编译,执行
1
2
3
4javac test1.java
javac test2.java
javac test3.java
java test3输出结果
1
2study
workJava的异常
代码1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19public class test3 {
public static void main(String[] args){
int[] a = new int[2];
try{
int b = a[3];
}catch (ArrayIndexOutOfBoundsException e){
System.out.println("catch exception1:" + e);
}finally {
System.out.println("finally exec1");
}
try{
throw new ArrayIndexOutOfBoundsException(4);
}catch (ArrayIndexOutOfBoundsException e){
System.out.println("catch exception2:" + e);
}finally {
System.out.println("finally exec2");
}
}
}编译后执行的结果为:
1
2
3
4catch exception1:java.lang.ArrayIndexOutOfBoundsException: 3
finally exec1
catch exception2:java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 4
finally exec2