1. 程式人生 > >java易錯易混難記點___2

java易錯易混難記點___2

1、  Stream是沒有緩衝的,有資料直接寫,所以不需要重新整理。

2、  靜態是不可以被序列化的,因為只可以序列化堆裡面的東西,而靜態是在方法區,所以不可以。

3、  ObjectOutputStream 是可以寫上多個物件的,讀的時候讀一次出來一個!

4、  集合當中涉及到IO流的是PropertiesIO流中涉及到多執行緒的是管道流,IO流涉及到集合(VectorEnumeration)的是SequenceInputStream

5、  RandomAccessFile物件裡面讀寫的檔案時需要有規律的,否則不容易隨機訪問。而且要注意每一條資料都一定要佔一定的文位置以便於多執行緒同時分段寫入。

6、注意英文不涉及到編碼,中文才有。

7、圖形化介面是由另外的執行緒來控制的,只要開啟了圖形化介面就開啟了新的執行緒。

8jar包雙擊執行的前提是圖形化介面,因為沒有控制檯,不可以直接輸出文字。

9、用bufferedReader什麼的時候要記住flush(),用newLine()時要記著裡面的字元沒有換行標記,接收方如果也用newLine()方法接收,則認為一行還沒有結束,所以程式將阻塞,所以傳送方要記著加上buf.newLine();

10、強制結束程式執行中的一些小問題

當命令列陷入死迴圈什麼的不會結束執行時Ctrl+C可以強制結束執行,但這是為什麼呢?

其實很多程式執行都是有前提條件的,但基本上都是如果再運行當中收到了“-1

”這個值就要結束執行,Ctrl+C其實就是輸入了一個位元組的“-1”(注意:直接輸入“-1”時不可以的,因為它佔兩個位元組,而read()方法一次只讀一個位元組,所以解析的和你預想的不一樣!)標記,此時程式才結束執行。

還有一個需要注意的地方就是在TCP程式設計的時候,如果客戶端執行結束後它呼叫了自己的關閉Socket方法時,此方法也返回一個位元組的“-1”,此時如果伺服器端結束執行的標誌也是“-1”,則伺服器將停止,這絕對不是你想要的,古要注意這一點!

11、對於readLine()!=null這個方法,讀檔案時可以結束,讀鍵盤不可以結束。

12、停止TCP的方式:

1)自定義標記,如在資料傳送完後來一個out.println(“over”);

服務端每接受一次資料都判斷是否為結束標記,如果是就停止。

風險:如果傳送的檔案中就有此標記,則程式執行不成功。

2)傳送資料之前先告訴伺服器結束標記,伺服器第一次只讀一行。

3)時間戳

4Socket自帶的shutDown()方法。

13telnet ip地址埠號:遠端登入命令

如:telnet 127.0.0.1 80880

14、如果列舉中只有一個成員,則可作為單例設計模式

15、程式開發時一定要分清是編譯時還是執行時!

編譯時只看程式碼的定義不看程式碼的執行

16

相關推薦

java___2

1、  Stream是沒有緩衝的,有資料直接寫,所以不需要重新整理。 2、  靜態是不可以被序列化的,因為只可以序列化堆裡面的東西,而靜態是在方法區,所以不可以。 3、  ObjectOutp

java___1

一、list(陣列) 1.ArrayList及 LinkedList比較物件時用的都是物件的底層equals方法。 二.HashSet(雜湊表) 1.原int hashCode()方法將返回物件的地

陣列及需注意的和心得

陣列是一種複合型別。 1、Char a[ ];定義一個a陣列 2、Char *a;定義一個指標 3、a[ 20]雖然是20個元素的要求,但是內部不一定是20個,可能是比20個少。 4、a[ d] d是維度,維度必須是一個常量表達式。 注:儲存在每個元素中的值的型別  

