日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

马士兵java note 5

發(fā)布時間:2025/4/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 马士兵java note 5 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如何選擇數(shù)據(jù)結構

Array 讀快改慢

Linked改快讀慢

Hash兩者之間

?

Map 接口

實現(xiàn)Map接口的類用來存儲key-value

Map接口的實現(xiàn)類有HashMap和TreeMap(二叉樹)

Map類中存儲的key-value對通過鍵來標識,所以鍵值不能重復(equals is too slow, so that hashcode can be used)

Object put(Object key, Object value);

Object get(Object key)

Object remove(Object key)

Boolean containsKey(Object key)

Boolean containsValue()

?

Auto-boxing/unboxing

在合適的時機自動打包、解包:

自動將基礎類型轉換為對象

自動將對象轉換為基礎類型

?

JDK 1.5泛型

裝入集合的類型都被當作Object對待,從而失去自己的實際類型

從集合中取出時往往需要轉型???????????????

解決辦法:

在定義集合的時候同時定義集合中對象的類型

可以在定義Collection的時候指定

也可以在循環(huán)時用Iterator制定

?

好處:增強程序的可讀性和穩(wěn)定性

??????????????????????????????

Class Name implements Comparable<Name> {

Public String toString() {? }

Public Boolean equals(Object obj){}

Public int hashCode(){}

Public int compareTo(Name n){}

}

?

1136

一個圖

一個類: Collections

三個知識點:

For

Generic

Auto-boxing/ unboxing

六個接口

?

在Java程序中,對于數(shù)據(jù)的輸入/輸出操作以stream方式進行

Java.io 包中定義了多個流類型來實現(xiàn)輸入/輸出功能;可以從不同的角度進行分類:

按數(shù)據(jù)流的方向不同可以分為輸入流和輸出流(站在程序的角度上)

按處理數(shù)據(jù)單位不同可以分為字節(jié)流和字符流(一個字符兩個字節(jié))

按照功能不同可以分為節(jié)點流和處理流

節(jié)點流為可以從一個特定的數(shù)據(jù)源(節(jié)點)讀寫數(shù)據(jù)(如 文件 內存)

處理流是連接在已存在的流之上,通過對數(shù)據(jù)的處理為程序提供更為強大的讀寫功能

?

J2SDK所提供的所有流類型位于包java.io 內都分別繼承自以下四種抽象流類型

?

字節(jié)流

字符流

輸入流

InputStream

Reader

輸出流

OutputStream

Writer

?

InputStream的基本方法:

Int read() throws IOException // 讀取一個字節(jié)并以整數(shù)的形式返回 0~255;如果返回-1已到輸入流的末尾

?

Int read (byte [] buffer) throws IOException //讀取一系列字節(jié)并存儲到一個數(shù)組buffer

//返回實際讀取的字節(jié)數(shù),如果讀取前已到輸入流的末尾返回-1

?

Int read(byte[] buffer, int offset, int length) throws IOException

//讀取length個字節(jié)

//并存儲到一個字節(jié)數(shù)組buffer,從offset位置開始

//返回實際讀取的字節(jié)數(shù),如果讀取前以到輸入流的末尾返回-1

?

Void close () throws IOException // 關閉流釋放內存資源

Long skip(long n) throws IOException //跳過n個字節(jié)不讀,返回實際跳過的字節(jié)數(shù)

?

OutputStream的基本方法

Void write (int b) throws IOException

Void write (byte[] b) throws IOException

Void write (byte[] b, int off, int len) throws IOException

Void close()throws IOException

Void flush ()throws IOException //將輸出流中緩沖的數(shù)據(jù)全部寫出目的地

先寫 flush再寫close

?

Reader

?

Reader的基本方法和inputStream基本一致 只是讀出是字符

?

Void write (String string) throws IOException //將一個字符串中的字符寫入到輸出流

(這里用到String類的toCharArray方法)

?

節(jié)點流

類型

字符流

字節(jié)流

File

FileReader

FileWriter

FileInputStream

FileOutputStream

Memory Array

CharArrayReader

CharArrayWriter

ByteArrayInputStream

ByteArrayOutputStream

Memory String

StringReader

