异常
捕捉
语法格式:
try {
有可能出现的异常代码
} catch(Exception e) {
针对上面异常的处理方案
}
1
2
3
4
5
抛出
使用两个关键字:
throw:在方法中抛出异常对象。
throws:用在方法的声明的位置,告知调用者。当前抛出的异常有哪些。
String类方法
获取字符串长度 int length();
获取特定位置的字符 char charAt(int index);
获取特定字符的位置 int indexOf(char ch); int indexOf(String str);
获取指定字符最后一个的位置 int lastIndexOf(char ch);
字符串的拼接 concat();
返回值是布尔类型的方法
是否以指定的字符结束 boolean endsWith(String str);
判断一个字符串是否为空 boolean isEmpty();
是否包含指定的字符串 boolean contains(String str);
忽略大小写是否相等 boolean eaqualsIgnoreCase(String otherStrinf);
将字符数组转为字符串
String(char[] chs);
String(char[] chs, int offset, int count)
static String valueOf(char[] chs);
将字符串转为字符数组
char[] toCharArray();
字符串替换 String replace(char oldChar, char newChar);
String replaceAll(String old, String new);
切割字符串:String[] split(String regex);
截取字符串:String subString(int beginIndex);
String subString(int beginIndex, int endIndex); 要头不要尾
将小写字母转为大写字母:String toUpperCase();
将大写字母转为小写字母:String toLowerCase();
去除收尾空格的:String trim();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
泛型
泛型的语法格式
权限修饰符 [static] <无意义的占位符> 返回值的类型 方法名字 (参数类型) {
}
public void get(T t){}
1
2
3
4
5
自定义泛型在类中如何使用
class 类名<无意义的占位符> {
属性
方法(带有泛型的)
}
1
2
3
4
【注意事项】:
1.在泛型类中,成员方法不用带 因为一旦带了,这个方法约束的数据和当前类约束的就不一样了
2.在泛型类中,带有泛型的静态方法和类的泛型没有关系
自定义泛型在接口中如何使用
interface 接口名字 {
}
1
2
3
权限修饰符
在这里插入图片描述
集合
在这里插入图片描述
Collection接口
增:
boolean add(E e);添加指定的数据到指定的位置
boolean addAll(Collection<? extends E>);添加另外一个集合到当前集合对象中。
但是一定要保证两个集合的泛型保持一致
1
2
3
删除:
boolean remove(Object obj);删除指定的元素
boolean removeAll(Collection<? extends E>);删除两个集合中的交集
void clear();清空所有的元素
1
2
3
查:
int size();查看集合中元素的个数
Object[] toArray();将集合转为Object类型的数组 就意味着以后数组和集合可以互相转换
boolean contains(Object obj);判断一个元素是否在当前集合中
boolean isEmpty();判断集合元素是否为空。如果有数据就是一个false 没有数据就是一个true
1
2
3
4
迭代器
hasNext() 判断是否有下一个元素,有的话就是true 没有下一个元素就是一个false
iterator.next()//next方法做了两件事情:1.获取下一个元素的 2将指针往下挪一位
List接口
特点:有序的,可以重复的
COllection下面的方法,在List下面都有的,因为是继承关系的 子类可以使用父类的方法
增:
boolean add(int index, E e);在指定的位置添加指定的数据
boolean addAll(int index, Collection<? extends E> c);在指定的位置下面存入另外一个集合
1
2
删:
boolean remove(E e);删除指定的元素 和索引没有关系
E remove(int index); 通过索引删除指定的数据,并返回删除的数据 这个太强大了
1
2
改:
E set(int index, E element) 3 4 5 6
在指定位置替换指定的元素,并返回一个被替换的元素
1
2
查:
E get(int index);通过索引把指定的元素取出来
int indexOf(Object O);查找指定元素第一次下标,如果没有这个元素的话就返回-1
int lastIndexOf(Object o);查找指定元素的最后一次下标
List subList(int startIndex, int endIndex); 从集合中通过索引截取一部分。这个索引是要头不要尾的
1
2
3
4
LinkedList
简单聊一下LinkedList
LinkedList 底层是双向链表,并且实现了一个接口队列(先进先出)Deque
查找慢:因为底层是采用的二分法查找的算法 时间复杂度是n/2 不是一下就找到的
增删快:直接找到要插入的前置节点和后置节点,来进行插入或删除,其他元素不用
和ArrayList刚好相反
1
2
3
4
Object类
Object下的equals是比较内存地址,String类下的是判断两个对象是否相等
Set
Set集合是无序的,不可重复的
匿名内部类
基于抽象类的匿名内部类
//定义一个抽象类
abstract class Animal{
public abstract void eat();
}
public class Demo1 {
public static void main(String[] args) {
//直接new抽象类的方法名
new Animal() {
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("在吃饭");
}
}.eat();//匿名对象.方法();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
基于接口的匿名内部类
interface Pig {
public void eat();
}
//不用再单独写一个类去实现这个接口
public class Demo3 {
public static void main(String[] args) {
new Pig() {
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println(“猪吃主食”);
}
}.eat();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
匿名内部类语法格式:接口/父类类型 引用变量名 = new 接口/父类类型(){方法的重写};
java8新特新Lamda表达式 格式:(参数列表)-> {方法体}
Map集合
双边队列的
Map<K, V>
K:键 key 键是不能重复的,是唯一的
V:值 value 值可以重复的
1
2
3
4
Map集合下面常用的方法
增:
put(K key, V value);存放的是一个键值对的数据
putAll(Map<? extends K> k, Map<? extends V> v);将一个map集合存放到另外一个map集合中
1
2
3
删:
remove(Object k);通过键删除整个键值对,并返回被删除的值
1
改:
put(K key, V value); 当key存在的时候,就修改。当key不存在的时候,就添加
1
查:
int size();键值对有效的个数
boolean isEmpty();是否为空,map集合为空就返回true,不为空就返回false
boolean containsKey();是否包含这个键
boolean containsValue();是否包含这个值
Set keySet()获取map集合中键,返回是set集合
返回值是一个Set集合为啥不是一个List集合,map集合中键 是无序的不可以重复
V get(Object k);通过键获取值
Collection values();获取map集合中所有的value值,返回的是Collection集合
Set<Map.entry<K, V>>entrySet()`;将键值对实体成一个Set集合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
File
相对路径:
相对一个参照物 我在隔壁,参照物是咱们教室
./当前工作目录
…/相对于本级目录,上一级目录
…/…/相对于本级目录的上两级目录
绝对路径:
从磁盘的根目录 一级一级的找
路径斜线问题:
1./ window和Linux系统都是可以的
2.\ windows系统可以 其他系统不支持
开发中一般使用/