Java 概述和編程基礎

  First of all,Java概述:

  類是Java程序設計的基石和基本單元;

  main()方法是程序的入口,它是共有的、靜態的,參數String[] args表示一個字符串數組可以傳入該程序,用來傳遞外部數據以初始化程序。  

  計算機語言,總的來說可分成:機器語言、匯編語言、高級語言。

  高級語言:

  解釋類——程序源碼由解釋器執行,不能生成可獨立執行的可執行文件,即程序不能脫離解釋器獨立運行。效率低、領過,能動態調整、修改程序。

  編譯類——將程序源碼翻譯成目標代碼(機器語言),目標代碼和硬件、操作系統緊密相關。程序一旦修改,需重新編譯。

  Java程序要先編譯、后執行。Java源文件—編譯器—字節碼文件——解釋器(JVM)——機器碼

?

  JVM如何加載類并調用main()方法?

  在main方法執行之前,JVM需要執行3個步驟:類加載、鏈接、初始化

  (1)通過類加載器加載字節碼類和接口到JVM;

  (2)連接合并字節碼到運行態的JVM。連接有三步:驗證、準備和解析。驗證確保類/接口在結構上是正確的,準備工作包括為所需的類/接口分配內存,然后解析符號引用并構建語法樹。

  (3)為變量分配內存并初始化;

  當JVM啟動時,有3個類加載器被使用:引導類加載器、擴展類加載器、系統類加載器。

  系統類加載器負責在類的搜索路徑中找到對應代碼,所以HelloWorld類是由系統類加載器加載的。當執行到main()方法,會觸發加載、鏈接其它相關的類的初始化。

?

?

  一、標識符——標識一個名字的存在性和唯一性

  1. 保留字——Java預定義的標識符,又稱關鍵字

  關鍵字分類:數據基本類型;程序控制語句;訪問控制;類、方法和變量的修飾符、變量引用、錯誤處理、包相關;

  2. 用戶自定義標識符,以字母、下劃線或$開頭的字符序列

?

  二、變量

  變量是一個數據存儲空間的標識,不同的數據存入不同的內存地址的空間,相互獨立。

  內存的數據需要通過變量來存取,因此,變量賦值操作本質上是內存引用的變化。

  Java是強類型語言,聲明任何變量,必須為該變量指定一種數據類型。且先聲明,后使用。

  JVM根據變量的類型為變量分配存儲空間,分配的空間只能用來存儲該類型的數據,因此定義不同類型的變量,實質上是獲得了對內存中各種數據類型的訪問引用。

?

  三、數據類型

  數據類型:基本數據類型、擴展數據類型

  基本數據類型:布爾型(boolean)、字符型(char)、數值型——整數類型(byte,short,int long)、浮點型(float,double)

  擴展數據類型:類(class)、接口(interface)、數組(array)

  

  四、基本數據類型

  Java不允許數值類型和布爾類型互相轉換;

  Java不能定義無符號數(unsigned),當程序中需要無符號數時,需要通過位運算獲得。

  整數類型和浮點數的表示范圍不受操作系統的影響;

  Java基于unicode表示字符,每個字符占2 Byte;

  整數、浮點、字符可以自動轉換,byte、short、char<int<long<double<float,前三種參與計算時不會相互轉換,因為都轉換為int;

  多種數據類型混合計算,先自動將數轉換為容量最大的類型,再進行計算。

?

  五、其它

  常量,表示固定值(無需計算);常變量,final修飾的變量,賦值后不能修改。

  求余運算的兩個運算變量沒有限制,結果符號跟隨求余運算符左邊的操作數;

  instanceof(對象運算符)是一個關系運算符,即兩邊的數據類型應該一致。關系表達式的結果為boolean。

  邏輯運算符&&和||存在短路現象。

  位運算符(<<,>>>,>>).

  運算符的結合性,從左至右。

  

  break語句,終止某個語句塊的執行,使得應用程序從該語句塊后的第一個語句處開始執行;

  continue語句,忽略當前循環,即跳過循環語句塊的一次執行,開始下一次循環。(break結束整個循環)

  return語句,從當前方法退出,控制流返回到方法調用處;