StringWriter

?

Pipe

PipedReader

PipedWriter

PipedInputStream

PipedOutputStream

處理流類型

處理類型

字符流

字節(jié)流

Buffering

BufferedReader

BufferedWriter

BufferedInputStream

BufferedOutputStream

Filtering

FilterReader

FilterWriter

FilterInputStream

FilterOutputStream

Converting between bytes and character

InputStreamReader

OutputStreamWriter

?

Object Serialization

?

ObjectInputStream

ObjectOutputStream

Data conversion

?

DataInputStream

DataOutputStream

Counting

LineNumberReader

LineNumberInputStream

Peeking ahead

pushbackReader

PushbackInputStream

Printing

PrintWriter

PrintStream

緩沖流

緩沖流要“套接在相應的節(jié)點流之上,對讀寫的數(shù)據(jù)提供了緩沖的功能,提高了讀寫的效率,同時增加了一些新的方法

構造方法:

BufferedReader (Reader in)

BufferedReader(Reader in , int sz) //sz為自定義緩存區(qū)的大小

BufferedWriter(Writer out)

BufferedWriter(Writer out, int sz)

BufferedInputStream(InputStream in)

BufferedInputStream(InputStream in,int size)

BufferedOutputStream(OutputStream out)

BufferedOutputStream( OutputStream out, int size)

?

l? 緩沖輸入流支持其父類mark和reset 方法

l? BufferedReader提供了readline方法用于讀取一行字符串(以\r 或 \n 分隔)

l? BufferedWriter提供了newLine用于寫入一個行分隔符

l? 對于輸出的緩沖流,寫出的數(shù)據(jù)會先在內存中緩存,使用flush方法將會使內存中的數(shù)據(jù)立刻寫出

??????????????????????????????

轉換流

inputStreamReader and OutputStreamWriter用于字節(jié)數(shù)據(jù)到字符數(shù)據(jù)之間的轉換

inputStreamReader 需要和InputStream 套接 把input Stream轉換成reader

OutputStreamWriter 需要和 OutputStream 套接 把outputStream 轉換成 writer

轉換流在構造時可以指定其編碼集合

?

FileOutputStream(“address of file”, true) // true的意思是在文件的后面續(xù)寫

?

數(shù)據(jù)流

l? DataInputStream 和 DataOutputStream 分別繼承自InputStream和OutputStream, 它屬于處理流,需要分別套接在InputStream和OutputStream類型的節(jié)點流上

l? DataInputStream和DataOutputStream提供了可以存取與機器無關的Java原始類型數(shù)據(jù)(如:int、double等)的方法

l? DataInputStream和DataOutputStream的構造方法為:

w?? DataInputStream(InputStream in)

w?? DataOutputStream( OutputStream out)

?

PrintWriter 和 PrintStream都屬于輸出流,分別針對字符和字節(jié)

PrintWriter和printStream提供了重載的print

Println方法用于多種數(shù)據(jù)類型的輸出

printWriter和printStream的輸出操作不會拋出異常,用戶通過檢測錯誤狀態(tài)獲取錯誤信息

printWriter和PrintStream有自動flush功能

?

printWriter(Writer out)

PrintWriter(Writer out, Boolean autoFlush)

Printwriter( OutputStream out)

printWriter(OutputStream out,Boolean autoFlush)

printStream(OutputStream out)

printStream(OutputStream out, booleanautoFlush)

?

Object 流

直接將Object寫入或讀出

Serializable接口 標記性接口,表示可以對object進行序列化

Transient修飾 把object里面的成員變量變透明

Externalizable接口里面的方法 readExternal(ObjectInput in) writerExternal(ObjectOutput out)自己實現(xiàn)序列化的過程

?

總結

InputStream/OutputStream

Reader/Writer

FIleInputStream/FileOutputStream

FileReader/FileWriter

BufferedInputStream/

BufferedReader/

BytearrayInputStream/

InputStreamReader/

DataInputStream/

PrintStream/Printwriter

ObjectinputStream

?

轉載于:https://www.cnblogs.com/Rebecca-Fan/p/7483583.html

總結

以上是生活随笔為你收集整理的马士兵java note 5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。