線程對象通過start方法進入runnable狀態,啟動的線程不一定會立即得到執行,線程的運行與否要看cpu的調度,我們把這個中間狀態叫可執行狀態(RUNNABLE)。
static關鍵字詳解
public class Person {
//2:賦初始值~
{
System.out.println("匿名代碼塊");
}
//1: 只執行一次~
static {
System.out.println("靜態代碼塊");
}
//3
public Person() {
System.out.println("構造方法");
}
public static void main(String[] args) {
Person p1 = new Person();
System.out.println("================");
Person p2 = new Person();
}
}
//輸出結果
靜態代碼塊
匿名代碼塊
構造方法
================
匿名代碼塊
構造方法
Process finished with exit code 0
//static
public class Student {
private static int age;//靜態的變量 多線程!
private double score; //非靜態的變量
public void run(){
}
public static void go(){
}
public static void main(String[] args) {
new Student().run();
Student.go();
go();
}
}
//靜態導入包
import static java.lang.Math.random;
import static java.lang.Math.PI;
public class Test1 {
public static void main(String[] args) {
System.out.println(random());
System.out.println(PI);
}
}
每日Java面試題
1.線程NEW狀態
new創建一個Thread對象時,并沒處于執行狀態,因為沒有調用start方法啟動改線程,那么此時的狀態就是新建狀態。
2.線程RUNNABLE狀態
線程對象通過start方法進入runnable狀態,啟動的線程不一定會立即得到執行,線程的運行與否要看cpu的調度,我們把這個中間狀態叫可執行狀態(RUNNABLE)。
3.線程的RUNNING狀態
一旦cpu通過輪詢或其他方式從任務可以執行隊列中選中了線程,此時它才能真正的執行自己的邏輯代碼。