/**
* 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%';
*/