链表设计与实现 在谈链表之前,我们先谈谈我们平常编程会遇到的很常见的一个问题.如果在编程的时候,某个变量在后续编程中仍需使用,我们可以用一个局部变量来保存该值,除此之外一个更加常用的方法就是使用容器了. 那什么是容器呢?从字面上来说就是用来装某个东西的,比如我们的杯子,就是容器.在程序设计当中我们最常见的容器就是数组了,他可以存我们想保存的东西.在编程当中我们最常见的容器如下: 在Python当中有列表.字典.元组.集合等等. 在Java当中常见的容器有 ArrayList.LinkedList…
概念 LinkedList级双向链表,它的单位是节点,每一个节点都要一个头指针和一个尾指针,称为前驱和后继.第一个节点的头指针指向最后一个节点,最后一个节点的尾指针指向第一个节点,形成环路. 链表增删速度快,查询速度慢. 手写LinkedList 通过今天手写LinkedList,我觉得,我并没有体验到链表比ArrayList快,以后再来深究. 先写一个MyLinkedList类 package _20191210; import java.util.NoSuchElementException…
说明 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 写完了客户端和服务端,那么如何实现客户端和服务端的调用呢? 下面就让我们一起来看一下. 接口定义 计算方法 package com.github.houbb.rpc.common.service; import com.github.houbb.rpc.common.model.CalculateRequest; import com.github…
序列化 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实现客户端调用服务端? 前面几节我们实现了最基础的客户端调用服务端,这一节来学习一下通讯中的对象序列化. 为什么需要序列化 netty 底层都是基于 ByteBuf 进行通讯的. 前面我们通过编码器/解码器专门为计算的入参/出参进行处理,这样方便我们直接使用 pojo. 但是有一个问题,如果想把我们的…
通用调用 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实现客户端调用服务端? java 从零开始手写 RPC (04) -序列化 前面我们的例子是一个固定的出参和入参,固定的方法实现. 本节将实现通用的调用,让框架具有更广泛的实用性. 基本思路 所有的方法调用,基于反射进行相关处理实现. 服务端 核心类 RpcServer 调整如下: serverBo…
<过时不候> 最漫长的莫过于等待 我们不可能永远等一个人 就像请求 永远等待响应 超时处理 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实现客户端调用服务端? java 从零开始手写 RPC (04) 序列化 java 从零开始手写 RPC (05) 基于反射的通用化实现 必要性 前面我们实现了通用的 rpc,但是存在一个问题,同步获取响应的时候没有…
类的内存分配 加载到方法区 对象在堆内存 局部变量在栈内存 判断真实类型,在方法区加载的类 对象.getClass(); 类名.class; 手写双向链表 package day1501_手写双向链表; // 链表类 public class SXLianBiao<T> { private Node first; // 头部节点, 初始 null private Node last; // 尾部节点, 初始 null private int size; // 节点数量,初始值 0 public…
 https://blog.csdn.net/qq_16038125/article/details/80180941 池:同一类对象集合 连接池的作用 1. 资源重用 由于数据库连接得到重用,避免了频繁创建.释放连接引起的大量性能开销.在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量). 2. 更快的系统响应速度 数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用.此时连接的初始化工作均已完成.对于业务请求处理而言,直接…
前言 本文适合有一定java基础的同学,通过自定义持久层框架,可以更加清楚常用的mybatis等开源框架的原理. JDBC操作回顾及问题分析 学习java的同学一定避免不了接触过jdbc,让我们来回顾下初学时期接触的jdbc操作吧 以下代码连接数据库查询用户表信息,用户表字段分别为用户id,用户名username. Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultS…
项目工程总览: 1.Dispatcher类(一个请求与响应就是一个Dispatcher) package com.bjsxt.server; import java.io.IOException; import java.net.Socket; import com.bjsxt.servlet.Servlet; import com.bjsxt.util.IOCloseUtil; /** * 一个请求与响应就是一个Dispatcher * @author Administrator * */ p…