8.2学习笔记
来源:互联网 发布:php tp框架分页 编辑:程序博客网 时间:2024/06/05 03:21
知识点
1.TCP/IP
服务器server
public class MyServer { public static void main(String[] args) { try { ServerSocket server = new ServerSocket(8080); System.out.println("服务器启动"); Socket client = server.accept(); InputStream is = client.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); OutputStream os = client.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); String rWord; Scanner scanner = new Scanner(System.in); String tWord; while(true){ rWord = br.readLine(); System.out.println(rWord); tWord = scanner.next(); bw.write("褚文斌服务器:"+tWord+"\n"); bw.flush(); } } catch (IOException e) { System.err.println("客户端已经关闭"); } }}
客户端client
public class MyClient { public static void main(String[] args) { Socket client = null; try { client = new Socket("192.168.0.30", 8080); System.out.println("客户端启动"); InputStream is = client.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); OutputStream os = client.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); Scanner scanner = new Scanner(System.in); String tWord; String rWold; while(true){ tWord=scanner.next(); bw.write("褚文斌客户端:"+tWord+"\n"); bw.flush(); rWold = br.readLine(); System.out.println(rWold); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { System.out.println("服务器没有运行"); } finally { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } }}
UDP
接收方
public class UDPReceiver { public static void main(String[] args) { try { DatagramSocket receiver = new DatagramSocket(8080, InetAddress.getLocalHost()); byte[] array = new byte[1024]; DatagramPacket packet = new DatagramPacket(array, 1024); receiver.receive(packet); System.out.println(new String(packet.getData())); receiver.close(); } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
发送方
public class UDPSend { public static void main(String[] args) { try { DatagramSocket send = new DatagramSocket(); String s = "你能接收到我吗"; byte[] array = s.getBytes(); DatagramPacket packet = new DatagramPacket(array,array.length, InetAddress.getLocalHost(), 8080); System.out.println("正在发送数据..."); send.send(packet); System.out.println("数据发送完毕"); send.close(); } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
集合
- 集合
- collection
- List
- ArrayList
- LinkedList(链表结构)
- Set
- HashSet
- TreeSet
- List
- map
- HashMap
- TreeMap
- collection
ArrayList
/*相对于LinkedList *ArrayList遍历容易,添加、删除麻烦 * */ List<String> list = new ArrayList<>(); list.add("李涛");//原第0个元素 list.add("李海萌");//原第1个元素 list.add("李大嘴");//原第2个元素 list.add(1, "陈冠希");//添加,后面依次后移一位。添加后是第1个元素 for(String m:list){ System.out.println(m); }
Set
/* * Set 中不能放置重复的元素 * HashSet无序 TreeSet有序 */ Set<Integer> set = new HashSet<>(); Random random = new Random(); int count = 0; while(count<10){ int num = random.nextInt(90)+10; set.add(num); System.out.println("放完第"+count+"个数:"+num); count++; } System.out.println("已经放置完毕"); Iterator<Integer> it = set.iterator();//迭代器方法 while(it.hasNext()){ int i = it.next(); System.out.println(i); }
Map
Map<String, Student> map = new HashMap<>(); //第一个参数是键值对,第二个参数是被添加的内容 map.put("张三", new Student("张三")); map.put("李四", new Student("李四")); map.put(null, new Student("张王五")); Set<String> keys = map.keySet(); //第一种方法 System.out.println("方法一:"); Iterator<String> it = keys.iterator(); while(it.hasNext()){ String key = it.next(); System.out.println(key+"||"+map.get(key).getName()); } //第二种方法 System.out.println("方法二:"); for(String key:map.keySet()){ System.out.println(key+"||"+map.get(key).getName()); }
Collections的排序方法sort()
List<Student> list = new ArrayList<>();//尖括号里面的叫泛型 list.add(new Student("战三",19)); list.add(new Student("李四", 20)); list.add(new Student("王五", 23)); list.add(new Student("赵六", 21)); list.add(new Student("马奇", 18)); list.add(new Student("小明", 22)); Collections.sort(list, new StuComparator());//升序 Collections.reverse(list);//排列倒置 for(Student stu:list){ System.out.println(stu.getName()+"/"+stu.getAge()); }
泛类型
泛型方法的写法
public class Student<C,P extends Pet> {//可以给尖括号中的泛类型限定范围 private String name; private int age; private C clothes;//泛类型 private P p; public C getClothes() { return clothes; } public void setClothes(C clothes) { this.clothes = clothes; } public P getP() { return p; } public void setP(P p) { this.p = p; } public Student(String name,int age,P p) { this.name = name; this.age = age; this.p = p; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
随便写几个类充当泛型
public class Dog extends Pet{ public void bite(){ System.out.println("咬死你!"); }}
public class Cat extends Pet{ public void miao(){ System.out.println("喵喵喵"); }}
public class NanZhuang {}
public class NvZhuang {}
实现泛型方法的试例
public static void main(String[] args) { //尖括号内的叫做泛型 Student<NanZhuang,Dog> xiaoming = new Student<>("小明", 19,new Dog());//此处只能填写Dog类,否则会出错 xiaoming.getP().bite();//用的是狗的方法 xiaoming.getClothes();//返回类型的女装 Student<NvZhuang, Cat> xiaohong = new Student<>("小红", 17,new Cat()); Cat cat = xiaohong.getP(); cat.miao();}
0 0
- 8.2学习笔记
- 学习笔记?
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- UVA156-Ananagrams
- 整合Struts2与Spring以及spring的自动装配
- source insight 头文件注释与函数注释
- java 伪共享(false sharing)解决思路
- IOS开发 JSON 数据转化成 Arrays 或者 Dictionaries
- 8.2学习笔记
- hdu5316
- 关于spring结合orm框架时dataSource无法创建的一个错误
- 第三次多校未搞定
- hdu5340 Three Palindromes(manacher算法)
- iOS面试题
- 矩阵的内涵
- CSS基础-22选择器-选择器详解(1)
- java中接口和抽象类