1. 程式人生 > >第三週知識點總結

第三週知識點總結

這個是可以的,一個“.java”原始檔裡面可以包含多個類,但是隻允許有一個public類,並且類名必須和檔名一致。

每個編譯單元只能有一個public 類。這麼做的意思是,每個編譯單元只能有一個公開的介面,而這個介面就由其public 類來表示。
你可以根據需要,往這個檔案裡面新增任意多個提供輔助功能的package 許可權的類。但是如果這個編譯單元裡面有兩個或兩個以上的public 類的話,程式就不知道從哪裡匯入了,編譯器就會報錯。 

什麼是GC?什麼樣的物件可以被GC回收?程式設計師如何召喚GC?一旦召喚是否馬上回收?

GC即:gabage collection,垃圾回收的意思。
沒有引用指向的物件會被GC回收,程式設計師可以通過System.gc()、run.gc()或者GC所支援的其它呼叫方法召喚GC。
但是召喚過後,GC什麼時候處理還是不明確。

JRE是java執行時環境,包含了java虛擬機器,java基礎類庫。是使用java語言編寫的程式執行所需要的軟體環境,是提供給想執行java程式的使用者使用的。
JDK是java開發工具包,是程式設計師使用java語言編寫java程式所需的開發工具包,是提供給程式設計師使用的。JDK包含了JRE,同時還包含了編譯java原始碼的編譯器javac,還包含了很多java程式除錯和分析的工具軟體。如果你需要執行java程式,只需安裝JRE就可以了。如果你需要編寫java程式,需要安裝JDK

new String()究竟建立幾個物件?

1. 由來

遇到一個Java面試題,是關於String的,自己對String

還有點研究?下面是題目的描述:

在Java中,new String("hello")這樣的建立方式,到底建立了幾個String物件?

題目下答案,各說紛紜,有說1個的,有說2個的。我覺得都對,但也都不對,因為要加上一定的條件,下面來分析下!

2. 解答

2.1. 分析

題目中的String建立方式,是呼叫String的有參建構函式,而這個有參建構函式的原始碼則是這樣的public String(String original),這就是說,我們可以把程式碼轉換為下面這種:


String temp = "hello";  // 在常量池中

String str = new String(temp); // 在堆上
  • 1
  • 2
  • 3
  • 4
  • 5

這段程式碼就建立了2個String物件,temp指向在常量池中的,str指向堆上的,而str內部的char value[]則指向常量池中的char value[],所以這裡的答案是2個物件。(這裡不再詳述內部過程,之前的文章有寫,參考深入淺出Java String)

那之前我為什麼說答案是1個的也對呢,假如就只有這一句String str = new String("hello")程式碼,並且此時的常量池的沒有"hello"這個String,那麼答案是兩個;如果此時常量池中,已經存在了"hello",那麼此時就只建立堆上str,而不會建立常量池中temp,(注意這裡都是引用),所以此時答案就是1個。


相關推薦

知識點總結

這個是可以的,一個“.java”原始檔裡面可以包含多個類,但是隻允許有一個public類,並且類名必須和檔名一致。 每個編譯單元只能有一個public 類。這麼做的意思是,每個編譯單元只能有一個公開的介面,而這個介面就由其public 類來表示。 你可以根據需要,往這個檔案裡面新增任意多個提供輔助功能的pa

201711671104《Java程式設計》學習總結

教材學習內容總結         輸入基本型資料: Scanner 是JDK1.5新增的一個類,可以使用該類建立一個物件: Scanner reader=new Scanner(System.in);      

《Java程式設計》學習總結

201711671111 《Java程式設計》第三週學習總結 教材學習內容總結      第3章--運算子、表示式和語句 Java語言中的絕大多數運算子和C語言相同。 精度從"低”到“高”排列的順序是:byte,short,char,i

201711671119《Java程式設計》學習總結

教學內容總結 第三章 1.運算子 ①算術運算子:+ - * / %  (都是二目運算子) ②自增、自減運算子:   ++x (--x):表示在使用x之前,先使用x的值增(減)1   x++ (x--):表示在使用x之後,使x的值增(減)1 ③

學習總結---運算子,表示式和語句

1.加減運算子以及乘除和求餘運算子都是兩目運算子 2.運算表示式如:x+2*y-30+3*(y+5) 3.自增、自減運算子:++、--     ++x(--x)使用x之前,先使x的值增(減)1 x++(x--)先使用x,讓x的值再變化 4.算術運算的精度:by

201711671235學習《java程式設計》學習總結

教材學習內容總結 1.運算子和表示式 a.+,-:二目運算子,優先順序4級,結合方向:左->右 b.*,/,%:二目運算子,優先順序3級,結合方向:左->右 c.自增自減(++,--):單目運算子 ++x(--x):先自增(自減)1再使用x x++(x--):先使

java學習總結

教材學習內容總結 第三章:運算子、表示式、語句 1.運算子:算術運算子、關係運算符、邏輯運算子、位運算子 a.算術運算子:+、-、*、/、%(二目) b.自增自減運算子:++、--(單目) c.算術混合運算的精度: byte  short  char &n

