【Java探索之旅】我與Java的初相識(一):Java的特性與優點及其發展史

個人頭像
🎥 嶼小夏 : 個人主頁
🔥個人專欄 : Java入門到精通
🌄 莫道桑榆晚,為霞尚滿天!

文章目錄

  • 一. Java語言概述與優勢
    • 1.1 Java的概述
    • 1.2 Java語言的優勢
  • 二. Java領域與發展史
    • 2.1 Java的使用領域
    • 2.2 Java發展史簡述
  • 三. Java語言特性

在這里插入圖片描述

一. Java語言概述與優勢

1.1 Java的概述

? Java是一種優秀的程序設計語言,它具有令人賞心悅目的語法和易于理解的語義。

? 不僅如此Java還是一個有一系列計算機軟件和規范形成的技術體系,這個技術體系提供了完整的用于軟件開發和跨平臺部署的支持環境,并廣泛應用于嵌入式系統、移動終端、企業服務器、大型機等各種場合。
在這里插入圖片描述

1.2 Java語言的優勢

語言廣泛使用程度:

? 下圖數據來自于TIOBE編程語言社區2023年8月最新的排行榜,是近些年最火的編程語言之一。
在這里插入圖片描述

注意:上述排名不能說明那個語言好,那個語言不好,每門編程語言都有適應自己的應用場景。

二. Java領域與發展史

2.1 Java的使用領域

企業級系統

? 比如大型復雜的企業級軟件系統,Java的安全機制以及跨平臺性的優勢,其在分布式系統領域開發中有廣泛應用,涉及到金融、電信、交通、電子商務、ERP系統等。

Web開發領域

? Java語言在設計初期,趕上了互聯網發展的風口,當時就瞄準了互聯網開發,憑借穩定的性能表現和較好的擴展性,Java語言一直是大型互聯網平臺的重要解決方案。

android平臺應用

? Android是一種智能手機操作系統,Java是一門非常流行的編程語言。Android上的應用程序就是大多是用Java編寫的,Android的SDK大部分就是直接將Java SDK翻譯過來的,所以具有Java基礎,也可以快速上手Android開發。

大數據平臺開發

? 大數據相關的各類框架,比如:Hadoop、spark、storm、flink等,以及各種中間件flume、kafka、sqoop等,這些框架以及工具等大多數是用Java語言開發的,隨著大數據技術的落地應用,Java在大數據領域的應用前景也是比較廣闊的。 除上述開發領域外,Java在游戲領域、人工智能領域、科學計算領域、嵌入式領域也有一定的應用。因此學好Java,將來就業的選擇也會非常廣泛。

2.2 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. Java語法相對于C++更為簡潔,去除了C++中的頭文件、指針運算、結構、聯合、操作符重載、虛基類等內容。
  2. Java中的一切皆對象,如人、狗、手機、電腦等。Java的面向對象特性與C++相當,但不同之處在于多重繼承。Java使用更簡單的接口概念,同時提供了更豐富的運行時自省功能。
  3. Java擁有豐富的例程庫,用于處理TCP/IP協議,如HTTP和FTP。Java應用程序能夠輕松地通過URL訪問網絡對象,就像訪問本地文件一樣。
  4. Java采用的指針模型可以消除重寫內存和損壞數據的可能性。Java編譯器能夠檢測許多在其他語言中僅在運行時才能檢測出的問題。
  5. Java適用于網絡/分布式環境,投入了大量精力來確保安全性。Java設計初衷就是防范各種常見攻擊。
  6. Java編寫的程序在不同的平臺上可以運行。這是因為Java程序在編譯后生成的是字節碼文件,而不是特定于某個平臺的機器碼。
  7. Java為了實現與平臺無關,自己維護了一套基于棧架構的指令集。在具體硬件環境中運行時,Java解釋器會逐條的將字節碼文件中的指令翻譯成CPU的指令集。
  8. Java程序的執行效率在有些場合不亞于C/C++,近年來JVM也在不斷的優化,讓Java程序的執行效率大幅提高。
  9. Java是第一個支持并發程序設計的主流語言。多線程可以帶來更好的交互響應和實時行為。
  10. Java與C/C++相比更加具有動態性。它能夠適應不斷發展的環境。在Java中找出運行時類型信息十分簡單。

在這里插入圖片描述

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

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

相關文章

面試多線程八股文十問十答第二期

面試多線程八股文十問十答第二期 作者:程序員小白條,個人博客 相信看了本文后,對你的面試是有一定幫助的! ?點贊?收藏?不迷路!? 1.進程和線程的區別 概念不同:進程是操作系統中的一個獨立執行單元&a…

LeetCode56. Merge Intervals

