【JAVA SE】初識JAVA

??歡迎大家來到Celia的博客??

🎉🎉創作不易,請點贊關注,多多支持哦🎉🎉

所屬專欄:JAVA

個人主頁:Celia's blog~

目錄

?編輯

一、關于JAVA

1.1 JAVA語言簡介

1.2 語言優勢

1.2.1 簡單性

1.2.2 面向對象

1.2.3 分布式

1.2.4 健壯性

1.2.5 安全性

1.2.6 體系結構的獨立

1.2.7 可移植性

1.2.8 解釋性

1.2.9 高性能

1.2.10 動態性

二、main方法

?2.1 運行JAVA程序

?2.2 關于JDK

?三、注釋

?四、標識符

五、關鍵字


?

一、關于JAVA

1.1 JAVA語言簡介

Java是一門面向對象的編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。

?Java 語言源于 1991 年 4 月,Sun 公司 James Gosling博士 領導的綠色計劃(Green Project) 開始啟動,此計劃最初的目標是開發一種能夠在各種消費性電子產品(如機頂盒、冰箱、收音機等)上運行的程序架構。這個就是Java的前身: Oak (得名與Java創始人James Gosling辦公室外的一棵橡樹),但由于這些智能化家電的市場需求沒有預期的高,Sun公司放棄了該項計劃。隨著1995年代互聯網的發展,Sun公司看見Oak在互聯網上應用的前景,于是改造了Oak,于1995年5月以Java的名稱正式發布,并提出“Write once, Run anywhere" 的口號。

?JAVA 發展歷程上一些重要的里程碑:

  1. 1995年,Java正式發布。
  2. 1996年1月,Sun公司發布JDK1.0,Java語言有了第一個正式版本的運行環境。
  3. 1998年12月,Sun公司發布JDK1.2(代號Playground競技場),Java技術體系拆分為3個方向,分別是面向桌面應用開發的J2SE(Java 2 Platform, Standard Edition)、面向企業級開發的J2EE(Java 2 Platform, Enterprise Edition)和面向手機等移動終端開發的J2ME(Java 2 Platform, Micro Edition)。
  4. 2004年9月,Sun公司發布JDK1.5(代號Tiger老虎),J2SE 1.5更名為Java SE 5.0(內部版本號1.5.0),成為Java語言發展史上的又一里程碑。
  5. 2006年11月,Sun公司宣布最終會將Java開源,并在隨后的一年多時間內,陸續將JDK的各個部分在GPL v2(GNU General Public License v2)協議下公開了源碼,并建立了OpenJDK組織對這些源碼進行獨立管理。

1.2 語言優勢

1.2.1 簡單性

? 在某種程度上,我們可以把JAVA看作是C/C++的一個”純凈版本“,在JAVA中,不存在頭文件、指針、結構、聯合、操作符重載等。

1.2.2 面向對象

? 在JAVA中,一切皆對象。比如人、房子,這些都算作一個對象,JAVA會將這些對象的多種特性一一描述出來,包括關于這些對象的信息操作方式,也會定義出來,統一封裝在一個類中,統一管理。

1.2.3 分布式

??Java有豐富的例程庫,用于處理像HTTP和FTP之類的TCP/IP協議。Java應用程序能夠通過URL打開和訪問網絡上的對象,其便捷程度就好像訪問本地文件一樣。

1.2.4 健壯性

? JAVA采用的指針模型可以消除在訪問內存時,重寫和消除數據的可能性。JAVA對于數據類型的檢查極其嚴格,避免了許多越界問題,以及數據類型不匹配而造成的不可控因素。在此之外,JAVA還可以檢查出很多其他語言只能在運行中才能檢測出的問題(比如死循環、邏輯語句常為真/假邏輯錯誤)。

1.2.5 安全性

? JAVA適用于網絡/分布式環境。在研發的時候,為了達到這個目的,研發團隊投入了大量精力,以至于讓JAVA構建的系統具有防病毒、防篡改的特性。

1.2.6 體系結構的獨立

