/**
* 1.死锁、活锁、饥饿
* 死锁:互相占用资源,互相等待释放,阻塞假死
* 活锁:主动将线程释放给别的线程使用,资源跳动不被执行
* 饥饿:优先级高的线程抢占优先级低线程的资源,最后等待可获得执行权
* 无锁:不断尝试修改共享资源
* 2.原子性:同一时间只有一个线程对一个变量进行操作
* 可见性:共享变量,多线程修改后的值是否可见
* 有序性:指令重排只会保证当前线程执行结果一致
* 3.线程池可限制系统中执行线程的数量
* 4.线程池优点:减少创建和销毁线程的次数,防止内存消耗过多。
* 线程池接口ExecutorService
* 6.JVM.跨平台,守护线程和普通线程
* 7.main方法是入口,参数String[]类型不能改变
* 9.main静态,JVM无须实例化类,非静态可编译成功,但运行失败。可重载,静态方法无法被覆盖
* public不可改,void不能改,可用synchronized同步,可终结
* 18.抽象类可继承有明确构造函数的实体类
* 19.static变量值不随函数执行结束而消失,下次调用同意函数时,上次赋予的值仍存在
* 20.select name from stu group by name having min(score)>80
* 21.delete from table where id not in (select min(id) from table group by num,name,course)
* 22.select
(case when 语文>=80 then '优秀' when 语文>=60 then '及格' else '不及格' end) as 语文,
(case when 数学>=80 then '优秀' when 数学>=60 then '及格' else '不及格' end) as 数学,
(case when 英语>=80 then '优秀' when 英语>=60 then '及格' else '不及格' end) as 英语
from course
create table stu(num int,name varchar(8),age int,sex varchar(4),address varchar(50),phone int);
alter table stu add xueli varchar(6);
alter table stu drop address;
insert into stu values(1,'A',22,'男',123456,'小学'),
(2,'B',21,'男',119,'中学'),
(3,'C',23,'男',110,'高中'),
(4,'D',18,'女',114,'大学');
update stu set xueli='大专' where phone like '11%';
delete from stu where sex='男' and name like 'c%';
*/