继承Thread
实现Runnable
两种工具辅助创建线程,
Callable/线程池
基本类型:
This ,
Private 私有,便于维护修改
线程:
创建
-继承Thread
-实现Runnable()
方法
Thread.currectThread()
Thread.sleep()
Thread.yield()
Get.Name()
setDaemon(true)
setPriority
同步
Synchronized(对象){//抢对象锁
}
Synchronized
工具
-线程池ExecutorService/Executors
Executors.newFixedThreadPool()
pool.execute(Runnable任务)
-Callable/Future
future = pool.submit(Runnable
任务)
Future.get()
Future =pool.submit(Callable任务)
Volatile
-可见性
-禁用代码重排
-不能包装原子操作
线程锁
Sychronized
Lock
ReentrantLock
ReentrantReadWriteLock
ReadLock
WriteLock
方法:
Lock()加锁
Unlock()解锁
内部类
非静态内部类。
Class A{
Class Inner{
}
}
A a = new A();
Inner i = a.new Inner();
作用:* 辅助一个复杂对象,对局部的数据或运算逻辑进行封装
静态内部类
Class A{
static class Inner{
}
}
Inner i = new Inner();
*静态内部类与普通的类的作用
*根据个人设计偏好,可以选择使用静态内部类
*关系紧密的类可以选择嵌套定义
局部内部类
class A{
void f(){
class Inner implement Weapon{
}
Inner i = new Inner();
return i;//返回对象的地址值
}
}
匿名内部类
注释:
单行注释:选中,然后Ctrl + /
多行注释:选中,然后Ctrl + shirt + /
class A {
void f(){
}
}
今天学的是一些数据结构,一些存放数据的容器,各有各的特点。list有序集合。
Collection是一个集合接口,Collecetions是一个包装类
为什么出现集合类
面向对象对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储
集合就是存储对象最常用的一种方法。
数组和集合类同是容器,有何不同?
数组虽然也可以存储对象,但长度是固定的,集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。
集合(collection)框架
集合类的特点
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象
集合框架
Collection的方法:
添加方法
Add(E e) 1.5以后涉及泛型 这个e就是object
参数是object,以便于接受任意类型的对象
Size() 集合中存储的个数
Remove()删除
注意:集合中存储的都是对象的引用(地址)
Collection(集合),有三个,集合子类中又有有序集合和无序集合,以及一个队列。
list
ArrayList底层是数组结构,特点:查询速度很快,增删慢,线程不同步。
LinkedList 底层使用的链表数据结构。特点:增删速度快,查询稍慢。
Vector 底层是数组数据结构 功能和ArrayList 一样被ArrayList线程同步。
set 元素是无序的,元素不可重复。
迭代器:Iterator的子接口ListIterator是集合特有的迭代器,列表迭代器。
Queue队列。
网友评论