? JAVA不同于其他語言依賴系統運行,JAVA的體系結構是獨立出來的。編譯器會根據JAVA代碼生成一個特定的字節碼文件,再按照指定規范生成一系列的機器指令,也就是說,只要有JAVA系統,JAVA文件就可以在任何系統上運行。

1.2.7 可移植性

? 與C/C++不同,在JAVA中,沒有“依賴具體實現的地方”,JAVA對于所有的數據類型的大小做了明確的規定。比如在JAVA中,int類型永遠是32位的整數,但是在C/C++中,int類型可能是16位,也有可能是32位。JAVA的這種規范大大提高了代碼的可移植性。

1.2.8 解釋性

? Java為了實現與平臺無關,自己維護了一套基于棧架構的指令集,Java源代碼經過編譯之后,字節碼文件中的指令就是按照自己的指令集來組織的,但是在具體硬件環境中運行時,系統并不能識別,因為Java程序在執行時,Java解釋器會逐條的將字節碼文件中的指令翻譯成CPU的指令集

1.2.9 高性能

? JAVA可以實現邊解釋便執行,隨著在近些年來JVM的不斷優化,比如:JIT、熱點代碼探測,可以讓JAVA程序運行的效率大大提高,在某些場合甚至不亞于C/C++。

1.2.10 動態性

? JAVA比C/C++更見具有動態性,能夠適應不同的時代發展環境,庫中可以自由添加方法、實例變量,而對客戶端沒有任何影響。

二、main方法

public class Text{
//修飾        類名public static void main(String[] args) {  //main方法System.out.println("Hello,Celia!");   //輸出Hello,Celia!}
}

以上是一個簡單JAVA程序的示例。

?一般來講,JAVA代碼由以下三個部分組成:

  • 源文件(擴展名為.java),源文件中有類的定義。類用來表示程序的一個組件,類中的內容必須在花括號中。
  • 類,在類中會有一個或多個方法。方法必須在類的內部聲明。
  • 方法,在方法的花括號中編寫方法所需要執行的語句。

注意:在一個源文件中只能有一個public修飾的類,且這個類的類名必須與文件名相同。

?2.1 運行JAVA程序

? JAVA是一門半編譯型,半解釋型語言。javac編譯器會先把程序的源文件進行編譯,生成一個字節碼文件(.class為后綴),此文件與平臺無關,僅僅是面向JVM(JAVA虛擬機)的。在這之后,JVM會將字節碼文件轉換成平臺能夠理解的形式,這樣不論在什么平臺上,JAVA代碼都能夠運行起來。

  • 可以使用記事本或者IDEA(集成開發環境)來編寫JAVA程序。(安裝了JDK)
  • 在cmd上使用命令來生成以.class為后綴的字節碼文件。
    ?
    javac xxx.java
    //   文件名

  • 在cmd上使用命令來執行字節碼文件。
    ?
    java xxx
    //   只有文件名,沒有后綴

?2.2 關于JDK

  • JDK(Java Development Kit):Java開發工具包,提供給Java程序員使用,包含了JRE,同時還包含了編譯器javac與自帶的調試工具Jconsole、jstack等。
  • JRE(Java Runtime Environment):Java運行時環境,包含了JVM,Java基礎類庫。是使用Java語言編寫程序運行的所需環境。
  • JVM:Java虛擬機,運行Java代碼

?三、注釋

? 在JAVA中,注釋主要分為以下三種:

  • //單行注釋
  • /*多行注釋*/
  • /**文檔注釋*///可以被Javadoc工具解析,生成一個以網頁形式的程序說明文檔

?四、標識符

? 在整個程序中,為類名、方法名、變量所取的名字就是標識符。

  • 可以包含字母、數字、下劃線、$符號
  • 標識符不能以數字開頭,也不能是關鍵字

一些規范建議:

  • 類名:每個單詞的首字母大寫
  • 方法名:首字母小寫,后面的每個單詞首字母大寫
  • 變量名:同方法名

五、關鍵字

