- 博客(24)
- 资源 (12)
- 收藏
- 关注
原创 UDP聊天室(代码)
我们已经了解了UDP的协议,那么现在我们就简单的做一个UDP的聊天室我们定义一个UDPChatDemo类,里面有主方法,还定义一个发送端的线程类SendThread,为了记录名字,所以用继承方式,一个接收端的线程类Receive,主线程启动1个接收端,2个发送端。package com.wangLuo;import java.io.*;import java.net.*;import java.util.Date;/** * @author 林高禄 * @create 2..
2020-05-22 17:38:02 9384 1
原创 UDP协议(UDP,DatagramSocket,DatagramPacket)
UDP协议用户数据报协议(User datagram Protocol) UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发送数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。 由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输UDP通信原理UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个S..
2020-05-22 15:59:19 9180
原创 网络编程(InetAddress,IP,端口,协议,UDP,TCP)
网络编程在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换网络编程三要素IP地址 端口 协议IP地址要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。也就是是设备的标识 IPv4:32bit地址,4个字节,用二进制表示,如11000000 10101000 00000001 01000010,为了方便写成十进制,如192.168.1.66 IPv6:.
2020-05-19 17:19:27 8704
原创 Java实现RSA加解密(代码)
本博客的代码经过自己慢慢调试,全部都成功运行特别注意的是:Base64的包要这个,import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; key的长度是根据密钥的长度决定,private static final int KEY_SIZE = 1024; 在线生成密钥对的网址:http://web.chacuo.net/netrsakeypair,可以自己生成密钥对来验证 php格式密钥转换为Java格式的密钥:pu..
2020-05-19 14:43:32 10894
原创 线程安全(数据同步synchronized,Lock锁)
我们先看一个例子,假设去银行取钱,原始钱为20,每次只取1元,有3个人分别同时去取package com.Thread;/** * @author 林高禄 * @create 2020-05-14-15:43 */public class Test1 implements Runnable { private int a = 20; private boolean b = true; @Override public void run() { .
2020-05-14 17:08:49 8654
原创 线程(Thread)(代码)
在了解线程之前,我们先看看线程与进程的区别进程:是正在运行的程序是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进行如果只有一条执行路径,则称为单线程程序 多线程:一个进程如果有多条执行路径,则称为多线程程序比如:一个微信客户端则是一个进程如果你和一个妹纸视频,则是单线程如果你同时传视频文件给多个妹子,则就是多线程多线程的实现方式有2种:继承Thread类 实.
2020-05-14 11:59:01 10416
原创 Properties介绍与使用
概述:是一个Map体系集合类 Properties可以保存到流中或者从流中加载package com.testIO;import java.util.*;/** * @author 林高禄 * @create 2020-05-13-11:20 */public class PropertiesDemo { public static void main(String[] args) { Properties p = new Properties();.
2020-05-13 11:51:55 8826
原创 对象序列化流与对象反序列化流(ObjectOutputStream,ObjectInputStream)
对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象的类型、对象的数据和对象中存储的属性等信息字节序列写到文件后,相当于文件中持久保存了一个对昂的信息反之。该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化要实现序列化与反序列化,就要使用对象序列化流和对象反序列化流:对象序列化流:ObjectOutputStream 对象反序列化流:ObjectInputStream对象序列化流:ObjectOu.
2020-05-12 22:42:08 9806
原创 字符打印流(PrintWriter)
构造方法:PrintWriter(String fileName):使用指定的文件名创建一个新的PrintWriter,而不需要自动执行刷新 PrintWriter(Writer out,boolean autoFlush):创建一个新的PrintWriter,out是字符输出流,autoFlush是一个布尔值,如果为真,则println,printf,或format方法刷新输出缓冲区package com.testIO;import java.io.*;/** * @author.
2020-05-12 21:01:34 10031
原创 字节打印流(PrintStream)
PrintStream(String fileName):使用指定的文件名创建新的打印流特点只负责输出数据,不负责读取数据 有自己的特有方法package com.testIO;import java.io.*;/** * @author 林高禄 * @create 2020-05-12-16:16 */public class PrintStreamDemo { public static void main(String[] args) throws IO.
2020-05-12 20:37:57 9011
原创 标准输入输出流(InputStream ,PrintStream )
System类中有两个静态的成员变量: public static final InputStreamin:标准输入流。通常该流对应于键盘输入或者由主机环境或用户指定的另一个输入源 public static final PrintStream out:标准输出流。通常该流对应于显示输出或者由主机环境或用户指定的另一个输出目标 我们先看标准输入流package com.testIO;import java.io.IOException;import java.i...
2020-05-12 20:23:04 10730
原创 复制文件的异常处理
调用流对象的时候,抛出了异常,这时就需要需要处理异常,下面是处理异常的方式直接抛出去package com.testIO;import java.io.*;/** * @author 林高禄 * @create 2020-05-12-14:42 */public class IOExceptionDemo { public static void main(String[] args) throws IOException{ mathod(); ..
2020-05-12 14:58:10 8919
原创 IO流(总篇章)
概述:IO:输入/输出(Input/Output) 流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输成为流,流的本质是数据传输 IO流就是用来处理设备间数据传输问题的 常见的应用:文件复制;文件上传;文件下载分类:按照数据的流向:输入流:读数据 输出流:写数据按照数据类型来分:字节流:(字节输入流、字节输出流),字节缓冲流 字符流:(字符输入流,字符输出流),字符缓冲流...
2020-05-12 10:59:32 9177
原创 字符缓冲流(BufferedWriter,BufferedReader)
字符缓冲流BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数字和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。默认值足够大,可用于大多数用途 BufferedReader:从字符输出流读取文本,缓冲字符,以提供字符,数组,和行的高效读取,可以指定缓冲区大小,或者可以使用默认的大小。默认值足够大,可用于大多数用途构造方法字符缓冲输出流:BufferedWriter(Writer out) 字符缓冲输入流:BufferedReader(Reade.
2020-05-12 10:48:59 9198 2
原创 字符流(InputStreamReader,OutputStreanWriter,FileReader,FileWriter)
为什么会有字符流?先看下面这个例子,b.txt文件里只有3个汉字:林高禄package com.testIO;import java.io.FileInputStream;import java.io.IOException;/** * @author 林高禄 * @create 2020-05-09-17:26 */public class StreamDemo { public static void main(String[] args) throws IOEx.
2020-05-09 18:18:16 8714
原创 字节缓冲流(BufferedOutputStream,BufferedInputStream)
字节缓冲流BufferedOutputStream:该类实现缓冲输出流。通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用 BufferedInputStream:创建BufferedInputStream将创建一个内部缓冲区数组。当从流中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,有一次很多字节构造方法:字节缓冲输出流:BufferedOutputStream(OutputStream out) 字节缓冲输入流..
2020-05-09 16:18:59 720
原创 基本字节流(FileOutputStream,FileInputStream)
FileOutputStream创建字节输出流对象(调用系统功能创建文件,创建字节输出流对象,让字节输出流对象指向文件) 调用字节输出流对象的写数据方法 释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)package com.testIO;import java.io.*;/** * @author 林高禄 * @create 2020-05-09-11:10 */public class FileOutputStreamDemo { public st.
2020-05-09 15:38:22 8725
原创 自定义异常(介绍与代码)
Java的异常包含运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生,运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,.
2020-05-09 12:14:20 9195
原创 插入排序(介绍与代码)
基本思想将数组中的所有元素依次和前面的已经排好序的元素相比较(依次),如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过。直接放菜package com.lingaolu;/** * @author 林高禄 * @create 2020-05-08-16:28 */public class InsertSort { public static void main(String[] args) { int[] arr = {5, 2, 8,...
2020-05-09 10:43:28 8632
原创 冒泡排序(介绍与代码)
基本思想从无序序列头部(尾部)开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾(队头),从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。本次的代码是从序列尾开始,想最小的数据一次的放到头部,直接放菜package com.lingaolu;/** * @author 林高禄 * @create 2020-05-08-16:28 */public class BubbleSort { public sta..
2020-05-09 10:31:13 9228
原创 希尔排序(详解与代码)
希尔排序算是对简单插入排序的一种改进,属于一种增量式的排序算法。还不明白希尔排序概念的,先看这个希尔排序介绍直接放代码package com.lingaolu;/** * @author 林高禄 * @create 2020-05-08-16:28 */public class ShellSort { public static void main(String[...
2020-05-08 16:53:01 9897
原创 File,文件(介绍与代码)
File是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的构造方法File():通过将 给定的路径名字符串转换为抽象路径名来创建新的file实例 File(String parent,Strin...
2020-05-08 09:13:42 10692
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人