Java基礎知識篇——Java基本介紹

来源:https://www.cnblogs.com/baiye123/p/18066835
-Advertisement-
Play Games

一、什麼是 Java Java 是 Sun Microsystems 於 1995 年首次發佈的一種編程語言和計算平臺。編程語言還是比較好理解的,什麼是計算平臺呢? 計算平臺是電腦中運行應用程式(軟體的環境),包括硬體環境和軟體環境。一般系統平臺包括一臺電腦的硬體體繫結構,操作系統、運行時庫。 Ja ...


一、什麼是 Java

Java 是 Sun Microsystems 於 1995 年首次發佈的一種編程語言和計算平臺。編程語言還是比較好理解的,什麼是計算平臺呢?

計算平臺是電腦中運行應用程式(軟體的環境),包括硬體環境和軟體環境。一般系統平臺包括一臺電腦的硬體體繫結構,操作系統、運行時庫。

Java 是快速,安全和可靠的。從筆記本電腦到數據中心,從游戲機到科學超級電腦,從手機到互聯網,Java 無處不在!Java 分三個版本

  • JavaSE (J2SE) (Java2 Platform Standard Edition java平臺標準版)
  • JavaEE (J2EE) (Java2 Platform,Enterprise Edition, java平臺企業版)
  • JavaME (J2ME) (Java 2 Platform Micro Edition, java平臺微型版)

二、Java 的特點

1、Java 是一門面向對象的編程語言

什麼是面向對象?**面向對象 (Object Oriented) **是一種軟體開發思想。他是對現實世界的一種抽象,面向對象會把相關數據和方法組織成為一個整體來看待

相對的另外一種開發思想就是面向過程的開發思想,什麼面向過程? 面向過程 (Procedure0riented) 是一種以過程為中心的編程思想。舉個例子:比如你是個學生,你每天去上學需要做幾件事情?
起床、穿衣服、洗臉刷牙,吃飯,去學校。一般是順序性的完成一系列動作。

class student{
    void student_wakeUp(){...}
    void student_cloth(){...}
    void student_wash(){...}
    void student_eating(){...}
    void student_gotoSchool(){...}
}

而面向對象可以把學生進行抽象,所以這個例子就會變為

class student{
    void wakeUp(){...}
    void cloth(){...}
    void wash(){...}
    void eating(){...}
    void gotoSchool(){...}
}

可以不用嚴格按照順序來執行每個動作。這是特點一

  • Java 摒棄了C++中難以理解的多繼承、指針、記憶體管理等概念;不用手動管理對象的生命周期,這是特點二

  • Java 語言具有功能強大和簡單易用的兩個特征,現在的企業級開發,快速敏捷開發,尤其是各種框架的出現,使Java 成為一門越來越火的一門語言,這是特點三。

  • Java 是一門靜態語言,靜態語言是指就是在編譯期間就能夠知道數據類型的語言,在運行前就能夠檢查類型的正確性,一旦類型確定後就不能再更改,比如下麵這個例子

    public void foo(){
        int x = 5;
        boolean b = x;
    }
    

    靜態語言主要有 Pascal, Perl,C/C++,JAVA,C#,Scala

相應的,動態語言沒有任何特定的情況需要指定變數的類型,再運行時確定的數據類型。比如有 Lisp,Perl, Python、Ruby、JavaScript 等。

從設計的角度來說,所有的語言都是設計用來把人類可讀的代碼轉換為機器指令。動態語言是為了能夠人程式員提高編碼效率,因此你可以使用更少的代碼來實現功能。靜態語言設計是用來讓硬體執行的更高效,因此需要程式員編寫準確無誤的代碼,以此讓你的代碼儘快的執行。從這個角度上來說,靜態語言的執行效率要比動態語言高,速度更快。這是特點四。

2、Java 具有平臺的獨立性和可移植性

Java 有一句非常著名的口號: Write once,run anywhere ,也就是一次編寫、到處運行。為什麼 Java 能夠吹出這種牛批的口號來?核心就是 **JVM **。我們知道,電腦應用程式和硬體之間會屏蔽很多細節,它們之間依靠操作系統完成調度和協調,大致的體繫結構如下

01

那麼加上 Java 應用、JVM 的體繫結構會變為如下

02

Java 是跨平臺的,已編譯的 Java 程式可以在任何帶有 JVM 的平臺運行,你可以在 Windows 平臺下編寫代碼,然後拿到 Linnx 平臺下運行,該如何實現呢

首先你需要在應用中編寫 Java 代碼;

Eclipse 或者 javac 把 Java 代碼編譯為 .class 文件

然後把你的 .class 文件打包成 .jar 文件

然後你的 .jar 文件就能夠在 Windows 、Mac OS X、Linux 系統下運行了。不同的操作系統有不同的 JVM 實現,切換平臺時,不需要再次編譯你的 Java 代碼了。這是特點五

3、Java 能夠容易實現多線程

Java 是一門高級語言,高級語言會對用戶屏蔽很多底層實現細節。比如 Java 是如何實現多線程的。從操作系統的角度來說,實現多線程的方式主要有下麵這幾種

在用戶空間中實現多線程

在內核空間中實現多線程

在用戶和內核空間中混合實現線程

而我認為 Java 應該是在 用戶空間 實現的多線程的,內核是感知不到 Java 存在多線程機制的。這是特點六

4、Java 具有高性能

