JDK和JRE的區別?main方法的注意點?強制和自動類型轉換?

💡涉及的知識點速通

  • 🛫 JDK和JRE傻傻分不清?
  • 🛫 HelloWorld的輸出都經歷了啥?
  • 🛫 Java的三個版本都是啥?
  • 🛫 關于main方法你都知道啥?
  • 🛫 強制and自動類型轉換都是啥?

??各位小伙伴們大家好,歡迎來到這個小扎扎的《Java核心技術 卷Ⅰ》筆記專欄,在這個系列專欄中我將記錄淺學這本書所得收獲,鑒于 看到就是學到、學到就是賺到 精神,這波簡直就是血賺

扎哇太棗糕的博客首頁
在這里插入圖片描述

🛫 JDK和JRE傻傻分不清?

??好歹也是學了那么長時間的Java了,強烈的直覺告訴我JDK、JRE這倆指的肯定不是一個東西,一看書才知道我的直覺是真滴準(夸夸自己),既然不一樣,那么接下來就扒一扒JDK和JRE的野史吧。
??JDK 是指Java Development Kit 也就是我們常說的Java開發工具包,是程序員編寫Java程序時必須使用的軟件。JRE 是指Java Runtime Environment 也就是Java的運行時環境,是程序運行時必須依賴的軟件。那么我們想要使用Java這門語言進行編程的話,究竟需要安裝哪個呢?答案是我都要,一個編譯一個運行缺一不可。不過當你下載了JDK之后就會發現,在jdk的安裝目錄下會有一個的jre文件夾,也就是意味著我們只需要下載jdk即可。jdk的下載安裝配置十分簡單:點擊我僅需四步即可完成
??既然是野史就說一說大家可能不知道的知識點,在1998~2006年之間,開發工具包被稱為是SDK(Software Development Kit)后更名JDK,在某些場合中任然會見到這個術語;同一時間段內Java所出的版本被統稱為java 2。看到這個名詞不知道大家會不會聯想到J2EE,猜的沒錯 J2EE的全稱就是Java 2 Platform Enterprise Edition也就是Java 2 平臺企業版,是在SUN公司領導下多家公司(Oracle、IBM、BEA等)共同制定的一套廣泛認可的企業級分布式應用程序開發規范,后來強大如J2EE還是被Spring框架所沖擊,導致這一切的就是那個恐怖如斯的男人——羅德·約翰森(Rod Johnson)

🛫 HelloWorld的輸出都經歷了啥?

??以HelloWorld程序為例介紹java程序開發的幾個步驟:😶程序員編寫HelloWorld.java文件(源代碼文件)🤔計算機使用javac.exe程序將HelloWorld.java文件編譯成HelloWorld.class文件(字節碼文件)🤨計算機使用java.exe程序將HelloWorld.class文件送到JVM中運行😲運行的過程中隨時向核心類庫中調用Java編寫好的程序來支撐自己編寫程序的運行在這里插入圖片描述手動操作編譯運行的過程中有幾個注意點:

  • 1、編寫的源代碼文件以.java作為拓展名,放在C盤以外的盤符下,顯示文件的拓展名防止文件的拓展名不是.java,否則會報javac: 找不到文件的錯誤
  • 2、使用java.exe運行字節碼文件的時候,HelloWorld后面沒有拓展名

🛫 Java的三個版本都是啥?

Java SE(Java Standard Edition):標準版
Java EE(Java Enterprise Edition):企業版
Java ME(Java Micro Edition):微型版

🛫 關于main方法你都知道啥?

public static void main(String[] args)
public: main方法的訪問權限為public,方便虛擬機直接調用
static: 靜態方法,虛擬機不用創建該類的對象即可調用它內部的main方法
void: 沒有返回值,也就是說返回值為空
String[] args: 在使用命令行執行Java程序的時候,會通過命令行參數傳遞一些數據,這些數據就會被名為args的字符串數組所接收

??首先,根據Java語言的開發規范,main方法必須被聲明為public,當然只是規范而不是必須。如果想要使用private或者protected不將main方法對外開放的話也是可以的,而且源代碼文件依舊會被正常編譯為字節碼(.class)文件,只不過在運行的時候會報"Main method not public"的異常錯誤。在這里插入圖片描述??出現上述情況的原因是:類加載后main方法被虛擬機所調用執行,但是由于main方法并不是public的,導致虛擬機無法調用該方法出現異常。從以上的結論中我們就可以推知,如果在intellij IDEA中不將main方法的訪問權限設置為public的話,就會導致main方法左側不會出現供代碼運行的綠色小三角圖標在這里插入圖片描述??main方法是Java程序的入口,所以每個Java程序都必須有一個main方法,但并不代表著每個類都必須有main方法

🛫 強制and自動類型轉換都是啥?

