Java內(nèi)存模型的8個操作步驟:
lock,unlock,read,load,use,assign(賦值),store(存儲),write
重寫equals
@Override
public int hashCode() {
return new HashCodeBuilder().append(name).append(code).toHashCode();
}
@Override
public boolean equals(final Object other) {
if (!(other instanceof WlCompany))
return false;
WlCompany castOther = (WlCompany) other;
return new EqualsBuilder().append(name, castOther.getName()).append(code, castOther.getCode()).isEquals();
}
輸入流:FileInputStream 輸出流:FileOutputStream
字節(jié)流:InputStream,OutputStream
字符流:InputStreamReader_BufferedReader,BufferedWriter
FileIntputStream fin = new FileInputStream("d:/a.txt");
FileOutputStream out = new FileOutputStream("d:/b.txt");
byte[] buff = new byte[256];
int len = 0;
while((len = fin.read(buff)) > 0 ){
out.write(buff,0,len);
}
fin.close();
out.close();
運算符優(yōu)先級
反射
package
Reflect;
class
Demo{
//other codes...
}
class hello{
public static void main(String[] args) {
Class<?> demo1=null;
Class<?> demo2=null;
Class<?> demo3=null;
try
{
//一般盡量采用這種形式
demo1=Class.forName("Reflect.Demo");
}
catch
(Exception e){
e.printStackTrace();
}
demo2=new Demo().getClass();
demo3=Demo.class;
System.out.println("類名稱 "+demo1.getName());
System.out.println("類名稱 "+demo2.getName());
System.out.println("類名稱 "+demo3.getName());
}
}
【運行結(jié)果】:
類名稱 Reflect.Demo
類名稱 Reflect.Demo
類名稱 Reflect.Demo
用TCP通信模型創(chuàng)建一個WEB服務(wù)器
package test;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class WebServer {
public static void main(String[] args) throws IOException{
//用端口號創(chuàng)建一個ServerSocket對象,監(jiān)聽Web的端口80
ServerSocket ss = new ServerSocket(80);
//開始循環(huán)監(jiān)聽來自客戶端的請求
Socket s = null;
while ((s = ss.accept()) != null) {
new HTTPThread(s).start();
}
ss.close();
}
}
class HTTPThread extends Thread{
private Socket socket;
public HTTPThread(Socket socket){
super();
this.socket = socket;
}
public void run(){
try {
OutputStream os = socket.getOutputStream();//獲得輸出流
PrintWriter pw = new PrintWriter(os);
//往輸出流寫出當(dāng)前時間
pw.println("<html>");
pw.println("<body>");
pw.println("hello world!");
pw.println("</body>");
pw.println("</html>");
pw.flush();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
使用java訪問Web站點
URL url = new URL("http://www.lxweimin.com/users/cb1ba0e78b56/latest_articles");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
//獲取響應(yīng)信息的頭部信息
Map<String, List<String>> header = conn.getHeaderFields();
//獲取響應(yīng)內(nèi)容
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
br.readLine();
//...
conn.disconnect();