文章目錄 一、題目二、題解 一、題目 Given an array of intervals where intervals[i] [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input. Example 1: Input: interva…

目標檢測mAP計算以及coco評價標準

這篇是我對嗶哩嗶哩up主 霹靂吧啦Wz 的視頻的文字版學習筆記 感謝他對知識的分享 講一下目標檢測中的一些常見的指標 在我們使用目標檢測網絡訓練時 最后在驗證集上會得到一個coco的評價列表 就像我們圖中給的這一系列參數列表一樣 我們再進一步引入兩個概念 第一個叫做precisi…

P1 Qt的認識及環境配置

目錄 前言 01 下載Qt Creator windows下載安裝包拷貝到Linux Linux直接下載 02 Linux 安裝Qt 前言 🎬 個人主頁:ChenPi 🐻推薦專欄1: 《C_ChenPi的博客-CSDN博客》??? 🔥 推薦專欄2: 《Linux C應用編程(概念類…

地址欄不安全提示

在使用瀏覽器時訪問網站的時候,我們可能會遇到地址欄提示不安全的情況。這種情況通常都是是由于未安裝有效SSL證書或者網站SSL證書過期等原因導致的。本文將介紹如何處理地址欄提示不安全的問題,以確保我們的上網安全。 1,缺少SSL證書&#x…

golang游戲服務器 - tgf系列課程01

TGF框架的特點和功能 課程介紹了TGF框架的特點和功能在第一節課程中我們并不會介紹框架的使用。我們希望在這節課程中,能讓你了解到tgf是一個什么樣的框架 概要 本節課程介紹了TGF框架的特點和功能。TGF是一個開箱即用的服務器框架, 適合中小型團隊和獨立開發者進行游戲開發。…

基于單片機音樂盒仿真仿真系統設計

**單片機設計介紹,基于單片機音樂盒仿真仿真系統設計 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于單片機的音樂盒仿真仿真系統是一種基于嵌入式系統技術的設計方案,用于模擬傳統的音樂盒功能。它通…

002 self-attention自注意力

目錄 一、環境 二、self-attention原理 三、完整代碼 一、環境 本文使用環境為: Windows10Python 3.9.17torch 1.13.1cu117torchvision 0.14.1cu117 二、self-attention原理 自注意力(Self-Attention)操作是基于 Transformer 的機器翻…

【XILINX】記錄ISE/Vivado使用過程中遇到的一些warning及解決方案

前言 XILINX/AMD是大家常用的FPGA,但是在使用其開發工具ISE/Vivado時免不了會遇到很多warning,(大家是不是發現程序越大warning越多?),并且還有很多warning根據消除不了,看著特心煩? 我這里匯總一些我遇到的…

http和https區別

http和https區別 HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在網絡上傳輸數據的兩種協議。它們之間的主要區別在于安全性和數據傳輸方式: 安全性:HTTP是明文傳…

華清遠見嵌入式學習——QT——作業2

作業要求&#xff1a; 代碼運行效果圖&#xff1a; 登錄失敗 和 最小化 和 取消登錄 登錄成功 和 X號退出 代碼&#xff1a; ①&#xff1a;頭文件 #ifndef LOGIN_H #define LOGIN_H#include <QMainWindow> #include <QLineEdit> //行編輯器類 #include…

如何在centos8上配置一個ca證書頒發機構并且頒發一個自簽名證書【超詳細!!!】

在CentOS 8上配置CA證書頒發機構并頒發自簽名證書的步驟如下&#xff1a; 1. 安裝OpenSSL sudo dnf install openssl 2. 創建CA證書目錄 sudo mkdir /etc/pki/CA/ sudo chmod 0700 /etc/pki/CA/ 3. 創建CA證書數據庫 sudo touch /etc/pki/CA/index.txt sudo echo 1000 >…

Java Spring + SpringMVC + MyBatis(SSM)期末作業項目

本系統是一個圖書管理系統&#xff0c;比較適合當作期末作業主要技術棧如下&#xff1a; - 數據庫&#xff1a;MySQL - 開發工具&#xff1a;IDEA - 數據連接池&#xff1a;Druid - Web容器&#xff1a;Apache Tomcat - 項目管理工具&#xff1a;Maven - 版本控制工具&#xf…

探索人工智能領域——每日20個名詞詳解【day12】

目錄 前言 正文 總結 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高興與大家相識&#xff0c;希望我的博客能對你有所幫助。 &#x1f4a1;本文由Filotimo__??原創&#xff0c;首發于CSDN&#x1f4da;。 &#x1f4e3;如需轉載&#xff0c;請事先與我聯系以…

學習JVM

java虛擬機 流程&#xff1a;helloworld.java----(javac編譯)----helloworld.class-------(java運行)——JVM——機器碼JVM功能 *解釋和運行 *內存管理 *即時編譯&#xff08;跨平臺-慢一點&#xff09;jit &#xff08;反復用到的代碼 解釋保存再內存里面&#xff09;…

進程、線程、線程池狀態

線程幾種狀態和狀態轉換 進程主要寫明三種基本狀態&#xff1a; 線程池的幾種狀態&#xff1a;

STM32的BKP與RTC簡介

芯片的供電引腳 引腳表橙色的是芯片的供電引腳&#xff0c;其中VSS/VDD是芯片內部數字部分的供電&#xff0c;VSSA/VDDA是芯片內部模擬部分的供電&#xff0c;這4組以VDD開頭的供電都是系統的主電源&#xff0c;正常使用時&#xff0c;全部都要接3.3V的電源上&#xff0c;VBAT是…

Leetcode2477. 到達首都的最少油耗

Every day a Leetcode 題目來源&#xff1a;2477. 到達首都的最少油耗 解法1&#xff1a;貪心 深度優先搜索 題目等價于給出了一棵以節點 0 為根結點的樹&#xff0c;并且初始樹上的每一個節點上都有一個人&#xff0c;現在所有人都需要通過「車子」向結點 0 移動。 對于…

從阻抗匹配看擁塞控制

先來理解阻抗匹配&#xff0c;但我不按傳統方式解釋&#xff0c;因為傳統方案你要先理解如何定義阻抗&#xff0c;然后再學習什么是輸入阻抗和輸出阻抗&#xff0c;最后再看如何讓它們匹配&#xff0c;而讓它們匹配的目標僅僅是信號不反射&#xff0c;以最大能效被負載接收。 …

面試寶典之自我介紹

聽人勸、吃飽飯,奉勸各位小伙伴,不要訂閱該文所屬專欄。 如需要項目實戰或者是體系化資源,文末名片加V! 作者:哈哥撩編程,工作十余年, 從事過全棧研發、產品經理等工作,目前在公司擔任研發部門CTO。榮譽:2022年度博客之星Top4、2023年度超級個體得主、谷歌與亞馬遜開發…