??Java是一種強類型語言,這就意味著我們在編譯之前就應該為每一個變量聲明一種類型。而在Java中數據類型又被分為基本數據類型和引用數據類型,基本數據類型又被分為四類八種,除了基本數據類型之外的所有數據都是引用數據類型在這里插入圖片描述自動類型轉換
??下面這張圖片中,揭示了基本數據類型間的自動轉換關系。箭頭之間具有傳遞性,實線箭頭代表著無精度損失的轉換,虛線代表轉換會伴隨著數據精度的損失。其中char轉int會將char字符對應的ASCII碼賦給int型變量。在這里插入圖片描述??表達式(用一個二元運算符連接兩個值)中的自動類型轉換,小范圍的值會自動轉換為較大范圍類型的值參與運算,所以說表達式運算的最終結果由最高類型的值決定。而且byte、short、char類型的值不管如何,都是直接轉換成int參與遠算,所以說(byte)+(byte)=(int),其他兩種類型也是如此

強制類型轉換
??由自動類型轉換可知,int類型旳值在必要的時候會自動轉換為double類型,但是當我們需要將double轉int的時候該怎么辦呢?這個時候就要通過強制類型轉換了。
??浮點型強轉為整型,直接丟掉小數只保留整數部分,而并不是簡單的將結果四舍五入,Math.round()方法可以四舍五入(返回值是long型)。如果在強制轉換的過程中,數值超過小范圍取值的話,結果將會被截斷成兩個完全不同的值,eg:(byte)1500 = -36,原理如下:在這里插入圖片描述??顯式轉換一般就是強制類型轉換,隱式轉換除了自動類型轉換還有一種,那就是結合賦值運算符,也就是+=、-=等。如果這種運算符得旳結果類型與左側的的類型不一樣且無法進行自動類型轉換,就會默認使用強制類型轉換將右側的類型強轉為左側的數據類型
??整型值和布爾值之間無法進行相互轉換,無論是自動轉換還是強制轉換都不可以

最后,給兩道題自測一下類型轉換的掌握程度在這里插入圖片描述字丑,勿怪😳

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

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

相關文章

java將date類型轉成yyyymmdd_java中的Date怎么轉換成YYYYMMDD形式?

展開全部SimpleDateFormat inSdf new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);創建SimpleDateFormat對象的時候使用帶Locale的構e69da5e6ba9062616964757a686964616f31333365633938造參數因為你的星期和月份是用E文寫的 所以parse回來的時候自…

安卓10不支持qmc解碼_Root神器支持安卓10 面具Magisk v20.4+Magisk Manager v7.5.1

Magisk的功能和xposed框架的功能差不多,也有很多插件可安裝,而且自帶root,刷入這個Magisk后你的rom同時也就有root了(支持安卓7.0,7.1,8.0,8.1,9,10)這也是目前安裝8.1root的普遍方法,因為目前s…

centos7配置br0_Docker CentOS7 修改網絡配置與宿主機橋接

Docker CentOS7 修改網絡配置與宿主機橋接1、創建橋接物理網絡(1)新建br0橋接網絡,brctl show可以查看(需安裝bridge-utils)(2)將宿主機物理網卡IP、掩碼、網關、dns(或者dhcp)配置到br0上(3)刪除宿主機物理網卡IP、掩碼、網關、dns(或者dhcp)配置(4)將宿主機物理網…

==和equals判等、空串和null串、字符串常用API

💡涉及的知識點速通🛫 關于變量和常量你都知道啥?🛫 &和&&、|和||有什么區別?🛫 關于字符串的問題你能答對幾道?🪂 可以修改一個字符串中的值嗎?🪂 字符串使用…

倆臺電腦怎么設置同一局域網_方法 | 把手機上的照片傳到電腦上

我想把手機上的照片/視頻傳到電腦上怎么辦? 什么云盤,手機助手等等全扔到一邊去,不用。請讓我慢慢道來:現在,人們手機用的越來越多,即使在大街上,到處都是“低頭族”。但是,有好多小伙伴問&…

數據持化技術的發展演變(SQL、JDBC、mybatis)

文章目錄1 簡單SQL語句1.1 查詢1.2 新增1.3 修改1.4 刪除1.5 多表查詢2 JDBC2.1 什么是JDBC2.2 什么是jar和maven2.3 JDBC的使用2.4 JDBC總結3 mybatis3.1 什么是ORM?為什么是ORM不是JDBC?3.2 mybatis的使用3.3 mybatis總結4 mybatis與jdbc的邏輯相同處環境配置 j…

傳統蒙文字體_蒙古要改回使用傳統回鶻蒙文,這是種什么文字,蒙古為什么要改回...

喜歡就點關注吧!文字是一個國家的文化象征,也是其書面交流的主要工具,世界上的大多數國家都有自己獨特的文字,我們的鄰國蒙古也是如此,近日蒙古國實行了一場意義重大的文字改革,據新華社烏蘭巴托3月18日報道&#xff0…

