Java正则匹配原理
摘要:Java正则匹配原理 WebSpiderCore.java 打印结果 GitHub地址:https://github.com/mentality-sun/Java/blob/master/WebSpiderCore.java
阅读全文
posted @
2019-08-13 16:20
Mentality
阅读(622)
推荐(0)
Java SAX解析
摘要:sax解析 一行一行的解析,针对数据量较大的dom解析 将整个数据加载,针对数据较小的 sax步骤1、获得解析工厂 SAXParserFactory2、工厂获取解析器 SAXParser3、加载文档Document注册处理器 1、首先写一个xml person.xml 2、Persond类(准备)
阅读全文
posted @
2019-08-10 13:06
Mentality
阅读(2192)
推荐(0)
手写服务器(二)
摘要:封装 1、Response 2、Request 3、多线程处理 一、封装Response CloseUtil.java (关闭流的方法) Response.java (封装Response) Server4.java (调用) 二、封装Request (解决中文乱码问题) Request.java
阅读全文
posted @
2019-08-08 11:18
Mentality
阅读(265)
推荐(0)
Java手写服务器(一)
摘要:客户端在浏览器发送请求,服务器接收请求,并作出响应。 a.html Server3.java 服务器打印结束过来的请求 响应结果
阅读全文
posted @
2019-07-31 11:56
Mentality
阅读(654)
推荐(0)
Java Socket 通信之多线程
摘要:一、简单的客户端与服务器交互(客户端向服务器发送数据,服务器将数据再返回给客户端) 服务端 * 1、创建服务器 指定端口 ServerSocket(int port) * 2、接收客户端连接 阻塞时 * 3、发送数据 * 接收多个客户端 Mulityserver.java 客户端 Client.ja
阅读全文
posted @
2019-07-30 20:47
Mentality
阅读(1366)
推荐(0)
udp编程
摘要:服务端 * 1、创建服务端+端口 * 2、准备接收容器 * 3、封装成包 * 4、接收数据 * 5、分析数据 * 6、释放 * 字节数组 +Data 输入流 (字节数组转成double类型) 客户端 * 1、创建客户端+端口 * 2、准备数据(字节数组) * 3、打包(发送的地点及端口) * 4、发
阅读全文
posted @
2019-07-29 19:54
Mentality
阅读(239)
推荐(0)
网络编程
摘要:一、概念: 二、重要方法 1、InetAddress :封装IP及DNS 方法: getHostAddress() getHostName() InetAddress.getLocalHost(); InetAddress.getByName("www.baidu.com"); 2、InetSock
阅读全文
posted @
2019-07-28 20:29
Mentality
阅读(192)
推荐(0)
线程总结
摘要:生产者消费者模式 当同一份资源被不同的线程调用时,会出现死锁现象,无法释放资源 。 通过生产者消费者模式 可以解决 主要用到的方法 wait 等待会释放锁 sleep 不会释放锁 notify notifyAll 唤醒线程 线程总结
阅读全文
posted @
2019-07-27 11:17
Mentality
阅读(121)
推荐(0)
单例设计模式(懒汉式)
摘要:单例设计模式确保一个类只有一个对象懒汉式 double checking 1、构造器私有化,避免外部直接创建对象 2、声明一个私有的静态变量 3、创建一个对外的公共的静态方法 访问该变量,如果变量没有对象,创建该对象 SynDemo01.java
阅读全文
posted @
2019-07-27 10:28
Mentality
阅读(589)
推荐(0)
线程同步(synchronize)
摘要:线程同步(synchronize) 同步:并发 多个线程访问同一份资源 确保资源安全 -->线程安全 synchronize >同步 一、同步块 synchronized(引用类型变量| this | 类.class){ } 二、同步方法(StringBuffer 里面用的是同步方法)
阅读全文
posted @
2019-07-26 20:11
Mentality
阅读(366)
推荐(0)
线程常用方法及优先级
摘要:常用方法 * Thread.currentThread() * setName() :设置名称 * getName() :获取名称 * isAlive() :判断状态 线程类 (下面两组代码基于它) Demo01.java 基本方法 InfoDemo01.java 效果: 优先级测试代码 InfoD
阅读全文
posted @
2019-07-26 19:47
Mentality
阅读(154)
推荐(0)
外部终止线程及阻塞
摘要:一、外部终止线程 1)线程类中 定义 线程体使用的标识 2)线程体使用该标志 3)对外提供方法,改变标识 4)外部干涉,根据条件终止线程 二、阻塞线程 1、join :合并线程 2、yield:暂停自己的线程 static 3、sleep join实现 (条件成立时,会执行当前线程,从而使主线程停滞
阅读全文
posted @
2019-07-26 18:13
Mentality
阅读(547)
推荐(0)
多线程实现的三种方式
摘要:一、继承实现多线程 小兔子示例 Rabit.java RabitApp.java 效果 二、静态代理实现多线程 与继承方式比较: 1.静态代理(StaticProxy) StaticProxy.java 效果: 三、Runnable接口 实现多线程 Programmer.java Programme
阅读全文
posted @
2019-07-24 18:48
Mentality
阅读(454)
推荐(0)
文件分割与合并
摘要:文件分割与合并 关闭流的代码(会在下面被调用) FileUtil.java 分割文件代码 SplitFile.java 效果 将a.txt文件分割为: 文件的分割与合并完整代码 效果:
阅读全文
posted @
2019-07-23 19:43
Mentality
阅读(556)
推荐(0)
工具类关闭流及打印流
摘要:工具类关闭流(close) 打印流(打印到文本,而不是控制台) 封装输入流(类似于Scanner)
阅读全文
posted @
2019-07-23 17:56
Mentality
阅读(724)
推荐(0)
处理流
摘要:一、处理流 二、转换流 : 字节流转为字符流 处理乱码(编码集、解码集) 字符编码为字节,字节解码为字符 1.编码与解码概念 编码:字符 编码字符集 二进制 解码:二进制 解码字符集 字符 2.乱码问题 1)编码与解码的字符集不统一 2)字节缺少,长度丢失 示例代码 转换流:字节转为字符 * 1、输
阅读全文
posted @
2019-07-23 10:47
Mentality
阅读(186)
推荐(0)
字符流相关操作(读、写、copy)
摘要:字符流只能处理字符 读取操作 写入操作 copy操作
阅读全文
posted @
2019-07-22 18:51
Mentality
阅读(150)
推荐(0)