标题: 成都校区 [打印本页] 作者: TTwawa 时间: 2018-12-12 22:34 标题: 成都校区 1,直接打印对象的名字,就是调用对象的toString方法。
2,直接打印对象的名字,通过是否是地址值判断是否重写了toString方法
3,==:基本数据类型:比较的是值
引用数据类型:比较的是地址值
4,equals一般用于比较两个对象的内容(需要覆写,需要使用向下转型)
5,毫秒:千分之一秒 1000毫秒=1秒
毫秒值的作用:可以对时间和日期进行计算
6,Date类:1,date();获取当前系统时间(空参构造)
2,Date(long date);把毫秒转换为时间,初始化时间开始
3,date.getTime();把时间转换为毫秒,返回long型毫秒
7,y:年 M:月 d:日 H:时 m:分 s:秒
写对应的模式,会把模式替换为对应的日期和时间
"yyyy-MM-dd HH:mm:ss"
"yyyy年MM月dd日 HH时mm分ss秒"
注意:模式中的字母不能改变,连接模式的符号可以改变
SimpleDateFormat.format(日期对象):
把日期对象转成我们能看懂的字符串:2018年12月04日
SimpleDateFormat.parse(字符串):
把符合模式的字符串,解析为日期对象
8,StringBuilder类
字符串缓冲区,可以提高字符串的操作效率
(看成一个长度可以变化的字符串)
底层也是一个数组,但没有被final修饰,可以改变长度
byte[] value = new byte[16];
如果超出了StringBuilder的容量,会自动扩容
StringBuilder bu1 = new StringBuilder
bu1.append().append().append()... (链式拼接)
9,装箱:把基本类型的数据,包装到包装类中(基本数据类型->包装类)
构造方法:过时了
静态方法:Integer.valueof(int value)
Integer.valueof(String s)
拆箱:在包装类中取出基本类型的数据(包装类->基本数据类型)
方法:intValue();
包装类无法直接参与运算,可以自动转换为基本数据类型,再参与计算
//自动装/拆箱,就是省略了转换步骤。
10,Calendar类
是一个抽象类,通过静态方法创建Calendar ca = Calender.getInstance();
int year = ca.get(YEAR);--->2018
ca.set(YEAR,2020);----->2020
ca.add(YEAR,-3);---->2019
Date date = ca.getTime();
11,System类
System.currentTimeMillis();是一个毫秒值
System.arraycopy(src,srcPos, dest,destPos,length);
将数组中的指定的数据拷贝到另一个数组中。
1,Collection集合
继承:子类共性抽取父类(接口)
java.util.Collection接口
所有单列集合最顶层的接口,里边定义了所有单列集合共性的方法
任意的单列集合都可以使用Collection集合中的方法
共性的方法:
public boolean add(E e): 把给定的对象添加到当前集合中 。
public boolean remove(E e): 把给定的对象在当前集合中删除。
public boolean contains(E e): 判断当前集合中是否包含给定的对象。
public boolean isEmpty(): 判断当前集合是否为空。(集合中的元素有没有)
public int size(): 返回集合中元素的个数。
public Object[] toArray(): 把集合中的元素,存储到数组中。
public void clear() :清空集合中所有的元素。
2,Iterator<E>接口:迭代器(对集合进行遍历)
boolean hasNext() 判断是否到达集合的末尾,是返回false,否返回true
E next() 取出集合中的元素
Iterator是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象
获取实现的方式比较特殊
Collection接口中有一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象
Iterator<E> iterator() 返回在此 collection 的元素上进行迭代的迭代器。
Iterator<E>迭代器是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型
迭代器的并发修改异常:不能在迭代的时候修改集合的长度,会报并发修改异常。
3,泛型
泛型:是一种未知的数据类型,当我们不知道使用什么数据类型时,可以使用泛型
泛型也可以看成是一个变量,用来接收数据类型
创建集合对象的时候,就会确定泛型的数据类型
泛型的通配符:
?:代表任意的数据类型
使用方法:
不能创建对象使用
只能作为方法的参数使用
泛型没有继承概念!
1,Map集合的特点:
1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
2.Map集合中的元素,key和value的数据类型可以相同,也可以不同
3.Map集合中的元素,key是不允许重复的,value是可以重复的
4.Map集合中的元素,key和value是一一对应
Map集合的key只能存引用数据类型(泛型不能存引用数据类型)
2, HashMap集合的特点:
1.HashMap集合底层是哈希表:查询的速度特别的快
2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
3,LinkedHashMap的特点:
1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
4,基本方法:
4.1 boolean containsKey(Object key) 判断集合中是否包含指定的键。
包含返回true,不包含返回false
4.2 public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
返回值:
key存在,返回对应的value值
key不存在,返回null
4.3 public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
返回值:V
key存在,v返回被删除的值
key不存在,v返回null
4.4 public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
返回值:v
存储键值对的时候,key不重复,返回值V是null
存储键值对的时候,key重复,会使用新的value替换map中重复的value,返回被替换的value值
5,Map集合的第一种遍历方式:通过键找值的方式:
实现步骤:
1.使用Map集合中的方法keySet(),把Map集合所有的key取出来,存储到一个Set集合中
2.遍历set集合,获取Map集合中的每一个key
3.通过Map集合中的方法get(key),通过key找到value
6, Map集合遍历的第二种方式:使用Entry对象遍历:
实现步骤:
1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
2.遍历Set集合,获取每一个Entry对象
3.使用Entry对象中的方法getKey()和getValue()获取键与值
7,HashMap存储自定义类型键值
Map集合保证key是唯一的:
作为key的元素,必须重写hashCode方法和equals方法,以保证key唯一
8,Debug调试程序:
可以让代码逐行执行,查看代码执行的过程,调试程序中出现的bug
使用方式:
在行号的右边,鼠标左键单击,添加断点(每个方法的第一行,哪里有bug添加到哪里)
右键,选择Debug执行程序
程序就会停留在添加的第一个断点处
执行程序:
f8:逐行执行程序
f7:进入到方法中
shift+f8:跳出方法
f9:跳到下一个断点,如果没有下一个断点,那么就结束程序
ctrl+f2:退出debug模式,停止程序
Console:切换到控制台
1,数据结构
1.1,栈:先进后出
1.2,队列:先进先出
1.3,数组:查询快,增删慢(数组的长度是固定的。想要增加/删除一个元素,需要新创建一个数组)
1.4,链表:查询慢:链表中的地址不是连续的,每次查询元素,都必须从头开始
增删快:链表结构,增加/删除对链表的整体结构没有影响,所以增删快
链表中的每一个元素也称之为一个节点
一个节点包含了一个数据源(储存数组),两个指针域(储存地址)
单项链表:链表中只有一条链子,不能保证元素的顺序(储存元素和取出元素的顺序有可能不一致)
双向链表:两条链子,有一条链子是专门记录元素的顺序,是一个有序的集合
1.5,红黑树:查询速度非常快
2,List接口:
继承了Collection接口
特点:
1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)
2.有索引,包含了一些带索引的方法
3.允许存储重复的元素
List接口中带索引的方法(特有)
- public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
- public E get(int index):返回集合中指定位置的元素。
- public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
- public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
注意:
操作索引的时候,一定要防止索引越界异常
IndexOutOfBoundsException:索引越界异常,集合会报
ArrayIndexOutOfBoundsException:数组索引越界异常
StringIndexOutOfBoundsException:字符串索引越界异常
3,LinkedList集合:
LinkedList集合的特点:
1.底层是一个链表结构:查询慢,增删快
2.里边包含了大量操作首尾元素的方法
注意:使用LinkedList集合特有的方法,不能使用多态
- public void addFirst(E e):将指定元素插入此列表的开头。
- public void addLast(E e):将指定元素添加到此列表的结尾。
- public void push(E e):将元素推入此列表所表示的堆栈。
- public E getFirst():返回此列表的第一个元素。
- public E getLast():返回此列表的最后一个元素。
- public E removeFirst():移除并返回此列表的第一个元素。
- public E removeLast():移除并返回此列表的最后一个元素。
- public E pop():从此列表所表示的堆栈处弹出一个元素。
4,Set接口
Set接口的特点:
1.不允许存储重复的元素
2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
java.util.HashSet集合 implements Set接口
HashSet特点:
1.不允许存储重复的元素
2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
3.是一个无序的集合,存储元素和取出元素的顺序有可能不一致
4.底层是一个哈希表结构(查询的速度非常的快)(数组+链表/红黑树)
5,可变参数