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)
计算机基础-1(进制转换)
摘要:信息的编码 (ASCII) 分为七位和八位 七位的 共128 八位的 256 考的重点是七位的。 空格 32 '0' ~ '9' 48~57 'A' ~ 'Z' 65~90 'a' ~ 'z' 97~122 数字(10个)+字母(52个)+标点(33个)=95 (可打印) +33(控制码 如空格)
阅读全文
posted @
2019-07-28 19:00
Mentality
阅读(906)
推荐(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
阅读(555)
推荐(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)
IO流 文件夹的拷贝(字节流)
摘要:文件夹拷贝 copy文件夹(CopyDir.java) 文件夹及文件拷贝封装(FileUtil.java)
阅读全文
posted @
2019-07-22 17:28
Mentality
阅读(168)
推荐(0)
IO流学习
摘要:IO流学习 步骤 示例文件的读写操作 往文件里写入数据 读取数据 文件拷贝操作 文件拷贝封装优化(可以是传字符串,也可以传File对象)
阅读全文
posted @
2019-07-21 19:41
Mentality
阅读(137)
推荐(0)
链表底层实现(LinkList)
摘要:ArrayList LinkList 链表底层实现 Node.java (节点类) Test01.java
阅读全文
posted @
2019-07-21 17:18
Mentality
阅读(434)
推荐(0)
容器(colection)
摘要:一、Collection概念 API接口 常见的List三个子类 Arraylist :底层实现是数组。线程不安全,效率高。所以,查询快。修改、插入、删除慢 LinkList :底层实现是链表。线程不安全,效率高。所以,查询慢。修改、插入、删除快 Vector :线程安全的,效率低 练习代码:
阅读全文
posted @
2019-07-20 19:30
Mentality
阅读(321)
推荐(0)
异常机制(二) throws子句 (自定义异常)
摘要:异常机制 手动抛出 自定义异常 自定义异常示例 使用异常机制建议
阅读全文
posted @
2019-07-19 15:52
Mentality
阅读(222)
推荐(0)
异常机制(Exception)(一)
摘要:异常机制 Exception直接子类 空指针异常(NullPointerException) 练习 try-catch-finally 典型示例 执行顺序 最后执行return,finally里有return,则会将前面的返回值覆盖,因此不建议在finally里建立返回值。
阅读全文
posted @
2019-07-19 11:56
Mentality
阅读(332)
推荐(0)
File类
摘要:File类 练习 编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)。(使用递归来做) 示例 结果展示
阅读全文
posted @
2019-07-19 09:20
Mentality
阅读(119)
推荐(0)
可视化的小日历
摘要:可视化的小日历 直接上代码 打印结果: 详解请看上一篇博客
阅读全文
posted @
2019-07-18 21:13
Mentality
阅读(136)
推荐(0)
完成字符串和时间对象的转化(DateFormat)、(以及日历Calendar用法)
摘要:DateFormat 和 SimpleDateFormat 示例(时间格式的书写) 结果 Calendar (日历)(日期类)(日期加法) 示例 结果 可视化的日历 (挺有意思) 代码示例: 打印结果
阅读全文
posted @
2019-07-18 20:59
Mentality
阅读(965)
推荐(0)
java常用类
摘要:java常用类 (反复强调自己是纯爷们儿,那就是傻冒!!! 哈哈哈) 基本数据类型的包装类(Wrapper Class) 代码示例 (Integer) 自动装箱与拆箱(auto-boxing & unboxing) 代码示例 缓存问题(提高效率) 时间处理相关类 Date时间类 示例
阅读全文
posted @
2019-07-18 15:18
Mentality
阅读(174)
推荐(0)
冒泡排序与二分法查找及for循环增强
摘要:冒泡排序 我的理解: 用到双重循环,数组的长度多少,外循环就循环多少次。10个数组,外循环就循环10次。把双重循环看成行和列,外循环是行,内循环是列。 第一次由外循环进入内循环。10个元素要比较9次。 第二次由外循环进入内循环。要比较8次。 第三次由外循环进入内循环。要比较7次。 以此类推 总会把你
阅读全文
posted @
2019-07-18 11:33
Mentality
阅读(485)
推荐(0)
多维数组及数组的加法运算
摘要:初始化方式 1.静态初始化 int [][] a={{1,2,3},{8,4,6},{4,7,2}} 内存分析 矩阵(Matrix) 二维数组的加法小示例 Matrix.java
阅读全文
posted @
2019-07-17 20:06
Mentality
阅读(639)
推荐(0)
ArrayList (容器)
摘要:ArrayList (容器) (底层实现是数组) ArrayList 底层实现 小示例(有点绕,理解了,你会进步一大截。学会看源码真的很重要) Human.java MyArrayList.java 打印结果:
阅读全文
posted @
2019-07-17 13:30
Mentality
阅读(255)
推荐(0)
String类系列(就是数组练习)
摘要:String(不可变字符序列) 常用方法 equalsIgnoreCase 忽略大小写 System.out.println( "Abcd".equalsIgnoreCse("abcd")); indexOf 索引 System.out.println( "Abcd".indexOf("b"));
阅读全文
posted @
2019-07-16 11:30
Mentality
阅读(182)
推荐(0)
回调的实现(CallBack)
摘要:回调的实现(CallBack)又叫钩子,又叫模板方法模式 小示例 Myframe.java PaintFrame.java
阅读全文
posted @
2019-07-15 19:59
Mentality
阅读(441)
推荐(0)
接口(interface)
摘要:接口(interface) 如何定义接口 简单点,是这个流程 小示例 Flyable.java. Test.java 接口实现多继承 Iterface.java
阅读全文
posted @
2019-07-15 18:44
Mentality
阅读(339)
推荐(0)
final关键字及数组初识
摘要:final关键字的作用: 数组使用 数组的初始化方式总共有三种:静态初始化、动态初始化、默认初始化 foreach循环用于读取数组元素的值,不能修改元素的值。
阅读全文
posted @
2019-07-14 12:10
Mentality
阅读(471)
推荐(0)
多态
摘要:多态指的是同一个方法调用,由于对象不同可能会有不同的行为。 现实生活中,同一个方法,具体实现会完全不同。 多态的要点: 1.多态是方法的多态,不是属性的多态(多态与属性无关) 2.多态的存在要有三个必要条件:继承,方法重写,父类引用指向子类对象。 3.父类引用指向子类对象后,用该父类引用调用子类重写
阅读全文
posted @
2019-07-14 09:56
Mentality
阅读(205)
推荐(0)
封装
摘要:一、编程中封装的优点 1.提高代码的安全性 2.提高代码的重复性 3.“高内聚”:封装细节,便于修改内部代码,提高可维护性。 4.“低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。 二、封装的实现--使用访问控制符 三、封装的使用细节 代码示例
阅读全文
posted @
2019-07-14 09:46
Mentality
阅读(181)
推荐(0)
面向对象三大特征之继承
摘要:一、继承 使用要点: 1.父类也称作超类、基类、派生类等。 2.Java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。(类只有单继承,接口有多继承) 3.Java中类没有多继承,接口有多继承。 4.子类继承父类,可以得到父类的全部属性和方法(除了父类的构
阅读全文
posted @
2019-07-13 19:09
Mentality
阅读(245)
推荐(0)
Java包机制
摘要:一、包机制(package) 包机制是java中管理类的重要手段。开发中,我们会遇到大量同名的类 ,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。包 对于类,相当于文件夹对于文件的作用。
阅读全文
posted @
2019-07-13 16:59
Mentality
阅读(392)
推荐(0)
this的本质及static关键字
摘要:一、this and static 创建一个对象分为如下四步 1.分配对象空间,并将对象成员变量初始化为0或空 2.执行属性值的显式初始化 3.执行构造方法 4.返回对象的地址给相关的变量 this 的本质就是”创建好的对象的地址“,!由于在构造方法调用前,对象已经创建。因此,在构造方法中也可以使用
阅读全文
posted @
2019-07-13 16:32
Mentality
阅读(374)
推荐(0)
Java构造方法、重载及垃圾回收
摘要:要点: 1.通过new关键字调用!! 2.构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类), 不能再构造器里使用 return 返回某个值 3.如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加! 4.构造器的方法名必须和类名一致! 构造
阅读全文
posted @
2019-07-13 15:37
Mentality
阅读(370)
推荐(0)
建立存储库完整版
摘要:建立属于自己的存储库 初始化 克隆仓库到本地 在仓库里上传文件 将所有违背跟踪的文件添加到本地仓库 查看状态 执行提交 提交线上仓库
阅读全文
posted @
2019-07-11 15:49
Mentality
阅读(165)
推荐(0)
一个完整的GitHub存储库
摘要:生成ssh 密钥 其中,your_email 是自己的邮箱。 完成操作之后会在运行命令行的路径下生成两个文件,我的是 y 和 y.pub。 使用 SSH 进入 Github 官网,点击左上角选择 “Settings”。 点击 SSH and GPG keys ,创建 SSH keys。 将生成的秘钥
阅读全文
posted @
2019-07-11 13:27
Mentality
阅读(734)
推荐(0)
GitHub常用命令
摘要:初始化仓库 下载仓库 将所有违背跟踪的文件添加到本地仓库 查看状态 执行提交 提交线上仓库 创建分支后,同步线上仓库 切换分支 合并到主分支 提交线上
阅读全文
posted @
2019-07-11 13:04
Mentality
阅读(132)
推荐(0)
GitHub安装
摘要:下载git 网址:https://git-scm.com/ 注册登录略过 新建存储库
阅读全文
posted @
2019-07-11 13:02
Mentality
阅读(140)
推荐(0)