主頁 > 後端開發 > java 基礎知識儲備

java 基礎知識儲備

2021-04-02 06:09:50 後端開發

初始JAVA

JAVA 帝國的誕生

1972年C誕生

  • 貼近硬體,運行極快,效率極高,
  • 作業系統,編譯器,資料庫,網路系統等
  • 指標和記憶體管理

1982年C++誕生

  • 面向物件
  • 兼容C
  • 圖形領域、游戲等

縱使C/C++非常強大,但是頁有其不變的一面,其中C語言是很適合初學者作為入門語言的,但是僅僅是入門語言,因為C語言中有兩大難處分別為:記憶體管理指標,很多初學者對于這兩個方面真的基于是沒得辦法了,但是其實不推薦C語言除了其有點難之外,還有一個原因就是因為,C語言雖然官方說能在所有機器上運行,但是要針對每一個機器寫對應的庫函式,即便是一點點錯誤也可能導致程式無法執行,C++是面向物件的編程語言,它兼容C語言的一些特性,C++如果說從編程語言和執行速度上來說絕對是一門非常好的語言,但是其門檻相對較高,許多學習者很難完全掌握這門語言,

介于C/C++的原因,就有聲音要求建立一門新的語言:

  • 語法有點像C
  • 沒有指標
  • 沒有記憶體管理
  • 真正的可移植性,撰寫一次,到處執行
  • 面向物件
  • 型別安全
  • 高質量的類別庫
  • ··· ···

那么,它就來了!!!!!

為了實作跨平臺,java增加了一個抽象層,名為虛擬機JVM,在所有的平臺上只要安裝了JVM,就可以運行java的程式,

Java初生

  • 1995年的網頁簡單而粗糙,缺乏互動性
  • 圖形界面程式(Applet)
  • Bill Gates說:這是迄今為止設計的最好語言!
  • Java 2 標準板(J2SE):去占領桌面
  • Java 2 移動版(JAME):去占領手機
  • Java 2 企業版(J2EE):去占領服務器
  • 大量巨頭加入

Java開發了非常多的平臺,系統,工具

  • 構建工具:Ant,Maven,Jekins
  • 應用服務器:Tomcat,Jetty,Jboss,Websphere,weblogic
  • Web開發:Struts,Spring,Hibernate,myBatis
  • 開發工具:Eclipse,Netbean,intellij idea,Jbuilder
  • ··· ···

2006年:Hadoop(大資料領域)

2008年:Android(手機端)

Java 特性和優勢

  1. 簡單性

    語法基于C語言,而且沒有指標和記憶體管理,更容易掌握

  2. 面向物件

    1. 萬物皆物件
  3. 可移植性

    1. 寫一次可以在多個設備上運行,可以跨平臺運行,
  4. 高性能

  5. 分布式

  6. 動態性

    1. Java本身不具有動態性,但是Java具有的反射機制,通過這個機制使Java具有動態性
  7. 多執行緒

    1. Java支持多執行緒,多執行緒也是使Java成為服務器端成為主流發開語言的原因之一,
  8. 安全性

  9. 健壯性

java成功的原因,除了自身實力過硬外還有運氣因素,踩中了互聯網發展的趨勢,

JDK JRE JVM

Write Once、Run Anywhere 撰寫一次可以在任何地方運行

Java的三大版本

JavaSE:標準版(桌面程式,控制臺開發···)

? Java的基礎和核心

JavaME:嵌入式開發(手機,小家電···)基本mo了

JavaEE:E企業級開發(web端,服務器開發···)

? 學號JavaE的基礎,要首先打牢SE的基礎


JDK: Java Development Kit(Java開發者工具)

? JDK最外部的大圈,包含了JRE和JVM,還包含了一些自己的工具用于程式開發,Javac編譯和運行Java,Javadoc將Java的一些東西生成檔案,jar可以將Java打包成應用··· ···

JRE:java Runtime Environment(Java運行時環境)

? 包含Java虛擬機,Java的一些庫和Applet所需的一些檔案,JDK包含JRE相當于是父親級別的,我們只需要下載JDK即可因為里面包含JRE,

JVM:java Virtual Machine(Java虛擬機)

? 可以用軟體來實作也可以用硬體來實作,相當于在所有的作業系統上模擬了一顆CPU來處理Java相關的東西,有兩種運行方式:一種為解釋型,一種為編譯型,Java的跨平臺核心就是參考了JVM,通過虛擬機來屏蔽了作業系統的區別真正實作了一次編譯,到處運行,

Java搭建開發環境

工欲善其事必先利其器,下面就來搭建開發環境,

JDK的下載安裝

Java現在屬于ORACLE,JDK下載連接