關鍵字是JAVA事先定義好的,有明確特殊意義的標識符。以下是一些常見的關鍵字:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11934.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11934.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11934.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鏈表常見OJ題

目錄 題目一:移除鏈表元素 (1)題目鏈接 (2)題目要求 (3)題解 題目二:反轉鏈表 (1)題目鏈接 (2)題目要求?編輯 (3…

藍橋杯備戰.19有獎問答dfs

P9230 [藍橋杯 2023 省 A] 填空問題 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) #include<bits/stdc.h> using namespace std; #define endl \n //#define int long long const int N 2e510; int a[N],w[N]; int ans 0; void dfs(int score,int cnt) {if(cnt>3…

項目9-網頁聊天室1(注冊+Bycrpt加密)

1.準備工作 1.1.前端頁面展示 1.2 數據庫的建立 我們通過注冊頁面&#xff0c;考慮如何設計用戶表數據庫。 用戶id&#xff0c;userId用戶名&#xff0c;唯一&#xff0c;username用戶密碼&#xff0c;password&#xff08;包括密碼和確認密碼ensurePssword【數據庫沒有該字段…

【簡單介紹下Milvus】

&#x1f308;個人主頁: 程序員不想敲代碼啊 &#x1f3c6;CSDN優質創作者&#xff0c;CSDN實力新星&#xff0c;CSDN博客專家 &#x1f44d;點贊?評論?收藏 &#x1f91d;希望本文對您有所裨益&#xff0c;如有不足之處&#xff0c;歡迎在評論區提出指正&#xff0c;讓我們共…

網絡3--網絡通信的深度理解(端口號)

網絡通信的進一步理解 兩個主機間進行通信&#xff0c;其實是兩個主機間的軟件進行通信&#xff0c;軟件也就是可執行程序&#xff0c;運行時就是進程&#xff0c;所以也為進程間通信。 進程間通信需要共享資源&#xff0c;這里兩個主機間的共享資源是網絡&#xff0c;利用的是…

Visual Studio生成C++的DLL文件(最簡單版)

前言 當你在使用C編寫一些可重用的代碼時&#xff0c;將其打包成一個動態鏈接庫&#xff08;DLL&#xff09;可以使其更容易地被其他項目或者程序調用和使用。Visual Studio提供了一種簡單的方式來生成C的DLL文件。下面是一個關于如何在Visual Studio中生成C的DLL文件的簡單教…

【 第一性原理計算方法及應用】

第一性原理計算方法及應用述

對接極速行情丨DolphinDB MDL 行情插件使用指南

通聯數據依托于金融大數據&#xff0c;結合人工智能技術為投資者提供個性化、智能化、專業化投資服務&#xff0c; MDL 則是通聯數據提供的高頻行情數據服務。DolphinDB 提供了能夠從 MDL 服務器獲取高頻行情數據的 DolphinDB MDL 插件&#xff0c;幫助用戶方便地通過 DolphinD…

算法day06

第一題 1658. 將 x 減到 0 的最小操作數 如題上述&#xff1a; 本題原來的意思給定一個數字x&#xff0c;從數組的左邊或者右邊 使用x減去數組中的數字&#xff0c;直到減去最后一個數字為0時&#xff0c;返回最小的操作次數&#xff1b;如果最終減去的數組中的數字之后不能得…

HR系統組合漏洞挖掘過程

前言 某天在項目中遇到了一個奇怪的人才管理系統&#xff0c;通過FOFA&#xff08;會員可在社區獲取&#xff09;進行了一番搜索&#xff0c;發現了該系統在互聯網上的使用情況相當廣泛。于是&#xff0c;我開始了后續的審計過程。 在搜索過程中&#xff0c;我偶然間找到了一份…

「TypeScript系列」TypeScript 基礎類型

文章目錄 一、TypeScript 基礎類型1. **Number**: 用于表示數字。可以是整數或浮點數。2. **String**: 用于表示文本類型的數據。3. **Boolean**: 表示邏輯值&#xff1a;true 或 false。4. **Array**: 表示一組值。TypeScript 使用泛型&#xff08;generics&#xff09;來定義…

