(1)一个人只要自己不放弃自己,整个世界也不会放弃你.
(2)天生我才必有大用
(3)不能忍受学习之苦就一定要忍受生活之苦,这是多么痛苦而深刻的领悟.
(4)做难事必有所得
(5)精神乃真正的刀锋
(6)战胜对手有两次,第一次在内心中.
(7)编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~
Java SE 108 基于TCP协议的网络编程详解
1.单例模式的在多线程环境中的问题
对于单例模式(Singleton)来说,如果在getInstance()方法中生成Singleton实例,则可能会产生同步问题,即可能生成两个不同的对象。
package com.javase.network;
public class Singleton {
private static Singleton instance;
private Singleton(){
}
/**
* 会产生多线程问题
* 使用synchronized来将方法置为同步方法实现。
* @return
*/
public static synchronized Singleton getInstance(){
if(instance == null){
try {
Thread.sleep((long)(Math.random()*1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
instance = new Singleton();
}
return instance;
}
public static void main(String[] args) {
Thread t1 = new MyThread();
Thread t2 = new MyThread();
t1.start();
t2.start();
}
}
class MyThread extends Thread{
@Override
public void run() {
System.out.println(Singleton.getInstance());
}
}
2.URLConnection例子
文本信息用字符流转入。
package com.javase.network;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
public class UrlConnection3 {
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.sina.com.cn");
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
String line = null;
while(null!=(line = br.readLine())){
System.out.println(line);
}
br.close();
}
}
3.InetAddress类
127.0.0.1:表示自己本机的地址,即使自己的计算机没有连网,访问这个地址也是可以的。提供这样一种机制,就是方便在没有联网的电脑上,可以按照正常的网络通信方式