201711671210《Java程式設計》學習總結

教材內容學習總結 Java的提供了很多運算子,如算術運算子(+,-,*,/,%)、關係運算符(>,<,>=,<=,!=,==)、邏輯運算子(&&,||,!)、賦值運算子(=)、位運運算子、instanceof運算子(物件instanceof類,運算結

201711671213《Java程式設計》學習總結

教材學習內容總結 運算子與表示式,Java裡的絕大多數運算子和C語言相同。 if條件分支語句,if語句是單條件分支語句。 switch開關語句,switch語句是單條件多分支的開關語句。 迴圈語句 break和continue語句,如果在某次迴圈中執行了break語

201711671202《Java程式設計》學習總結

教材學習內容總結 如果表示式中最高精度低於int型整數,則按int精度進行執行 &&、||為二目運算子,實現邏輯與,邏輯或;!為單目運算子,實現邏輯非 賦值運算子=是二目運算子,左面的操作元必須是變數,不能是常量或表示式,結合方向是從右到左 位運算子中

學號20《Java程式設計》學習總結

教材學習內容總結 這一週學習的是運算子、表示式和語句,這些在學習C/C++已經接觸過了,什麼加法、減法,自增、自減運算子,關係運算符以及賦值,位運算(或,非以及異或)等等,接下來還有就是條件判斷的語句,第一個是if語句,控制單條件單分支,但是if-else語句是單分支雙分支語

201711671203《Java程式設計》學習總結

0.0...儘管標題是第三週的學習總結。。結果拖到了第四周才寫,國慶太放肆了呀hah 教材學習內容總結 關於變數:首先是區分好區域性變數和成員變數,如果區域性變數和成員變數的名字相同,那麼成員變數被隱藏,即該成員變數在這個方法內失效。其次,成員變數是有預設值的,但區域性變

201711671114《Java程式設計》學習總結

教材學習內容總結 主要學習運算子、表示式和基本語句 算術運算子 操作符 描述 + 加法 - 相加運算子兩側的值 - 減法 - 左運算元減去右運算元 * 乘法 - 相乘操作符兩側的值 / 除法 - 左運算元除以右運算元 %

201711671212 《java程式設計》學習總結

教材學習內容總結 本週學習內容:第三章 運算子、表示式和語句。其中絕大多數運算子與C語言相同。 1.位運算子(對兩個整型資料對應的位進行運算得到一個新的整型資料)  按位與運算:a、b同為1,則c為1,否則為0。 按位或運算:a、b同為0,則c為0,否則為1。 按位非運

總結

    恩..差點被氣死,第一次寫的那個周總結存在了草稿箱裡,然後點開它,竟然404了!!!!本來今天一週一講的時候,我記憶比較深刻的就是404主要是路徑的問題,然後...現在徹底記住了這個問題..好氣哦... 基本已經忘記了我當時寫了些啥, 我已經不想再認真的寫它了,瘋狂

java學習總結

1.陣列屬於引用型變數,因此兩個相同型別的陣列如果具有相同的引用,他們就有完全相同的元素。需要注意的是,對於char型陣列a,System.out.println(a)不會輸出陣列a的引用而是輸出陣列a的全部元素的值。 2.運算子與表示式 (1)加減運算子+,-是二目運算子,即連續兩個操作元的運算子

2018-2019-1 20189215 《文獻管理與資訊分析》課程學習總結

第三週 RSS 同步世界最新資訊 學習內容總結 RSS可以幫助我們實現知識工作自動化,避免將大部分時間都用在可重複的繁複工作中,不要搶機器人飯碗。 3.1我們需要怎樣的資訊工具 人是資訊的集合體 資訊質量決定了人與人之間的差異 見多識廣,視野才會更加開闊 持續積累,才能成為

2017暑假訓練總結

  這兩天簡單看了一下有關線段樹的題目,還是認為線段樹的題目十分的難想,主要是難想樹的含義以及樹下存的內容。   Billboard這個題目就是一道典型的這樣的題,題意就是貼海報,w*h的一塊板子,往上面1*w貼海報,儘量貼的高,高度相同,向左貼。   題目的思路就是用線段

【學習總結】C-翁愷老師-入門-<迴圈>

【學習總結】C-翁愷老師-入門-總 第三週 <迴圈> 1-求一個整數的位數:引入迴圈while 注:迴圈體內要有改變迴圈的機會,要不然就死迴圈了啊! 注:手寫推測程式是否正確。 注:測試程式-邊界:個位數、10、0、負數等。或者插入print來顯示一定變數的值 2

-小組專案總結

概覽: 第三週工作總結 工作概述 本週工作可以分為三個部分 1. 網頁各個介面文件與資料庫描述文件撰寫,以及需求規格說明書開始撰寫。 2. 網頁根據介面設計文件各個介面完成,核心功能基本實現。 3. 資料庫根據資