?

  六、程序設計風格

  標識符命名:用完整的英文描述;駝峰式大小寫;

  源文件命名:源文件與其中的公共類名字一致;一個源文件只能有一個公共類;若源文件不包含公共類,文件名和某個類名字相同就行;

?

轉載于:https://www.cnblogs.com/bigbigbigo/p/8417590.html

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

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

相關文章

19、Fragment

一、Fragment 1.1、fragment介紹 fragment的出現是為了同時適應手機和平板&#xff0c;可以將其看做Activity的組成部分&#xff0c;甚至Activity界面完全由不同的Fragment組成&#xff0c;它擁有自己的生命 周期和接收、處理用戶的事件&#xff0c;更為重要的是&#xff0c;可…

喜好:

不喜歡吃&#xff1a;一瓣瓣的蘑菇、海帶、豆腐皮、 不喜歡喝&#xff1a;魚湯&#xff1b; 不喜歡吃&#xff1a;山楂片、法式小面包&#xff08;軟軟的&#xff09;、果凍、 不喜歡喝&#xff1a;對飲料無感、不喜歡脈動、可樂雪碧等少量還行、 喜歡&#xff1a;啃骨頭、排骨…

將TUM數據集制作成BundleFusion數據集

在上一篇文章中,我寫到了如何將TUM數據生成BundleFusion所需要的數據集,生成的數據集如下圖中所示.并且是將每一組數據的groundtruth.txt中的位姿數據寫如到這里的pose文件中,作為每一幀圖像的先驗位姿. 今天我便將生成的數據集轉換為了.sens格式,然后運行bundlefusion算法,第…

每一次突破都是一種進步

一直以來&#xff0c;我接觸一門新技術&#xff0c;都是先看開發文檔&#xff0c;了解了這個技術是做什么的&#xff0c;能做什么。但是不知道怎么起步&#xff0c;也不敢貿然動手。我的解決辦法是看視頻&#xff0c;看別人怎么使用&#xff0c;跟著別人做&#xff0c;然后聽別…

mysql盲注學習-1

mysql: 1.left() //left()函數 left(a,b)從左側截取a,的b位 2.mid() //mid()函數 參數 描述 column_name 必需。要提取字符的字段。 start 必需。規定開始位置&#xff08;起始值是 1&#xff09;。 length 可選。要返回的字符數。如果省略&#xff0c;則 MID() 函數…

二分學習筆記

寫在前面 二分是一種常用且非常精妙的算法&#xff0c;常常是我們解決問題的突破口。二分的基本用途是在單調序列或單調函數中做查找。因此當問題的答案具有單調性時&#xff0c;就可以通過二分把求解轉化為判定。進一步地&#xff0c;我們還可以通過三分法解決單調函數的極值以…

解析.sens數據集

python腳本在下面網址中https://github.com/ScanNet/ScanNet/tree/master/SensReader/python 一定要使用python2運行此腳本. 使用指令如下 python reader.py --filename /media/yunlei/YL/DATASETS/ICL_DATABASE/lr_kt1/living_room_traj1n_frei_png.sens --output_path /me…

ConcurrentHashMap 解讀

初始化&#xff1a; 問題&#xff1a;如何當且僅只有一個線程初始化table 1 private final Node<K,V>[] initTable() {2 Node<K,V>[] tab; int sc;3 while ((tab table) null || tab.length 0) {4 if ((sc sizeCtl) < 0)5 …

XML Schema 基本結構

<?xml version1.0?> <Schema name"cangchuSchema" metamodelVersion"4.0"><PhysicalSchema><Table name"highway_toll"><Key><Column name"uid"/></Key></Table><Table name&qu…

關于系統自帶 .NET Framework 版本的說明

系統自帶版本&#xff1a; Windows XP (SP3) .NET Framework 1.1Windows 7 (SP1) .NET Framework 3.5.1Windows 8.1 .NET Framework 4.5.1Windows 10 (1507) .NET Framework 4.6Windows 10 (1511) .NET Framework 4.6.1Windows 10 (1607) .NET Framework 4.6.2Windows 10 (1703…

BundleFusion那些事兒

