原创 Java對象的序列化和反序列化

1.基本概念        把對象轉換爲字節序列的過程稱爲對象的序列化。   把字節序列恢復爲對象的過程稱爲對象的反序列化。   對象的序列化主要有兩種用途:   1) 把對象的字節序列永久地保存到硬盤上,通常存放在一個文件中;   2)

原创 死鎖的產生與解除

進程死鎖及解決辦法 一、要點提示 (1) 掌握死鎖的概念和產生死鎖的根本原因。 (2) 理解產生死鎖的必要條件–以下四個條件同時具備:互斥條件、不可搶佔條件、佔有且申請條件、循環等待條件。 (3) 記住解決死鎖的一般方法,掌握死鎖的預

原创 C++指針和引用的區別

指針和引用的區別 1.引用不可以爲空,但指針可以爲空。定義一個引用的時候,必須初始化; 2.引用一旦初始化後不可以再改變指向(但可以改變所指向對象的內容),而指針可以改變指向。 3.引用的大小是所指向的變量的大小,因爲引用只是一個別

原创 最大堆排序

package heapsort; import java.util.ArrayList; import java.util.List; import java.util.Stack; /** * * @author liuzhe

原创 構建數據庫連接池

1.下面我們就使用等待超時模式構造簡單數據庫連接池,模擬從連接池中獲取,使用和釋放連接的過程,而客戶端獲取連接的過程被設定爲等待超時模式,在1000 ms內無法獲取到可用連接將會返回給客戶端一個null,設定連接池大小爲10,然後通過調節

原创 select和epoll實現I/O複用

select實現I/O複用 select可以用來監視文件描述符的變化,可同時監視多個文件描述符,監視項稱爲事件。首先將要要監視的文件描述符集中到fd_set結構體,在fd_set變量中註冊及修改的操作由下列宏完成: 1.FD_ZERO

原创 簡單的UDP通信(Java實現)

一 .源代碼 /*服務器端*/ import java.util.*; import java.net.*; import java.io.*; public class UDPServer { private final sta