Java小白进阶笔记(1)-重新认识Java
摘要:?這是偏頭痛楊的第一篇原文鏈接,其中,在系列的第二篇開頭作者布置了十道題,下面是我的回答(大多是作者的文章摘錄)
重新開始學習Java了,這也是為了以后找工作考慮。熱愛的機器學習就先放一放了,作為興趣愛好研究,不花太多精力了>﹏<
因為大二上學期有過一門Java課,作為快速復習。在CSDN上找到了偏頭痛楊的Java入門系列文章,寫得非常好!
1.偏頭痛楊的Java入門教學系列之認識Java篇
這是偏頭痛楊的第一篇原文鏈接,其中,在系列的第二篇開頭作者布置了十道題,下面是我的回答(大多是作者的文章摘錄)。
1.Java為什么能跨平臺?
跨平臺是指跨不同的操作系統,因為從寫java代碼到運行,需要經過兩個過程,Java程序的源代碼(.java)編譯成虛擬機(JVM)能看懂的字節碼(.class),然后再由虛擬機解釋執行成對應的操作系統能看懂的機器碼。
從而實現了所謂的跨平臺,一次編譯處處執行(Write Once,Run Anywhere)。
需要注意的是不同操作系統上要裝對應的JVM,但這并不與跨平臺沖突,因為即使不同操作系統上的虛擬機的一些細節是不一樣的,但它們所能看懂的字節碼(.class)都是一樣的,而字節碼是與平臺無關的。
2.Java抄了哪個編程語言?
C++
3.Java是由哪個公司搞出來的?
Sun公司
4.Java的爸爸是誰?
詹姆斯-高斯林
5.Java的工作機制?
Java程序的源代碼(.java)編譯成虛擬機(JVM)能看懂的字節碼(.class),然后再由虛擬機解釋執行成對應的操作系統能看懂的機器碼
6.JDK&JRE&JVM分別是什么以及他們的關系?
JVM(Java Virtual Machine):
Java虛擬機,主要負責運行Java編譯器編譯后的字節碼文件(*.class文件),它存在于內存中,與內存打交道。
JVM運行在操作系統之上,與硬件沒有直接交互,JVM是實現跨平臺的核心。
JVM是一種抽象&虛擬出來的計算機,和實際的計算機一樣,
它具有指令集并使用不同的存儲區域,它負責執行指令,還要管理數據,內存和寄存器,指令集,寄存器,
類文件的格式,棧,垃圾回收堆,存儲區等。
JVM在執行字節碼時,把字節碼解釋成具體平臺上的機器碼執行。
JVM自己無法執行,必須要聯合JRE中的Java基礎&核心類庫才能使用。
JRE(Java Runtime Environment):
Java運行環境,支持Java程序運行的標準環境,包括了JVM(Java虛擬機)的標準實現以及Java基礎&核心類庫。
jre1.8目錄包含:
- bin:有java.exe但沒有javac.exe,無法編譯Java程序,但可以運行Java程序,可以把這個bin目錄理解成JVM。
- lib:Java基礎&核心類庫,如rt.jar,也包含JVM運行時需要的類庫。
JRE=JVM+Java基礎&核心類庫
JDK(Java Development Kit):
Java開發工具包,是一個編寫Java應用程序的開發環境(程序員專用)。
JDK是整個Java的核心,包括了JRE(Java運行環境)與一些Java開發工具(例如:jconsole、javac、java、javadoc、native2ascii、jar等)。
主流的JDK是Sun公司發布的JDK,除了Sun公司之外,還有很多公司和組織都開發了自己的JDK,
例如:IBM公司開發的JDK,BEA公司的JDK,還有GNU組織開發的JDK。
jdk1.8目錄包含:
- bin:一堆exe文件,可執行的開發工具,最主要的是javac, 例如:jconsole、javac、java、javadoc、native2ascii。
- jre:java運行環境,包括JVM+Java基礎&核心類庫 。
- lib:包含dt.jar+tools.jar的常用類庫,開發依賴包。
- db:jdk從1.6之后內置了Derby數據庫,它是是一個純用Java實現的內存數據庫,屬于Apache的一個開源項目。用Java實現的,所以可以在任何平臺上運行;另外一個特點是體積小,免安裝,只需要幾個小jar包就可以運行了。
- include:java和JVM交互用的頭文件。
JDK=JRE+Java開發工具(編譯器、調試器等)
JDK&JRE&JVM總結:
JRE是個運行環境,JDK是個開發環境,因此寫Java程序的時候需要JDK,而運行Java程序的時候就需要JRE。
而JDK里面已經包含了JRE,因此只要安裝了JDK,就可以開發Java程序,也可以正常運行Java程序。
但由于JDK包含了許多與運行無關的內容,例如編譯器、調試器等,占用的空間較大,
因此運行普通的Java程序無須安裝JDK,而只需要安裝JRE即可(例如在服務器中運行Java程序)。
7.Java的應用場景?
互聯網應用的服務端程序(包括分布式系統)
很多第三方交易系統、銀行、金融機構、大型網站、互聯網平臺都選擇用Java開發。
大多數情況下,Java被用在服務器端開發,但多數沒有任何前端,它們通常是從一個服務器接收數據,
處理后發向另一個處理系統。
Android應用
許多的 Android應用都是Java程序員開發者開發。雖然 Android運用了不同的JVM以及不同的封裝方式,
但是代碼還是用Java語言所編寫。相當一部分的手機中都支持JAVA游戲,這就使很多非編程人員都認識了JAVA。
大數據技術
Hadoop以及其他大數據處理技術很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。
網站
Java在電子商務領域以及網站開發領域占據了一定的席位。開發人員可以運用許多不同的框架來創建web項目,
SpringMVC,Struts2.0以及frameworks。即使是簡單的 servlet,jsp和以struts為基礎的網站在政府項目中也經常被用到。
例如醫療救護、保險、教育、國防以及其他的不同部門網站都是以Java為基礎來開發的。
嵌入式領域
Java在嵌入式領域發展空間很大。在這個平臺上,只需130KB就能夠使用Java技術(在智能卡或者傳感器上)。
桌面應用
例如:jmeter,netbeans,freemind,eclipse等。
游戲
火遍全球的《我的世界》以及一堆java小游戲。
8.java與javac命令的作用?
javac命令是在jdk的bin文件夾下的,作用是將Java源程序(.java)編譯為虛擬機能明白的字節碼(.class)
java命令是在jre的bin文件夾下的,作用是將虛擬機中的字節碼(.class)解釋執行成對應平臺操作系統能明白的機器碼。
9.Java環境如何配置?
這個省略,去看作者(偏頭痛楊)的文章,或者百度都能OK!
10.Java的部分特點?
- 跨平臺
- 重要的網絡編程語言
- 吸收了C++的優點,摒棄了多繼承,指針的概念
- 不僅僅是一門語言,還是一個龐大的技術體系(包括編程語言、虛擬機、- - 開發環境、應用程序環境、部署環境等)
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的Java小白进阶笔记(1)-重新认识Java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云云数据库RDS秒级监控功能解锁,通
- 下一篇: 19个AI热门应用领域,你确定不了解一下