- 博客(75)
- 资源 (18)
- 收藏
- 关注
原创 jetcache参考文档
JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。JetCache提供了比SpringCache更加强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,还提供了Cache接口用于手工缓存操作。当前有四个实现,RedisCacheTairCache(此部分未在github开源)、(in memory)和一个简易的(in memory),要添加新的实现也是非常简单的。通过统一的API访问Cache系统。
2023-05-25 14:13:20 1422
原创 SQL范式
构造数据库必须遵循一定的规则,在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以此类推。一般说来,数据库只需满足第三范式(3NF)就可以了。
2022-11-02 22:04:40 599
原创 001_printf
printf(“输出控制符”,输出参数)#include <stdio.h>int main(void){ int i =10; printf("%d\n",i); return 0;}常用的输出控制符%d:按十进制整型数据的实际长度输出。%ld:输出长整型数据。%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。%u:输出无符号整型(unsigned)。输出无符号整型时也可以用%d,这时是将无符号转换成有符号数,然后输出
2022-05-06 22:45:20 361
原创 IDEA创建maven各种原型项目汇总
IDEA创建maven各种原型项目汇总1: internal -> appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)2: internal -> appfuse-basic-spring (创建一个基于Hibernate,Spring和Spring MVC的Web应用程序的原型)3: internal -> appfuse-basic-struts (创建一个基于Hibernate,Spring和Struts 2的We
2022-05-01 16:37:17 330
原创 RocketMQ_001_消息发送流程
前提条件1、NameServer已启动。各个NameServer无状态,无通信。2、broker已启动。3、broker启动时,加载$HOME/store/config/topics.json里的信息,定时注册到3个NameServer里。{ "dataVersion":{ "counter":3, "timestamp":1647074381689 }, "topicConfigTable":{ "SCHEDULE_TOPIC_XXXX":{ "order":false,
2022-03-13 13:19:40 2495
原创 swagger的使用
与SpringBoot集成1、maven依赖<dependencies> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> &
2021-08-20 10:40:19 142
原创 字节码
看得懂字节码在一些地方还是挺有用的。下面学习一些基础结构类型的字节码。栈架构JVM是基于栈机构设计的,每个方法都会创建一个栈帧。栈帧中最重要的是局部变量表和栈。各种操作都是围绕局部变量表和栈进行的。for循环public class Test02 { void spin(){ int i; for(i =0;i<100;i++){ ; } }}public class com.sss.jvm.byte
2020-08-02 22:09:09 201
原创 class文件解析示例
class文件的格式等理论概念网上很多,不再赘述,下面是针对一个class文件实例进行”翻译“。源文件package com.sss.jvm.unclassified;public class SimpleUser { public static final int TYPE = 1; private int id; private String name; public int getId(){ return id; } publ
2020-07-26 20:34:29 318
原创 Integer
从一个Integer的疑问响到的private void m3(){ Integer i = 1; m4(i); System.out.println(i);}private void m4(Integer i){ i++;}public static void main(String[] args) { Test1 t1 = new Test1(); t1.m3();}输出是1,为什么m4方法中没有能改变i的值?看似很简单,却包含了很多
2020-07-24 22:13:05 140
原创 Spring Boot_01
常用注解常用注解1、@RestController和@RequestMapping是Spring MVC的注解,不是Spring Boot特有的。2、@RestController = @Controller + @ResponseBody3、@SpringBootApplication = @SpringBootConfiguration + @EnableAutoConfigurati...
2020-03-25 18:08:05 151
原创 异步回调
概述Netty作为一个优秀的异步的事件驱动的框架,实现了一个功能强大的异步回调结构模型。下面对比看下不同技术对于同一个需求处理的结果。以烧水泡茶需求为例,烧水和清洗水壶水杯2个线程是可以同时做的。方式一:Thread.join()public class ThreadJoin{ public static final int SLEEP_TIME = 500; sta...
2020-02-22 21:22:24 332
原创 如何编写protocol buffer文件
翻译自https://developers.google.com/protocol-buffers/docs/proto3Protobuf BufferGoogle的protobuf作为优秀的序列化技术,优越性已经得到诸多认证。本文目的是通过官方文档了解如何编写proto文件,编写好了proto文件之后,就可以通过protoc命令或者一些插件方便的生成Java、Python等语言对应的源文...
2020-02-21 11:00:21 400
原创 ByteBuf用法详解
ByteBuf from NettyByteBuf from Netty比ByteBuffer from java nio更强大,比如可以进行池化,不需要flip切换读写模式。ByteBuf内部结构如图所示:ByteBuf本质上是一个字节数组,分为了4个部分。readerIndex是读指针,每读取一个字节,readerIndex就会+1。一旦readerIndex = writerInd...
2020-02-20 18:54:22 4085
原创 Netty中的ChannelHandler解析
ChannelHandler编写Netty程序,主要业务要写在ChannelHandler处理器中。主要的类和接口如图所示:Netty中数据的流动有入站、出站2个方向。入站:数据从通道到InboundHandler。出站:数据从OutboundHandler到通道。ChannelInboundHandler的主要方法interface ChannelInboundHandler ex...
2020-02-19 19:24:11 915
原创 使用Netty的心跳检测功能
运行效果让Server端设置读空闲时间为5秒,写空间时间为7秒,读写空闲时间为13秒。源码Serverpublic class IdleServer { public static void main(String[] args) throws InterruptedException { EventLoopGroup bossGroup = new NioEve...
2020-02-19 14:01:48 407
原创 使用Netty开发Http服务器
运行效果源码TestServerpublic class TestServer { public static void main(String[] args) throws InterruptedException { EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGro...
2020-02-19 11:30:48 175
原创 使用Netty开发聊天程序实例
运行效果功能:可以运行多个Client,Server端能够监测上线下线功能。Client可以收到其他Client消息。源码ChatServerpublic class ChatServer { public static void main(String[] args) throws InterruptedException { EventLoopGroup...
2020-02-18 21:06:57 168
原创 Java NIO实例:群聊系统
功能概述用NIO实现的一个群聊系统。服务器端可以监测用户上线、离线、并实现消息转发功能。客户端通过Channel可以发送消息给其他用户,同时可以接收来自服务器转发的其他用户的消息。运行效果源码Serverpublic class GroupChatServer { //定义属性 private Selector selector; private Serve...
2020-02-18 17:33:23 1146
原创 Java NIO实例:回显服务
NIO概述NIO是JDK 1.4开始引入的。弥补了旧的IO的不足之处。NIO的3个重要组件是缓冲区(Buffer)、通道(Channel)、选择器(Selector)。Buffer使得可以更加灵活的读/写字节流。Channel将之前的单向的输入/输出流整合在一起,既可以读,也可以写。Selector可以监听多个Channel,一个线程就可以应付成千上万的Client连接,轮询得到就绪的事...
2020-02-18 16:28:48 235
原创 Java UDP广播搜索局域网好友示例
概述网络数据传播有单播、多播、广播几种形式。大部分的多播数据为音频或者视频,因为允许部分丢失,但是传输速度比TPCP快。C类广播地址一般为XXX.XXX.XXX.255。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.1.1.255 的分组(封包)时,它将被分发给该网段...
2020-02-16 19:32:31 624
原创 Java Socket的几种通信示例(UDP)
UDP简介java.net.ServerSocket和java.net.Socket是建立在TCP协议基础上。TCP协议传输可靠,但是速度没有UDP快。UDP的缺点是不可靠,无法保证数据一定能够到达目的地,和目标接收数据包的顺序。UDP适合传输视频、音频。而TCP适合可靠的协议应用,比如FTP、HTTP。UDP在java中的api主要是java.util.DatagramSocket类。每...
2020-02-16 14:45:30 308
原创 Java Socket的几种通信示例(TCP)
功能介绍可以运行多个client,client连接,Server打印连接信息。client控制台发送消息给Server,Server打印收到的消息,并回送收到的消息长度。client发送bye,断开连接。运行效果:Server源码import java.io.BufferedReader;import java.io.IOException;import java.io.In...
2020-02-16 12:01:46 479
原创 FileChannel主要方法的使用
FileChannel介绍FileChannel类是Channel接口的主要实现类,Channel是NIO的重要组件之一。FileChannel类的主要作用是读取、写入、映射、操作文件。writepublic abstract int write(ByteBuffer src) throws IOException;FileChannel内部维护了一个当前文件的position,可以查...
2020-02-16 10:58:01 1656
原创 ByteBuffer之equals和compareTo比较
ByteBuffer介绍ByteBuffer是Java NIO的重要组成部分。如何比较2个ByteBuffer是否相等可以使用equals()、compareTo()两个方法。equals()源码分析public boolean equals(Object ob) { if (this == ob) return true; if (!(ob instanc...
2020-02-15 21:34:12 780
原创 使用not in要注意null
现象要查询dept表里(deptno不在new_dept里)的记录:原因原因就在于new_dept表里有null值。in和not in本质上是or运算,or运算一旦有null参与,会产生不同的效果。select deptno from dept where deptno in (10,50,null);等价于select deptno from dept where (deptn...
2020-02-14 12:15:06 306
原创 模拟MyBatis插件的执行过程
MyBatis插件插件概述MyBatis允许用户自定义拦截器允许拦截:Executor类里的update() query() commit()等方法ParameterHanlder类里的getParameterObject() setParameters()等方法ResultSetHandler类里的handleResultSets()、handleOutputParameters()...
2020-02-12 20:13:50 207
原创 Thread类的基本使用
进程和线程进程是程序向OS申请内存、文件句柄等资源的基本单位。线程是进程中可独立执行的最小单位。一个进程可以包含多个线程。一个进程中的所有线程共享该进程中的资源。Java中线程的使用使用方式:1、继承Thread类。2、implements Runnable3、implements Callable@Slf4jpublic class ThreadWay3 implements...
2020-02-12 14:38:26 430
原创 状态模式
定义状态模式运行对象在内部状态改变时,改变它的行为,对象看起来好像修改了它的类。UML特点状态模式和策略模式是双胞胎,出生时才分开。策略模式的算法彼此可以互相替换。状态模式通过改变自身对象内部的状态帮助对象控制自己的行为。状态模式的本质是根据状态分离和选择行为。状态模式会导致类的数目增加。示例对于一个自动售卖糖果的售卖机存在以下的状态图:如果用面向对象的普通解决方法就是为...
2020-02-12 14:06:35 199
原创 观察者模式
定义观察者模式定义了对象之间的一对多依赖,这样一来,一个对象改变状态时,它的所有依赖着都会收到通知并更新。UML/** * 目标对象,它知道观察它的观察者,并提供注册和删除观察者的接口 */public abstract class Subject { /** * 用来保存注册的观察者对象 */ protected List<Observer> observe...
2020-02-12 10:43:17 141
原创 策略模式
定义定义一系列的算法,把它们一个个封装起来,彼此可以互相替换。UMLpublic interface Strategy { void algorithmInterface();}class ConcreteStrategyA implements Strategy{ @Override public void algorithmInterface() { ...
2020-02-11 20:36:34 154
原创 命令模式
定义将一个请求封装成一个对象,从而可以用不同的请求对客户参数化,对请求排队或记录请求日志,以及支持可撤销的操作。UMLpublic interface Command { /** * 执行命令具体的操作 */ void execute();}/** * 具体的命令实现对象 */class ConcreteCommand implements C...
2020-02-11 20:02:43 149
原创 模板方法模式
定义定义一个操作中的算法的骨架,将一些步骤延迟到子类。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。UMLpublic abstract class AbstractClass { //基本方法 protected abstract void doSomething(); //基本方法 protected abstract void...
2020-02-11 16:25:57 112
原创 代理模式
定义为其他对象提供一个代理,以控制对这个对象的访问。UMLpublic interface Subject { public void request();}class RealSubject implements Subject{ @Override public void request() { System.out.println("具体的...
2020-02-11 14:48:12 153
原创 享元模式
定义运用共享技术有效的支持大量细粒度的对象。UML/** * Flyweight接口使共享称为可能,但不强制共享,所有有2种实现类。 * */public interface Flyweight { /** * 示例操作:传入外部状态 * @param extrinsicState */ public void operation(String extrinsic...
2020-02-11 14:17:32 111
原创 组合模式
定义将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象、组合对象的操作使用保持一致。UMLabstract class Component { abstract void someOperation(); void addChild(Component child){ throw new UnsupportedOperationEx...
2020-02-10 17:18:04 100
原创 装饰者模式
定义动态的给一个对象添加一些额外的职责。比用继承生成子类更灵活。不改变原有对象的基础上,将功能附加到对象上。比继承更有弹性。适用场景动态的增加/撤销一个类的功能。优缺点是继承的有力补充,比继承灵活,不改变原有对象,同时扩展功能。通过适用不同装饰类以及这些装饰类的排列组合,可以实现不同的效果。但是会出现更多的代码、类。多层装饰时,会更复杂。UMLpublic abstract ...
2020-02-10 15:35:11 119
原创 桥接模式
业务场景(待改造)/** * 消息统一接口 */public interface Message { /** * 发送消息 * @param msg */ void send(String msg);}/** * 站内短消息的方式发送消息 */class CommonMessageSMS implements Message{ ...
2020-02-09 21:20:04 220
原创 工厂方法模式
业务场景和简单工厂有点相似。https://blog.csdn.net/smith789/article/details/104236252/** * 课程抽象类 */public abstract class Course {}@Data@AllArgsConstructor/** * 普通课 */class NormalCourse extends Course...
2020-02-09 18:00:31 130
原创 外观模式
业务场景教师若想开设一门新课,需要经过以下步骤:1、填写申请表系里审查。2、院长审核。3、教务处审批。public class Teacher { public static void main(String[] args) { Course course = new Course("商务英语"); new Department().audit(c...
2020-02-09 17:09:56 138
原创 简单工厂模式
业务场景现有代码结构:@Data@AllArgsConstructor(access = AccessLevel.PUBLIC)@NoArgsConstructor/** * 普通课程 */public class Course { /** * 课程名称 */ private String courseName;}@Data@AllAr...
2020-02-09 15:51:54 120
ext-4.0.0.jsb2
2011-10-25
Jquery EasyUI学习资料集合
2011-10-21
JSP项目开发全程实录(完整源代码)
2011-08-18
基于C/S架构考试系统(Java)
2011-04-18
Microsoft SQL Server JDBC Driver 3.0
2011-03-01
Microsoft SQL Server JDBC Driver 2.0
2011-03-01
C++程序设计_谭浩强.part3.rar
2010-03-30
C++程序设计_谭浩强.part2.rar
2010-03-30
C++程序设计_谭浩强.part1.rar
2010-03-30
实用Visual C++ 6.0教程及配套源码
2010-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人