我們編寫的代碼,經過 javac 編譯器編譯稱為 位元組碼(bytecode),經過 JVM 內嵌的解釋器將位元組碼轉換為機器代碼,這是解釋執行,這種轉換過程效率較低。但是部分 JVM 的實現比如 Hotspot JVM 都提供了 **JIT(Just-In-Time) **編譯器,也就是通常所說的動態編譯器,JIT 能夠在運行時將熱點代碼編譯機器碼,這種方式運行效率比較高,這是編譯執行。所以 Java 不僅僅只是一種解釋執行的語言。這是特點七。

5、Java 語言具有強壯性

Java 的強類型機制、異常處理、垃圾的自動回收集等是 Java 程式強壯性的重要保證,這也是 Java 與 C 語言的重要區別

6、很容易開發分散式項目

Java 語言支持 Internet 應用的開發,Java 中有 net api,它提供了用於網路應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的 RMI(遠程方法激活) 機制也是開發分散式應用的重要手段。這是特點九。

三、Java 開發環境

1、JDK

JDK(Java Developmet Kir)稱 Java 開發包或 Java 開發工具,是一個編寫 Java 的 Applet小程式和應用程式的程式開發環境。JDK 是整個Java的核心,包括了 Java運行環境(Java Runtime Environment),一些 Java 工具Java 的核心類庫(Java API)

03

我們可以認真研究一下這張圖,它幾乎包括了 Java 中所有的概念,我使用的是 jdk1.8 ,可以點進去 Description of Java Conceptual Diagram , 可以發現這裡麵包括了所有關於 Java 的描述

Oracle 提供了兩種 Java 平臺的實現,一種是我們上面說的 JDK,Java 開發標準工具包,一種叫 JRE,叫做 Java Runtime Environment,Java 運行時環境。JDK 的功能要比 JRE 全很多。

2、JRE

JRE 是個運行環境,JDK 是個開發環境。因此寫 Java 程式的時候需要 JDK,而運行 Java 程式的時候就需要 JRE。而 JDE 裡面已經包含了 JRE。因此只要安裝了了 JDK,就可以編輯 Java 程式,也可以正常運行 Java 程式。但由於 JDK 包含了許多與運行無關的內容,占用的空間較大,因此運行普通的 Java 程式無需安裝 JDK,只需要安裝 JRE 即可。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、問題闡述 有的時候我們需要控制非同步函數的執行順序,比如a方法中如果要用到非同步函數b方法的請求結果,就需要進行順序控制,否則a函數先執行就會導致找不到數據直接報錯。 二、方法 1.非同步控制 1.1.async,await等做非同步控制 1.2修改函數放置位置達到非同步控制效果(我遇到的情況無效,但是確 ...
  • 網站: 即時熱點 - 正在發生的事 (Solo 社區投稿) 簡介: 一個熱門信息聚合站,幫助您輕鬆瞭解正在發生的事。 描述: 即時熱點是一個熱門信息聚合站,彙集來自百度、微博、頭條、知乎、抖音、快手等多個主流平臺的熱門話題,幫助您輕鬆瞭解正在發生的事。無需跳轉多個平臺,即刻瀏覽最新、最熱、最有趣的話 ...
  • 前言 我們每天寫的vue代碼都是寫在vue文件中,但是瀏覽器卻只認識html、css、js等文件類型。所以這個時候就需要一個工具將vue文件轉換為瀏覽器能夠認識的js文件,想必你第一時間就想到了webpack或者vite。但是webpack和vite本身是沒有能力處理vue文件的,其實實際背後生效的 ...
  • 過濾器和攔截器的辨析 介紹 過濾器和攔截器都是為了在請求到達目標處理器(Servlet或Controller)之前或者之後插入自定義的處理邏輯 過濾器: 遵循AOP(面向切麵編程)思想實現,基於Servlet規範提供的Filter介面,它是位於客戶端請求與伺服器響應之間的一個組件,依賴於Servle ...
  • 什麼是函數回調? 介紹 函數回調是一種編程概念,它描述的是這樣一個過程:一個函數(稱為回調函數)作為參數傳遞給另一個函數(稱為調用函數),當滿足一定條件或者在某個特定時刻,調用函數會調用傳遞過來的回調函數。這種機制允許程式員在編寫代碼時,能夠在不同的上下文中重用函數,同時也能實現非同步處理、事件驅動編 ...
  • 是的,\t 是指製表符(tab),它通常用作欄位分隔符在 TSV(Tab-Separated Values)格式的文件中。TSV是一種簡單的文本格式,它使用製表符來分隔每一列中的值,而每一行則代表一個數據記錄。 TSV文件例: ID\tName\tAge\tCity 1\tJohn Doe\t28\ ...
  • 一、基礎知識 1、Lucene 是什麼 Lucene 是一個本地全文搜索引擎,Solr 和 ElasticSearch 都是基於 Lucene 的封裝 Lucene 適合那種輕量級的全文搜索,我就是伺服器資源不夠,如果上 ES 的話會很占用伺服器資源,所有就選擇了 Lucene 搜索引擎 2、倒排索 ...
  • Java HashMap HashMap 是一種哈希表,它存儲鍵值對。鍵用於查找值,就像數組中的索引一樣。HashMap 的優勢在於它可以使用任何類型作為鍵,並且查找速度很快。 創建 HashMap // 導入 HashMap 類 import java.util.HashMap; public c ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...