- 博客(21)
- 收藏
- 关注
原创 网络编程(UDP多线程)
发送类package socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;public class Send implements Runnable{
2021-01-28 16:19:25
208
原创 网络编程(UDP单线程)
单线程信息收发UDP和TCP区别udp不需要创建服务器,只要知道对方ip和端口就可以相互发送;udp相当于发快递/短信,sender发送消息没人接收就会丢失,不会报错;tcp相当于打电话,服务器不接受就会报错发送者package socket;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.*;public class UdpSender { public static
2021-01-28 15:31:29
279
原创 网络编程(TCP C/S)
TCPC端(client)3步1.获取S端IP和端口InetAddress对象封装S端IP,创建端口号2.创建scoket连接new Socket(serverIP,port);3.发送消息socket.getOutputStream();S端(server)4步1.创建一个socket连接new ServerSocket(9999);2.等待C端连接serverSocket.accept();3.读取客户端信息socket.getInputStream();4.处理管道流什
2021-01-27 21:10:49
500
2
原创 线程协作(通信)
生产消费模型解决了前后两个线程的通信问题运用了wait()和notifly()方法建立起两个线程之间通信,解决同步问题管程法,通过缓存区把生产者产品存起来,消费者把产品取走解决通信问题管程法package thread;//管程法public class TestPC { public static void main(String[] args) { SynContainer container = new SynContainer();// n
2021-01-27 15:10:53
162
原创 Lock
ReentrantLock用法公平锁非公平锁以后补充package thread;import java.util.concurrent.locks.ReentrantLock;public class LockTest2 { public static void main(String[] args) { Lock lock = new Lock(); new Thread(lock).start(); new Thread(lock).
2021-01-27 09:52:16
100
原创 线程死锁
死锁代码package thread;public class DeadLock { public static void main(String[] args) { Makeup g1 = new Makeup(0, "张三"); Makeup g2 = new Makeup(1, "李四"); g1.start(); g2.start(); }}class Lipstick {}class Minor {
2021-01-27 09:32:27
87
原创 线程5个状态:观察状态
package thread;public class TestState { public static void main(String[] args) { Thread thread = new Thread(()->{ for (int i = 0; i < 5; i++) { try { Thread.sleep(100); } .
2021-01-26 16:06:31
145
原创 线程5个状态:阻塞之join()
join()作用,并行加入线程,别加入线程处于阻塞状态,理解成插队因为中途加入,要抛打断异常package thread;public class TestJoin implements Runnable{ @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println("vip线程执行"+i); } } pub
2021-01-26 15:32:19
366
原创 线程5个状态:返回就绪之yield()
线程退让,返回就绪状态重新竞争package thread;public class TestYield implements Runnable{ public static void main(String[] args) { TestYield testYield = new TestYield(); new Thread(testYield,"A").start(); new Thread(testYield,"B").start();
2021-01-26 15:11:55
115
原创 线程5个状态:阻塞之sleep()
sleep()的作用1.计时器用法1小时的计时器package thread;import java.text.SimpleDateFormat;import java.util.Date;public class TestSleep { public static void main(String[] args) { Date starTime = new Date(System.currentTimeMillis()); int i = 0; .
2021-01-26 15:00:40
389
原创 JDK1.8 Lambda表达式的进化
lambda表达式实现的充要条件是存在一个函数式接口什么是函数式接口只有一个抽象方法的接口。代码简化过程实现类实现接口方法:1、创建接口实现类,重写接口方法2、在main方法创建接口对象(多态向上造型),调用方法;静态内部类1、在类里面创建静态类实现,重写接口方法2、在main方法创建接口对象(多态向上造型),调用方法;局部内部类1、在方法里面创建类实现,重写接口方法2、在main方法创建接口对象(多态向上造型),调用方法;匿名内部类1、直接new接口对象2、在方法体内写方法
2021-01-26 10:20:24
108
原创 SOA dubbo框架应用
1 完成京淘单点登录业务实现1.1 用户注册实现1.1.1 业务需求说明说明: 当用户点击新增按钮时,应该将数据由jt-web服务器,传递给jt-sso项目完成入库操作.同时返回有效信息进行校验.1.1.2 页面分析1).url分析2).参数说明3). 检查页面JS1.1.3 编辑JT-WEB UserController /** * 完成用户注册操作 * 1.url地址:http://www.jt.com/user/doRegister * 2.参数
2020-12-18 20:45:20
218
1
原创 远程过程调用+微服务(RPC+SOA)
1 远程过程调用流程2 HttpClient介绍HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并
2020-12-18 20:06:35
475
原创 JSONP跨域访问实现数据校验
1 创建单点登录系统1.1 创建项目1.2 添加继承/依赖/插件<parent> <artifactId>jt</artifactId> <groupId>com.jt</groupId> <version>1.0-SNAPSHOT</version> </parent> <!--添加jar包文件依赖--> <d
2020-12-14 20:17:44
133
原创 前后端跨域访问搭建(策略JSONP+CORS)
1.京淘项目前后端搭建策略2.京淘前台项目创建2.1 创建项目2.1.1 编辑项目名称2.1.2 添加继承/依赖/插件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
2020-12-14 00:36:13
223
1
原创 Redis属性说明(分片机+哨兵=集群)
1 Redis持久化策略1.1 为什么要持久化Redis中的记录都保存在内存中,如果内存断电或者服务器宕机,则内存数据直接丢失.业务中不允许发生. 所以需要将数据定期进行维护.1.2 RDB模式说明: RDB模式是Redis的默认的持久化策略.无需手动的开启.特点:1.Redis会定期的执行RDB持久化操作. 缺点:可能导致内存数据丢失.2.RDB记录的是内存数据的快照,并且后续的快照会覆盖之前的快照.每次只保留最新数据.效率更高.命令:1).save 命令 要求立即执行持久化操作 sav
2020-12-11 20:00:43
225
原创 AOP实现业务
1. AOP说明1.1 AOP作用利用AOP可以实现对方法(功能)的扩展.实现代码的解耦.1.2 切面组成要素切面 = 切入点表达式 + 通知方法1.2.1 切入点表达式1).bean(bean的ID) 拦截bean的所有的方法 具体的某个类 粗粒度的.2).within(包名.类名) 扫描某个包下的某个类 com.jt.* 粗粒度的.3).execution(返回值类型 包名.类名.方法名(参数列表)) 细粒度的4).@annotation(包名.注解名) 细粒度的1.2.2 通知方法
2020-12-08 20:08:57
303
原创 数据库优化(HA+redis)
1 数据库同步1.1 数据库冷备份手动的将数据库文件,定期进行转储.缺点:1.效率低2.有可能丢失数据原因: 数据库冷备份 是公司恢复数据最后有效的手段.1.2 数据库热备份备份原理:1.当数据库修改时,会将修改的信息,写入二进制日志文件中(二进制文件默认是关闭的).2.当二进制日志文件中有数据时,数据库从库会通过IO线程读取二进制文件信息.3.IO线程将读到的数据写到中继日志中.4.Sql线程将中继日志中的文件 写到从数据库中,最终实现数据库主从同步.1.3 修改数据库主库配
2020-12-07 21:00:01
234
原创 Linux虚拟机部署项目流程
Linux部署项目流程图0.安装JDK0.1上传安装包用MobaXterm_Personal连接虚拟机放在/usr/loca/src目录0.2解压安装包在当前目录解压jdktar -xvf jdk#### 按tab键补齐将压缩包放入sotfware统一管理mkdir sotfware #新建目录mv jdk## sotfwave/ #移动压缩包mv jdk## jdk1.8 #修改jdk名称java -version #检查jdk0.3修改环境变量1).编辑环境变量文
2020-12-04 21:08:44
1142
原创 Exception
BindingExceptionClassNotFoundExceptionUnsatisfiedDependencyExceptionNullPointerExceptionTemplateInputExceptionWeb Error序列化异常Shiro扩展功能rememberMe功能,获取用户对象的pojo没有序列化报错,底层要引用序列化对象...
2020-12-01 21:07:14
74
原创 Springmvc
Springmvc 5大组件1.DispatcherServlet 请求入口2.HandlerMapping 请求派发,负责请求和控制器建立一一对应的关系3.Controller 处理器4.ModelAndView 封装模型信息和视图信息5.ViewResolver 视图处理器,定位页面Springmvc运行流程1.用户发送信息给DispatcherServlet2.DispatcherServlet调用RequestMapper通过注解找出url和han
2020-12-01 20:36:40
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人