Mysql存儲引擎對比

存儲引擎InnoDBMyISAM文件存儲結構.frm文件&#xff1a;存放表結構的定義信息 .ibd文件或.ibdata文件&#xff1a;存放InnoDB數據&#xff08;數據和索引&#xff09;【獨享表空間】每個表一個.ibd文件【共享表空間】所有表使用一個.ibdata文件- .frm文件&#xff1a;存放表結構…

Nginx靜態壓縮和代碼壓縮,提高訪問速度!

一、概述 基于目前大部分的應用&#xff0c;都使用了前后端分離的框架&#xff0c;vue的前端應用&#xff0c;也是十分的流行。不知道大家有沒有遇到這樣的問題&#xff1a; 隨著前端框架的頁面&#xff0c;功能開發不斷的迭代&#xff1b;安裝的依賴&#xff0c;不斷的增多&a…

機器學習【簡述】

什么是機器學習 機器學習研究的是計算機怎么模擬人類的學習行為&#xff0c;以獲取的知識或技能&#xff0c;并重新組織已有的知識結構使之不斷改善自身。簡單一點說&#xff0c;就是計算機從數據中學習初規律和模式&#xff0c;以應用在新數據上做預測的任務。近年來互聯網數…

無人機的用途

無人機&#xff0c;即無人駕駛飛機&#xff0c;其用途廣泛且多樣&#xff0c;涉及到多個領域。 在農業領域&#xff0c;無人機通過搭載各種傳感器和相機&#xff0c;可以對農田進行空中巡視&#xff0c;收集農田數據&#xff0c;如土壤含水量、氣溫、濕度等&#xff0c;以及植…

詳細的性能分析和調優的示例過程:

當面臨數據庫查詢性能下降的問題時&#xff0c;以下是一個詳細的性能分析和調優的示例過程&#xff1a; ### 1. 監控和識別問題 假設你負責維護一個電子商務網站數據庫&#xff0c;最近用戶反映搜索功能響應慢。你立即使用數據庫監控工具&#xff08;如Prometheus、Grafana&am…

Ardupilot開源飛控工程項目編譯回顧

Ardupilot開源飛控工程項目編譯回顧 1. 源由2. 工程編譯3. 命令列表3.1 工作環境設置3.2 獲取工程代碼3.3 建立編譯環境3.4 編譯工程代碼3.5 保存編譯結果3.6 清理編譯結果3.7 編譯設備目標 4. 補充 1. 源由 最近&#xff0c;有點莫名的連續遇到了2次Ardupilot編譯報錯。百思不…

Quartz.Net(2)——NetCore3.1整合Quartz.Net

在上篇文章中Quartz.Net(1) 已經介紹了Quartz.Net的基本運用&#xff0c;該篇文章中將主要介紹NetCore3.1如何整合Quartz.Net&#xff0c;在后臺運行定時job&#xff0c;并運用到上篇文章講到的介紹點。 1 導入Nuget包 <PackageReference Include"Quartz" Versio…

PyTorch中的torch.cuda.amp.autocast

torch.cuda.amp.autocast的使用 torch.cuda.amp.autocast是PyTorch中一種自動混合精度計算的方法&#xff0c;它允許在深度學習模型的訓練過程中自動執行混合精度計算&#xff0c;從而加快訓練速度并減少顯存占用。 在使用torch.cuda.amp.autocast時&#xff0c;一般會將模型…

Ubuntu系統如何使用寶塔面板搭建HYBBS論壇并發布公網遠程訪問

文章目錄 前言1. HYBBS網站搭建1.1 HYBBS網站安裝1.2 HYBBS網站測試1.3. cpolar的安裝和注冊 2. 本地網頁發布2.1.Cpolar臨時數據隧道2.2.Cpolar穩定隧道&#xff08;云端設置&#xff09;2.3.Cpolar穩定隧道&#xff08;本地設置&#xff09; 3.公網訪問測試總結 前言 在國內…