背景&#xff1a;前面幾篇博客中寫了很多關于BundleFusion的東西&#xff0c;主要包括bundlefusion的論文閱讀筆記&#xff0c;.sens數據集的生成等&#xff0c;經過最近幾天的工作&#xff0c;我對bundlefusion又有了新的技術積累&#xff0c;在這里整理一下&#xff0c;也算是…

問題:圖片怎么保存到數據庫, 以及怎么把圖片從數據庫中取出來使用?(已解決)...

簡單&#xff0c;不保存圖片到數據庫&#xff0c;而是圖片的路徑。 也就是說&#xff0c;先把圖片下載到服務器的指定目錄下&#xff0c;然后&#xff0c;在把相對的路徑保存到數據庫中。 如果下次獲取圖片&#xff0c;就訪問數據庫&#xff0c;獲取圖片路徑&#xff0c;然后根…

Oracle Study之--Oracle 11gR2通過RMAN克隆數據庫

Oracle Study之--Oracle 11gR2通過RMAN克隆數據庫Purpose of Database Duplication A duplicate database is useful for a variety of purposes, most of which involve testing. You can perform the following tasks in a duplicate database: Test backup and recovery pro…

ubuntu16.04安裝evo

背景:這已經是我第二次嘗試安裝evo了,最近因為在bundlefusion加入groundtruth的問題搞的很煩躁,我懷疑是不是我給定的groundtruth是不是不正確,所以我就寫python腳本,獲取計算生成的位姿數據,寫入的groundtruth位姿數據.獲取數據后,將數據可視化就成了一個很重要的問題,我還是打…

前端性能優化之gzip

gzip是GNUzip的縮寫&#xff0c;它是一個GNU自由軟件的文件壓縮程序。它最早由Jean-loup Gailly和Mark Adler創建&#xff0c;用于UNⅨ系統的文件壓縮。我們在Linux中經常會用到后綴為.gz的文件&#xff0c;它們就是GZIP格式的。現今已經成為Internet 上使用非常普遍的一種數據…

luogu2770 航空路線問題 網絡流

題目大意&#xff1a; 給定一張航空圖&#xff0c;圖中頂點代表城市&#xff0c;邊代表 2 城市間的直通航線。現要求找出一條滿足下述限制條件的且途經城市最多的旅行路線。(1)從最西端城市出發&#xff0c;單向從西向東途經若干城市到達最東端城市&#xff0c;然后再單向從東向…

手機錄音ogg格式怎么轉換mp3

Ogg這種音頻格式剛出來的時候大家是非常熱愛的&#xff0c;但是隨著時代的發展&#xff0c;這種音頻格式已經已經被取代了&#xff0c;現在呢走在音頻格式前端的是MP3格式&#xff0c;這是大家都比較熟悉的&#xff0c;但是我們還是會經常下載到ogg這種格式的音頻&#xff0c;就…

TP3.2設置URL偽靜態滿足更好的SEO效果

URL偽靜態通常是為了滿足更好的SEO效果&#xff0c;ThinkPHP支持偽靜態URL設置&#xff0c;可以通過設置URL_HTML_SUFFIX參數隨意在URL的最后增加你想要的靜態后綴&#xff0c;而不會影響當前操作的正常執行。 例如&#xff0c;我們設置 URL_HTML_SUFFIX>shtml 的話&#xf…

[機器學習] 推薦系統之協同過濾算法(轉)

[機器學習]推薦系統之協同過濾算法 在現今的推薦技術和算法中&#xff0c;最被大家廣泛認可和采用的就是基于協同過濾的推薦方法。本文將帶你深入了解協同過濾的秘密。下面直接進入正題. 1. 什么是推薦算法 推薦算法最早在1992年就提出來了&#xff0c;但是火起來實際上是最近這…

BundleFusion代碼框架講解

背景&#xff1a;前面用了幾篇文章來記錄和總結了&#xff0c;我在研究bundlefusion過程中遇到的一些問題以及解決方法&#xff0c;本來想實現給bundlefusion輸入先驗軌跡&#xff0c;然后讓其根據給定的軌跡進行重建&#xff0c;這樣即便在環境比較惡劣的情況下&#xff0c;也…