Java學習-基礎知識

從Java 核心–JVM說起

java運行在java虛擬機上,通過java虛擬機控制計算機完成程序的功能
java虛擬機(Java virtual machine):JVM
1)JVM:讀取並處理編譯過的字節碼文件class
定義了:指令集、寄存器集、類文件結構、堆棧、拉架收集堆、內存域
2)code security
3) garbage collection

javac 編譯
java運行
java運行
java運行
java運行
source.java
source.class
JVM for Doc
JVM for Winx
JVM for Unix
JVM for Other

JRE的主要功能:

java運行環境(Java runtime environment ):JRE=JVM+API
1)加載代碼:由class loader完成
2)校驗代碼:由bytecode verify完成
3)執行代碼:由runtime interpreter完成
API:牛逼的前人寫好的牛逼的接口工具

JDK主要功能:

java開發環境JDK=JRE+tool
java 編譯器:javac.exe
java執行器:java.exe
文檔生成器:javadoc.exe
java打包器:jar.exe
java調試器:jdb.exe
2014年發佈了jdk1.8,也叫java8,改進非常大最主要的是lambda的使用

java特點:

1)面相對象
2)因爲jvm所以可以跨平臺
3)安全穩定-1)代碼安全檢測(code security)2)自帶內存回收garbage control
4)支持多線程–後續體驗

java中的主要基本概念

對象:object

是客觀世界的一個主體,是計算機中的一個可標識的區域;

類:class

將對象抽象出來的模板,包括屬性(變量)和行爲(方法)

屬性
變量-字段field
行爲
函數-方法method

類:
class Person{
int age;
String name;
void sayHello(){…}
}
對象:
Person p = new Person();
類和對象的關係:
類是對象的抽象;
對象是類的實例;
類和對象都稱爲“對象”,爲了明確,對象一般稱爲對象實例

面相對象變成的三大特點:

1)封裝
要點:private 需要通過接口才能訪問,可以做限制;
class Person{
private int age;
public int getAge(){return age;}
public void setAge(int a){age=a;}
String name;
void sayHello(){…}
}
2)繼承
父類:
class Person{
int age;
String name;
void sayHello(){…}
}
子類:
class Student extends Person{
String school;
double score;
void meetTeacher(){…}
}
3)多態
不同的對象收到同一個消息可以產生不同的效果,實現的細節有接收對象自行決定;
這個沒理解透徹,後面看吧,是不是通過this實現的?

面向對象編程的方法論:

1)總結、歸納、抽象出有哪些對象類,這個是要在寫程序前就思考好的;
2)每個類從屬性和行爲兩方面思考,有哪些屬性?(變量)會有哪些行爲?(方法)有點類似於C裏面的結構體
3)類是否分層次?父類、子類、繼承關係是啥?有沒有關聯,任何一個稍微複雜的事情都會面對不同的對象,將對象解耦拆分、分層是很重要的,決定了後面程序的優雅程度;
4)對象之間需要發生哪些動作?(調用方法)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章