忘收集(既有CS231n課程學習)

 axis=0為列方向  axis=1為行方向 在axis方向上求。。。 verbose=True才打印 np.max:(a, axis=None, out=None, keepdims=False)求序列的最值,最少接收一個引數,axis:預設為列向(也

java預習

指定 通過 默認 不能 補充 字符串 內容 單獨 編碼 第一:System.out.println("命令“);(註意:這裏是一個輸出指令,可以輸出括號中指定的字符串內容,要註意一定要在括號末端加 “ ;” 還有字符串要在雙引號內)

Java

1. 訪問控制修飾符 修飾符 本類 同包 同包子類 不同包子類 其他包 private √ × × × ×

我的java程式設計之

(1). java程式設計的日期,年月日,月竟然從0開始算起,年和日從1開始算 (2). mysql ResultSet rs rs.getInt(1);<==>rs.getInt(“id

java細節整理(

1)==用於基本資料型別的比較,在引用資料型別上面使用的時候比較的是地址值 例: 下面程式的執行結果是() String str1 = "hello"; String str2 = "he" + new String("llo"); System.er

計算機二級Java筆記/重難點總結(按章節歸納整理)

一、java的體系結構: 1、Java程式首先由編譯器轉換為標準位元組程式碼,然後由虛擬機器來解釋執行      Applet是java的一類特殊應用程式,它潛入HTML中,可以實現多媒體的使用者介面或複雜的計算,可以在瀏覽器上執行; 2、JDK的bin目錄下由編譯器、

java進階複習——常見總結

本博文用於記載java進階中一些難點和易混淆的知識點,並不詳細,也不全面,適合有java基礎的朋友進行復習鞏固。 (部分內容為從PPT中拷貝,侵刪) 裡面編號有點問題,以後再改吧,先湊合著看看 一、反射 反射中我們可以通過Class 物件來反射出

JAVA中String類的split方法的

最近在專案中遇到了一個問題,就是解析字串成陣列進行比對的,比如:        {            "imageDetail": "123&234&&",            "imageType": "O&A&B&C"

Java基礎回顧——重難點【2】

看過才明白,我自己的基礎漏洞還真是不少,不知道大牛們是不是跟我一樣也有過這個階段q.q 在Java中修飾符總共有一下幾種: 1.訪問控制修飾符 分別有:public private protected,預設 2.其它修飾符 分別有:abstract

java基礎理解、混淆知識點複習

以下為學習java基礎語法與原理過程中發現的一些與以往感覺不同、或者是不熟悉的地方,特此列出。只是提綱所以不是很詳細,有些地方為了通俗易懂可能不是很嚴謹,盡請指正與補充。 1、 java命令列編譯與執行:javac Welcome.java ->

Java學習系列(二)Java註釋、識別符號、基本資料型別及其轉換詳解

Java註釋 前面我們講了下Java的執行機制及JDK的安裝配置等相關操作,今天我們先從Java的註釋開始。Java註釋對程式本身沒有影響,主要是開發者提供一些輔助資訊來更好的理解。首先,Java的註釋分三種:單行、多行以及文件註釋。單行://後面的內容就是單行註釋;多行:

零基礎學習 java

去年開始接觸java 第一次敲出了 “hello world” 心底那叫一個興奮啊! 就在控制檯上面的小字, 最容易犯的錯誤就是:中英文符號很容易出錯 每次執行javac 編譯的時候,出現一大堆的錯誤

OO總結

space tor 初始化列表 audio 子類 book white hit 類的初始化 在寫子類的構造函數時,要在初始化列表中指定使用的父類的構造函數並完成其初始化,如下例: p,li { white-space: pre-wrap } AudioBook(co

javascript

優先 沒有 round ring 過去 這一 rip string 多個 1.標題不知道叫什麽好。 2.一些比較繞的問題,可能出現在面試中。 1 <!DOCTYPE html> 2 <html> 3 <head>

深度理解CSS中塊級元素與行內元素的區別(個人

水平 切換 otto display pad 情況 易錯點 寬度 塊級元素 區別一: 塊級:塊級元素會獨占一行,默認情況下寬度自動填滿其父元素寬度 行內:行內元素不會獨占一行,相鄰的行內元素會排在同一行。其寬度隨內容的變化而變化。 區別二: 塊級:塊級元素可以設置寬高 行內

筆記:構造函數

err name 工作 系統調用 設計 total ring strong logs 本文介紹了類中無默認構造函數可能會出現的問題,以及避免方法。下面一段程序編譯的時候 會出現錯誤. 1 #include<iostream> 2 3 #includ

1.概念和

直接 註意 cnblogs dff 字符串操作 裏的 原來 -1 這就是 #1。涉及概念split(" " ,要切的次數 默認為全切(-1)寫1就切一次 )" "這裏的內容為要切的根據, # 以誰為根據來切,如果要切的值的索引位置在0 位上,則返回的列表中第一個字符串為