- 博客(17)
- 资源 (3)
- 收藏
- 关注
原创 根据ServerSocket实现Http的RPC
服务端:绑定端口,启动服务监听,请求是啥,响应一些啥?/** * @author x y * @description TODO * @date 2022-01-18 10:11 */public class AcceptServer { ServerSocket serverSocket; IHandlerFunction iHandlerFunction; public AcceptServer(IHandlerFunction iHandlerFunction
2022-03-16 14:36:23
415
原创 模拟NettyGroupEvent
以下图则是Netty模型,一个BoosGroup,一个WorkerGroup。而BoosGroup负责轮询Accept事件,并处理建立链接的Channel将其注册到WorkerGroup的selector中,并且同步处理TaskQueue队列任务。服务端代码:启动服务端/** * @author x y * @description TODO * @date 2022-03-08 9:23 */public class MainThread { public stat...
2022-03-16 14:29:50
3731
原创 最最最最入门的netty
package com.yw.netty;import io.netty.buffer.ByteBuf;import io.netty.buffer.PooledByteBufAllocator;import io.netty.buffer.UnpooledByteBufAllocator;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.
2022-03-16 14:08:37
623
原创 高效可伸缩的结果缓存
package com.yw.cache;import javax.annotation.concurrent.GuardedBy;import java.math.BigInteger;import java.util.HashMap;import java.util.Map;import java.util.concurrent.*;import java.util.concurrent.locks.ReentrantLock;/** * @author x y * @desc.
2022-03-16 14:06:16
441
原创 基于netty的RPC(模拟实现远程服务调用)
package rpc;import io.netty.channel.socket.nio.NioSocketChannel;import org.junit.Test;import java.io.ByteArrayOutputStream;import java.io.ObjectOutputStream;import java.io.Serializable;import java.lang.reflect.InvocationHandler;import java.lang.r.
2022-03-15 23:00:39
759
原创 HTTP utils
package com.yw.common.util;import com.alibaba.fastjson.JSONObject;import com.google.common.collect.Maps;import org.apache.http.HttpEntity;import org.apache.http.HttpEntityEnclosingRequest;import org.apache.http.HttpRequest;import org.apache.http.Na.
2022-01-17 11:11:19
1653
原创 ThreadPoolExecutor源码解释
直接上图 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); // ctl中有两个值第一个为线程个数,第二个为线程池状态 private static final int COUNT_BITS = Integer.SIZE - 3; //线程个数29位也就是2^29次方 private static final int CAPACITY = (1 <<
2022-01-14 17:03:30
197
原创 今日内容之SpringDataJpa
首先声明,在两个数据库中(Oracle叫做模式)存在相同的数据库表名,内容不管首先我们来看看遇到的第一个问题: spring.datasource.url作用是什么,那么指定数据库名称(oracle叫模式名)与不指定有什么区别? 首先回答第一个问题:url其作用就是用来进行数据库链接。 OK 现在回答第二个问题:第二个问题需要进行区分数据库类别,首...
2021-10-21 16:37:10
199
原创 每日一篇JVM 之 生存还是死亡
1.生存还是死亡通过可达性分析算法标记的不可达对象,也不是“非死不可”的。他是一个被标记的“缓刑”阶段,如果真正宣告一个对象死亡最少需要经历两次标记。当对象在进行可达性分析发现并没有与GC Roots相链接的引用链,那么他会被标记一次,随后进行一次筛选,筛选条件就是当前对象有没有重写finalize方法。如果该对象没有重写finalize方法或者虚拟机已经调用过这个方法则该对象会被视为“没有必要执行”。 当这个对象重写了finalize方法,则该对象会被放置在一个名为F...
2021-10-14 16:54:08
150
原创 每日一篇JVM之垃圾回收集
1.对象已死在堆中存放着所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定哪些对象还活着,哪些以及“死去”。2.计数算法何为引用算法?在对象中添加一个引用计数器,当有一个地方引用当前对象,计数器值加1,当引用失效的时候计数器值减1;当计数器值为零的时候对象则就是不会被使用。3.可达性分析算法当前主流的程序语言的内存管理子系统都是通过可达性分析算法来判断对象是否存活。这个算法思路就是通过一系列称为“GC Roots”的根对象作为起始节点,根据这个起始节点的引用关系向
2021-10-13 16:12:46
91
原创 每日一片JVM之new关键字操作
1.对象的创建java虚拟机遇到new指令的时候,首先会检查这个指令的参数是否能在常量池中定位到一个类符号的引用。并且检查当前了是否被加载,解析,初始化。如果没有,必须首先执行类加载过程。类加载检查通过之后,虚拟机会给新生的对象进行分配内存。而对象所需内存大小是在类加载的时候可以确定的。假设java堆中内存是绝对规整的,所有被使用的内存都被放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器。所分配的内存就仅仅吧指针向空闲的那一部分挪动一段大小相等的距离,这种分配方式称为“指针碰撞
2021-10-12 17:45:53
338
原创 聊聊JVM自动内存管理 之运行时数据区域
1.JVM运行时数据区域以下区域都拥有各自的用途,创建以及销毁的时间,有的区域会随着虚拟机启动而一直存在,有的是依赖用户线程的启动和结束而建立和销毁。2. 程序计数器程序计数器根据字面意思觉得类似于java中的++运算,其实不是。jvm虚拟机中的程序计数器是所执行字节码的行号指示器。字节码解释器就是根据这个计数器的值来取下一条需要执行的字节码质量,来控制程序的流程,分之,循环,跳转,异常处理等基础功能。切记程序计数器是线程私有的,每一条线程都有独立的程序计数器他们互不...
2021-10-11 17:50:47
123
原创 酒店客房管理系统JAVA-SSM-MYSQL
登录界面业务操作界面客户操作页面管理员操作页面系统开发环境本系统的开发环境主要是IntelliJ IDEA、JDK1.8、Tomcat7.0.106以及MySQL。其中IntelliJ IDEA是开发工具,所有代码的编写,测试都在此完成。JDK1.8是系统的开发以及运行环境。Tomcat7.0.106则是服务器,它主要用于系统的部署。CSS、JavaScript、Ajax用于前端页面的制作。Spring、SpringMVC、Mybatic作为三层架构与视图层持久层进行数据
2021-07-11 12:48:10
2194
5
原创 SpringBoot与Jna
JnaJna(Java Native Access)框架是一个开源的java框架,其公司SUN主导开发,是一个建立在Jni基础上的开源框架。JNA开源地址:https://jna.dev.java.net/
2021-06-21 14:18:59
2363
基于JSP的酒店客房管理系统的设计与实现_.zip
2021-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人