菜鳥學java筆記1的簡單介紹

本文目錄一覽:

菜鳥學習java,求大神解釋下面的代碼各段是什麼意思,盡量詳細,謝謝

Zip.java

import java.io.*;

import java.util.zip.*;

public class Zip {

static final int BUFFER = 2048; // 定義緩衝區大小

public static void main (Stringargv[]) {

try {

BufferedInputStream origin= null; // 創建帶有緩衝區的inputstrream

FileOutputStream dest = new

FileOutputStream(“c:\\zip\\myfigs.zip”); // 創建文件輸出流,並打開zip文件 CheckedOutputStream checksum = new

CheckedOutputStream(dest,new Adler32()); // 創建過濾流,並驗證數據的完整性

ZipOutputStream out = new

ZipOutputStream(new

BufferedOutputStream(checksum)); // 創建壓縮文件輸出流,並傳入參數

//out.setMethod(ZipOutputStream.DEFLATED);

byte data[] = newbyte[BUFFER]; // 創建位元組數組

// get a list of files fromcurrent directory

File f = newFile(“.”); // 創建File變數讀取根目錄用於文件的讀寫

String files[] = f.list(); // 讀取f文件夾下所有的文件名

for (int i=0; i files.length; i++) { // 根據文件名的數量進行循環

System.out.println(“Adding: “+files[i]); // 列印出添加的文件名到控制台

FileInputStream fi = new

FileInputStream(files[i]); // 創建文件讀取流,讀取當前循環到的文件

origin = new

BufferedInputStream(fi, BUFFER); // 把文件流放入帶有緩衝區的inputstream,並指定緩衝區大小

ZipEntry entry = newZipEntry(files[i]); // 創建zip壓縮入口實例化,放入當前循環到的文件

out.putNextEntry(entry); // 輸出流中放入壓縮的文件

int count;

while((count =origin.read(data, 0,

BUFFER)) != -1) {// 當count值等於緩衝區讀取的數據位元組大小,且不等於-1

out.write(data, 0,count); // 輸出流寫入count位元組大小的數據

}

origin.close();// 關閉帶有緩衝區的inputstream

}

out.close(); // 關閉輸出流

System.out.println(“checksum:

“+checksum.getChecksum().getValue()); // 列印驗證壓縮文件的值到控制台

} catch(Exception e) { // 捕捉異常

e.printStackTrace(); // 列印異常信息

}

}

}

Java編程學習中從菜鳥開始應該掌握的知識點都哪些?

建議你先了解JAVA的面向對象思想.

剛剛開始學習的時候千萬別用什麼集成開發環境,比如說eclipse那樣的的開發工具,直接用記事本或者是EditPlus或者是UltraEdit32等文本編輯器.那樣你學習起來更快.自己學著怎麼搭建開發環境.

如果是出學者的話建議你買本張孝祥的JAVA就業培訓教程,講得很清楚,注意學習集合類,IO等方面的知識,如果你要向J2ME方向發展的話就要學習SWING等方面的知識.

JAVA核心技術和JAVA編程思想都不太適合初級學者,因為我就是一個學法律轉型學計算機的.在剛剛開始接觸JAVA的時候我買了這兩本書,根本看不懂是個什麼意思.等到現在回頭再看,真是受益非淺.

如果是要視頻方面的知識的話建議你看馬士兵的,因為張孝祥的基礎視頻講得有點羅嗦.

祝你學習愉快!

我是JAVA菜鳥,剛學,希望幫忙下

1. 在Java程序中,通過類的定義只能實現_____單_____重繼承,但通過介面的定義可以實現____多_____重繼承關係。

2. Java中類成員的限定詞有:_public,private,defult,Protected ____。其中,____public_______的限的範圍最大。

3. JAVA 中的循環控制語句有___for______,__do-while____,___while____三種基本形式。

4. 在閏年的判斷中滿足 ( a ) 能被4整除,但不能被100整除;( b )能被4整除,又能被100整除,試用一個表達式表達:___(a)_if year%4==0 and year%100!=0____(b) if year%4==0 and year%100==0_______。

5. do-while 循環的基本條件結構:

[初始化部分]

do

{

循環體;

[ __循環條件____ ]

} while ( __終止條件_____ );

java 菜鳥初學者之super疑惑

1,java中的每個類構造的時候都會調用父類的無參構造

2,如果該父類沒有無參構造,就必須在第一行用super(…)來調用父類的某個構造

3,這只是調用一個方法,並不構造一個對象

Java菜鳥學習編寫第一個java程序HelloWorld

不管學哪門語言,第一個HelloWorld程序成功運行起來的時候,代表著你的學習已經跨進了一小步。做這個java實驗之前,讀者最少要在自己的電腦上安裝好JDK(包括配置好環境變數),如果讀者還不會安裝JDK和配置環境變數可以看作者的另一遍經驗。

編寫並保存代碼。打開記事本編寫如圖1所示代碼,圖1代碼為(注意輸入代碼時輸入法一定切換到英文輸入狀態下):

public class HelloWorld {

/**

* 輸出一行字元串「Hello World!」

* @param args

*/

public static void main(String[] args) {

System.out.println(“Hello World!”);

}

}