下載到的版本可自行選擇,當然要對應自己的作業系統,這里我是以windows作業系統為例,目前下載JDK需要注冊ORACLE的賬號,注冊就行了,

盡量下載JDK8、7,目前企業中用的最多的就是這兩個版本,因為新的版本可能不太穩定,這和Windows版本選擇一樣,要選擇穩定的版本使用,只需要了解新版本有什么特性就行了,

下載后會發現是一個exe可執行檔案,直接雙擊安裝即可,

再安裝程序中會出現有一個下一步,下一步之后會有一個安裝到電腦中的哪一個位置,建議安裝到一個好找的地方,

設定好之后確定點擊下一步,等待安裝完成,然后關閉

設定環境變數

  1. 我的電腦--右鍵點擊屬性---選則高級系統設定--點擊環境變數

  2. 我們要在系統環境變數配置--點擊下面的新建

  3. 變數名:JAVA_HOME

  4. 變數值:為剛在安裝的JDK檔案夾的路徑,然后點擊確定

  5. 配置path變數,在系統變數中找到path,點擊進去后點擊新建

  6. 然后后輸入%JAVA_HOME%\bin

  7. 然后再新建一個,輸入%JAVA_HOME%\jar\bin

  8. 然后全部確定

  9. 檢測是否安裝成功,打開CMD輸入java -version回車如果列印了Java的版本,表明列印成功

    windows+r鍵打開放大鏡

JDK卸載操作

  1. 洗掉Java的安裝目錄
  2. 洗掉JAVA_HOME
  3. 洗掉path下關于Java的目錄
  4. 在doc視窗下 java -version查看是否真正洗掉

Hello World

程式猿的第一聲吶喊:Hello World!

  1. 新建檔案夾,存放代碼
  2. 新建一個java檔案
    1. 檔案后綴名為.java
    2. Hello.java
  3. 撰寫代碼
public class Hello{//類 Hello為類名 public為修飾符
	public static void main(String[] args){//main為主方法程式必須通過main方法執行 其前面的為修飾符和關鍵字
		System.out.print("Hello World!");//輸出Hello World!
	}
}

首先Java再運行檔案的時候,都需要將檔案編譯成位元組碼檔案在執行,

第一步進入cmd然后進入到檔案存放的路徑下

第二步編譯位元組碼檔案:通過Javac來編譯格式為javac 檔案名,后綴

javac Hello.java

編譯之后會在檔案同級下生成一個class檔案

第三步:運行class檔案 java 檔案名 不需要寫后綴名

可能遇到的問題:

  1. 每個單詞的大小寫不能出現問題:Java大小寫敏感
  2. 盡量使用英文
  3. 檔案名和類名(類名就是class后面的名字)必須保證一致,并且首字母大寫,
  4. 符號使用了中文,會報錯,一定要注意,

Java程式運行機制

計算機的高級編程語言分為兩種,分別為:

  1. 編譯型(complie )
    1. 就是將程式整體的編譯,如果代碼檔案有部分改動,也需要重新編譯整段代碼,作業系統一般使用的都是編譯型,C/C++也都是編譯型
  2. 解釋型
    1. 就是代碼再撰寫的程序中寫一句編譯一句,比如網頁對速度要求不高,就可以使用解釋型邊執行邊解釋,Java script也是屬于解釋型語言,
  3. 這兩種編譯方法各有好處不能說誰好誰壞,

Java那即屬于編譯型又屬于解釋性,

隨著技術的發展計算機的性能提高,解釋型和編譯型的界限與來越模糊,

程式運行機制

IDEA安裝和介紹

IDEA官網

什么是IDE Ecslipes ... IDEA (java的開發工具)

? 集成開發環境(IDE,Integrated Development Environment)是用與提供程式開發環境的應用程式,一般包括代碼編輯器、編譯器、除錯器和圖形用戶界面等工具,集成了代碼撰寫功能、分析功能、編譯功能、除錯功能等一體化開發軟體服務套,所有具備這一特性的軟體或者軟體套組都可以叫集成開發環境,

IDEA介紹

在業界被認為是最好的開發環境,

直接搜索IDEA即可進入官網,上面也設定了傳送門,

安裝步驟:

  1. 下載好后雙擊即可安裝

  2. 直接NEXT然后選擇安裝路徑,不推薦安裝路徑中含有中文,然后NEXT,然后會彈出以下界面:按照圖中的選項勾選,

  3. 然后如果你下的為專業版可能會需要添加驗證碼,當然也可以選擇試用30天,也可以百度破解(不推薦),

  4. 安裝后就可以打開正常使用了,

安裝好后可以在百度搜索:IDEA優化(看個人愛好)

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/271124.html

標籤:Java

上一篇:Nacos

下一篇:java流程控制

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more