三態輸出門實驗報告注意事項_數電基礎知識:各種IO輸出的類型

集電極開路(OC)集電極開路輸出的結構如圖1所示,右邊的那個三極管集電極什么都不接,所以叫做集電極開路;左邊的三極管為反相之用,使輸入為“0”時,輸出也為“0”。對于圖 1,當左端的輸入為“0”時&#xff0…

數據持久化技術——MP

文章目錄1 環境搭建1.1 創建一個maven的project1.2 pom.xml文件導入web開發依賴1.3 創建SpringBoot項目的主程序入口2 代碼生成器3 配置數據庫4 導入前端頁面5 開始前端控制器的編碼5.1 wrapper構造器mybatis-plus(簡稱 MP)是一個 MyBatis的增強工具,在 MyBatis 的基…

win7無法連接打印機拒絕訪問_如何解決局域網無法訪問SQL Server 2008 無法連接到(local)...

初次安裝使用SQL server 2008時,可能會遇到無法連接到(local)的情況。那么,如何解決此問題?工具/原料: SQL server 2008方法/步驟1. 打開SQL server 配置管理器-->SQL server 網絡配置-->實例名的協議(我的實例名為SQLEXPRESS)。2. 將S…

windows進程管理器_任務管理器就能搞定9成的電腦問題?方法在這里!

90% 對于電腦的不滿,都逃不出這幾個方面:電腦狀態無法隨時監測、運行卡頓、開機時間長、莫名黑屏、電池關鍵時刻不扛使(筆記本電池怎么保養?能不能一直插電源充電?可以戳這里→),很多小伙伴就選擇安裝第三方軟件來解決…

三維網格精簡算法java版_ISMAR 2020 | 商湯提出手機端實時單目三維重建系統

導讀:商湯研究院和浙江大學CAD&CG國家重點實驗室合作研發了一個手機端實時單目三維重建系統Mobile3DRecon。與現有的基于RGBD的在線三維重建或離線生成表面網格的系統不同,該系統結合前端位姿跟蹤結果,允許用戶使用單目攝像頭在線重建場景…

【分類匯總】idea快捷鍵、idea配置、常用插件

寫在前面 千萬別看目錄很長就感覺本篇博客很絮叨繁瑣,里面多是配置的講解貼了很多的圖片方便大家了解,配置成功一次之后就可以一直使用了。 快捷鍵的使用建議大家先看,后續敲代碼的時候刻意的使用快捷鍵,相信經過兩三天的使用就可…

win10設置默認輸入法_個性化設置技巧

個性化設置技巧子墨居士前言本次內容主要是win10系統自帶的功能,不是用第三方軟件優化桌面的情況下,讓自己的電腦桌面能更美觀、更舒服。系統自身的個性化設置主要是下圖中的幾個。鼠標右擊->個性化設置。 第三方軟件的效果會更好,畢竟是專…

什么叫組網_家庭wifi,如何組網最合適

wifi信號通過電磁波在空中傳播的,屬于微波通信的一種,因為微波本身及發射功率的限制,導致wifi的穿透能力比較差,北方比較厚的承重強,鐵門、家具等對都會對wifi信號有較強的削弱作用。穿過的障礙物越多,這種…

java輸入輸出、數組初始化

💡涉及的知識點速通🛫 關于輸入輸出你都知道啥?🛫 關于控制路程都需要注意啥?🛫 關于數組的問題你能答對幾道?🪂 數組初始化的小細節你都知道嗎?🪂 這些Arrays的常見API你都掌握了嗎?&#…

linux rm 命令刪除文件恢復_Linux之恢復誤刪除文件

前言每當我們在生產環境服務器上執行rm命令時,總是提心吊膽的,因為一不小心執行了誤刪,然后就要準備跑路了,畢竟人不是機器,更何況機器也有 bug。那么如果真的刪除了不該刪除的文件,比如數據庫、日志或執行…

ac2100 反彈shell無法粘貼_記一次突破反彈shell

背景某天閑著無聊,小伙伴發來一個某網站,說只能執行命令,不能反彈shell。測試對著目標站點一頓測試。發現確實存在shiro反序列化,并且存在可以利用的gadget。利用發現確實可以執行命令,但是我們執行反彈的時候。反彈不…

java三大特征 重載與重寫的區別

💡涉及的知識點速通🛫 OOP的三大特征都是什么?🪂 什么是封裝?🪂 什么是繼承?🪂 什么是多態?🛫 關于構造器你都知道什么?🛫 關于類的源文件都需要知道什么?🛫 重載和重寫都是什…

發生身份驗證錯誤_Python MySQL8.0 錯誤

Python MySQL8.0 錯誤:authentication plugin calling_sha2_password is not supported.Python3 進行到 python3 mysql(mysql-connector),然后安裝mysql-8.0.16,照著示例程序運行 python,遇到這個大大的問題:authentic…