在D盤建立一個JAVA文件夾用於保存代碼,保存的時候一定要注意,如圖2所示,「保存類型(T)」要選擇「所有文件(*.*)」,「文件名(N)」一定要為 HelloWorld.java 。如圖3所示,保存後到D:JAVA下檢查下文件名是否正確,HelloWorld.java.txt,HelloWorld.txt都是錯誤的文件名。JAVA程序代碼後綴為.java,文件名常常要求保持和類名一致。JAVA語言是嚴格區分大小寫字母的,但是Windows的文件名卻不區分大小寫。

啟動命令提示符並進入到D:JAVA文件夾。如圖1所示,按下WIN+R鍵啟動運行命令框,輸入cmd命令後回車,就可以啟動命令提示符窗口。然後在命令提示符窗口中輸入下面命令進入D:JAVA目錄:

D: 回車

cd JAVA 回車

調用編譯指令javac把HelloWorld.java轉換為位元組碼文件HelloWorld.class 。如下圖所示,執行指令:

javac HelloWorld.java 回車

執行指令如果沒提示什麼信息就是最好的信息,這時檢查JAVA文件夾就會發現多了一個.class文件,這就是位元組碼文件了。如果提示錯誤信息就要回過頭檢查了。首先檢查JDK環境變數是否配置好,然後檢查類名和文件名是否一致,再檢查代碼是否有用正文輸入法輸入等等。

運行程序。代碼轉換為.class 文件後就可以在JVM虛擬機下運行了。在命令提示符敲入命令:

java HelloWorld 回車

如圖所示,回車後列印輸出:

HelloWorld!

注意,這時實際上是運行HelloWorld.class,但是命令中並不用加後綴名。

分析第三步的偽編譯原理。如圖所示,.java後綴的是源代碼,一個或者多個源代碼要經過java編譯器生產.class後綴的位元組碼。位元組碼是和平台無關的,和C語言編譯生成平台相關的機器碼是不一樣的。機器碼可以只能在對應的平台執行,位元組碼執行是平台無關的但是必須有解釋器。

分析第四部JAVA程序的執行過程。圖為.class文件被讀取後進行解釋為平台相關機器碼執行的過程。和編譯型語言(比如C)程序最大的不同是JAVA程序經過解釋器轉換為和平台相關的機器碼才可執行,可見這個過程在執行過程中動態解釋,而編譯型語言(比如C)是在執行之前就編譯成了和平台相關的機器碼了。這也是JAVA語言可以「一次(偽)編譯,到處運行」的重要原因。

菜鳥:剛學java,堆區,棧區,靜態區,代碼區,暈了!!!!!

程序運行時,我們最好對數據保存到什麼地方做到心中有數。特別要注意的是內在的分配,有六個地方都可以保存數據:

1、 寄存器。這是最快的保存區域,因為它位於和其他所有保存方式不同的地方:處理器內部。然而,寄存器的數量十分有限,所以寄存器是根據需要由編譯器分配。我們對此沒有直接的控制權,也不可能在自己的程序里找到寄存器存在的任何蹤跡。

2、 堆棧。駐留於常規RAM(隨機訪問存儲器)區域。但可通過它的「堆棧指針」獲得處理的直接支持。堆棧指針若向下移,會創建新的內存;若向上移,則會釋放那些內存。這是一種特別快、特別有效的數據保存方式,僅次於寄存器。創建程序時,java編譯器必須準確地知道堆棧內保存的所有數據的「長度」以及「存在時間」。這是由於它必須生成相應的代碼,以便向上和向下移動指針。這一限制無疑影響了程序的靈活性,所以儘管有些java數據要保存在堆棧里——特別是對象句柄,但java對象並不放到其中。

3、 堆。一種常規用途的內存池(也在RAM區域),其中保存了java對象。和堆棧不同:「內存堆」或「堆」最吸引人的地方在於編譯器不必知道要從堆里分配多少存儲空間,也不必知道存儲的數據要在堆里停留多長的時間。因此,用堆保存數據時會得到更大的靈活性。要求創建一個對象時,只需用new命令編製相碰的代碼即可。執行這些代碼時,會在堆里自動進行數據的保存。當然,為達到這種靈活性,必然會付出一定的代價:在堆里分配存儲空間時會花掉更長的時間

4、 靜態存儲。這兒的「靜態」是指「位於固定位置」。程序運行期間,靜態存儲的數據將隨時等候調用。可用static關鍵字指出一個對象的特定元素是靜態的。但java對象本身永遠都不會置入靜態存儲空間。

5、 常數存儲。常數值通常直接置於程序代碼內部。這樣做是安全的。因為它們永遠都不會改變,有的常數需要嚴格地保護,所以可考慮將它們置入只讀存儲器(ROM)。

6、 非RAM存儲。若數據完全獨立於一個程序之外,則程序不運行時仍可存在,並在程序的控制範圍之外。其中兩個最主要的例子便是「流式對象」和「固定對象」。對於流式對象,對象會變成位元組流,通常會發給另一台機器,而對於固定對象,對象保存在磁碟中。即使程序中止運行,它們仍可保持自己的狀態不變。對於這些類型的數據存儲,一個特別有用的技藝就是它們能存在於其他媒體中,一旦需要,甚至能將它們恢復成普通的、基於RAM的對象。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/191020.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-30 09:08
下一篇 2024-11-30 09:08

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論