Java跨平臺原理
Java為什么能夠流行
外部環(huán)境
互聯(lián)網的爆發(fā)式發(fā)展
互聯(lián)網上的電腦硬件不同澎剥,軟件環(huán)境差異較大锡溯。需要一 個跨平臺的語言。
Java核心優(yōu)勢
跨平臺
Java運行過程
Java程序的運行分為兩步:先編譯再解釋執(zhí)行
通過“編譯器”將Java源程序編譯成Java 字節(jié)碼文件(.class)(字節(jié)碼文件采用結構中立 的中間文件格式)
通過不同的“虛擬機”將Java字節(jié)碼文件解釋為對應機器語言并執(zhí)行
Java跨平臺和C跨平臺的區(qū)別
Java:一次編譯哑姚,到處運行 C:多次編譯祭饭,到處運行
在互聯(lián)網情況下,平臺各異叙量,Java的跨平臺更具有優(yōu)勢
Java可以跨所有平臺嗎:要看有沒有提供并安裝相應的虛擬機
Java的運行速度沒有C語言快
Java需要將class文件解釋成機器碼再執(zhí)行倡蝙;C執(zhí)行執(zhí)行機器碼
字節(jié)碼文件bytecode
class文件 二進制文件
格式中立、平臺無關的二進制文件
是編譯的產物绞佩,是解釋的原料
Java虛擬機 JVM
JVM是Java Virtual Machine(Java虛擬機)的縮寫
JVM是一種用于計算設備的規(guī)范悠咱,它是一個虛構出來的計算機蒸辆,是通過在實際的計算機上仿 真模擬各種計算機功能來實現(xiàn)的。
JVM就是一個虛擬的用于執(zhí)行bytecodes字節(jié)碼的計算機
Java虛擬機是Java最核心技術析既,也是跨平臺的基礎躬贡。
Java語言使用Java虛擬機屏蔽了與具體平臺相關的信息,使得Java語言編譯程序只需生成在? Java虛擬機上運行的目標代碼(字節(jié)碼)眼坏,就可以在多種平臺上不加修改地運行拂玻。
Java虛擬機在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行宰译。這就是Java的能 夠“一次編譯檐蚜,到處運行”的原因
JDK、JRE沿侈、JVM的區(qū)別聯(lián)系
JDK:
Java Development Kit
針對Java開發(fā)員的產品
JRE:
Java Runtime Environment
是運行Java程序所必須的環(huán)境集合
JVM
Java Virtual Machine
解釋運行Java字節(jié)碼文件闯第,跨平臺的核心
聯(lián)系:JDK 包含JRE,JRE包含JVM缀拭。
JAVA定時器基礎教程
在我們工作當中總有需要按時間計劃執(zhí)行簡單任務的情況咳短,例如定時進行商品的搶購,鬧鐘功能等蛛淋。下面我們來講解一下JAVA自帶的入門級定時器 Timer是如何實現(xiàn)定時器功能的咙好。首先給大家介紹一下Timer類: JAVA定時器任務的執(zhí)行需要兩個基本的類:
java.util.Timer;? ?
java.util.TimerTask;
Timer類:
的作用是設置計劃任務,而封裝任務內容的類是TimerTask類.此類是一個抽象類,繼承需要實現(xiàn)一個run方法.
通過查文檔我們看到Timer有以下幾個構造函數(shù):
Timer的方法以下這么多:
JAVA定時器-代碼實例
/**
* 定時器要執(zhí)行的任務 ,需要繼承 TImerTask接口
*
* 輸出 主人該起床了:趾伞9葱А!叛甫!
*
* @author mayou18.com
*
*/
public class MyTask extends TimerTask {
? ? @Override
? ? public void run() {
? ? ? ? // TODO Auto-generated method stub
? ? ? ? System.out.println("主人該起床了2愎!F浼唷卒密!");
? ? }
}
/**
* 創(chuàng)建定時器 Timer
*
*? 2017年10月30日 6:30分? 啟動任務
*
* @author mayou18.com
*
*/
? ? public static void main(String[] args) {
? ? ? ? Timer timer=new Timer();
? ? ? ? //在 2017年10月30日 6:30分? 啟動任務
? ? ? ? timer.schedule(new MyTask(), new Date(2017,10,30,6,30));
? ? ? ? //這個是用來停止此任務的,否則就一直循環(huán)執(zhí)行此任務? ?
? ? ? ? while(true){
? ? ? ? ? ? try{? ?
? ? ? ? ? ? ? ? int in = System.in.read();? ?
? ? ? ? ? ? ? ? if(in == 's'){
? ? ? ? ? ? ? ? ? ? //使用這個方法退出任務
? ? ? ? ? ? ? ? ? ? timer.cancel();? ?
? ? ? ? ? ? ? ? ? ? break;?
? ? ? ? ? ? ? ? }? ?
? ? ? ? ? ? } catch (IOException e){? ?
? ? ? ? ? ? ? ? // TODO Auto-generated catch block? ?
? ? ? ? ? ? ? ? e.printStackTrace();? ?
? ? ? ? ? ? }? ?
? ? ? ? }? ?
? ? }
Java學習視頻分享
Java基礎:
Java300集,Java必備優(yōu)質視頻_手把手圖解學習Java棠赛,讓學習成為一種享受
Java項目:
【Java游戲項目】1小時教你用Java語言做經典掃雷游戲_手把手教你開發(fā)游戲
【Java畢業(yè)設計】OA辦公系統(tǒng)項目實戰(zhàn)_OA員工管理系統(tǒng)項目_java開發(fā)