笔记
文章平均质量分 70
造火箭的小伙
知道的越多,不知道的越多。
展开
-
Netty面试题整理(个人复习)
Netty面试题整理1、什么是Netty?Netty是基于NIO开发的网络通信框架,使用Netty可以极大的简化TCP和UDP套接字服务器等网络编程,并且性能以及安全性等很多方面都更好。平常使用的开源框架,Dubbo、RocketMQ、ES等都使用到了Netty。大部分微服务框架底层涉及到网络通信的部分都是基于Netty来做的。2、BIO、NIO、AIO的区别?BIO:同步阻塞模式,读取写入数据在同一个线程内阻塞等待完成,客户端数量不高的情况下是没有问题的,但如果是高并发场景下有有些无能为力了原创 2022-02-21 15:36:24 · 4531 阅读 · 0 评论 -
装饰器模式
装饰器模式Decorator Pattern在不改变原有类的基础上,给其增加新的功能。就像人们冬天穿棉袄,夏天穿短袖,以应对不同的需求,而人本身并没有改变,只给其增加不同的装饰来满足不同的需求。装饰器类需要继承原有类的同时还要关联原有类,并在有参构造中传入原有类。FilterInputStream就是一个装饰器类。想对InputStream进行扩展增加一些功能,使用装饰器模式对InputStream进行关联publicclass FilterInputStream extends InputSt原创 2022-01-12 18:41:44 · 137 阅读 · 0 评论 -
Elasticsearch学习笔记(二)
高级查询查看所有文档查看匹配的文档、向ES服务器发送GET请求:localhost:9200/shopping/_search{ "query":{ "match":{ "title":"西游记" } }}查看全部的文档{ "query":{ "match_all":{ } }}分页查询{ "query":{ "ma原创 2021-11-11 22:55:35 · 1527 阅读 · 0 评论 -
Elasticsearch学习笔记(一)创建索引,添加文档
ElasticSearch学习笔记Elasticsearch学习笔记(一)Elasticsearch是一个分布式的、RESTful风格的搜索和数据分析引擎。安装Elasticsearch安装Elasticsearch,这里选择在Windows电脑中安装。[Elasticsearch官网Windows下载地址](Past Releases of Elastic Stack Software | Elastic)下载完之后打开解压文件,进入文件夹进入到bin目录打开elasticsearch.ba原创 2021-11-10 19:49:13 · 4616 阅读 · 0 评论 -
秒杀系统学习笔记,限时抢购,抢购接口隐藏
限时抢购的实现使用Redis来记录秒杀商品的时间,对秒杀过期的请求进行拒绝处理!将秒杀商品放入Redis中并设置过期时间使用String类型以kill+商品id的形式作为key以商品id作为value设置一定的过期时间(这里设置为180秒)引入Redis依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-d原创 2021-11-05 20:31:59 · 537 阅读 · 1 评论 -
秒杀系统学习笔记(编程不良人)
秒杀系统学习笔记秒杀系统秒杀场景电商抢购限量商品买演唱会门票或者票抢座12306…保护措施乐观锁和悲观锁令牌桶限流Redis缓存消息队列异步处理订单…防止超卖业务分析创建数据库-- ------------------------------ Table structure for stock-- ----------------------------DROP TABLE IF EXISTS `stock`;CREATE TABLE `stock` (原创 2021-11-03 17:09:59 · 415 阅读 · 4 评论 -
设计模式之代理模式 静态代理 动态代理
设计模式之代理模式静态代理package designpattern.proxy;public class staticsubject implements Subject { private ConcretSubject concretSubject; @Override public void request() { concretSubject = new ConcretSubject(); System.out.println("前置原创 2021-08-30 14:34:35 · 215 阅读 · 0 评论 -
设计模式之单例模式
饿汉式(静态变量)//饿汉式(静态变量)public class singleton01 { public static void main(String[] args) { single single = designpattern.single.getInstance(); single single2 = designpattern.single.getInstance(); System.out.println(single == sing原创 2021-08-24 20:09:36 · 72 阅读 · 1 评论 -
使用PicGo+Gitee+Typora搭建个人图床
使用PicGo+Gitee+Typora搭建个人图床一、首先下载 picgo下载.exe结尾的文件二、打开picgo安装插件三、打开gitee,创建仓库四、打开设置,获取个人token个人token只能在第一次创建时查看,因此需要记住自己的个人token五、打开图床设置,找到giteerepo:为gitee用户名+仓库名六、打开typora进行设置进入偏好设置,进入图像,选择picgo的安装位置,接着点击验证图片上传选项,可以测试是否设置成功。以后当截完图后,ctrl+v粘原创 2021-05-05 11:57:41 · 150 阅读 · 0 评论 -
使用Notepad++查看class文件
使用Notepad++查看class文件notepad++查看class文件需要下载HEX-Editor插件打开插件管理,搜索HEX-Editor,版本号为0.9.5安装之后就可以查看字节码文件了。打开要查看的class文件,按快捷键 Ctrl+Alt+Shift+H 用16进制的方法查看。只看第一行数据,前面8个字节CA FE BA BE 是固定的,之后4个字节00 00 是次版本号,次版本号后面的4个字节00 34 是jdk的版本号,如我这里使用的是jdk1.8。以下为版本对照表:原创 2021-05-05 10:43:51 · 3629 阅读 · 1 评论 -
String、StringBuffer、StringBuilder的区别,你会了吗?
String、StringBuffer、StringBuilderStringString表示的是Java中的字符串,使用""双引号包围的数都是字符串的实例,String类是通过char数组来保存字符串的。字符串是恒定的,一旦创建出来就不能被修改,阅读源码发现,String对象是由final修饰的,并且用于存储字符串的char数组也是final修饰的,因为String这种不可变性,类似字符串的的拼接、字符串的截取等操作都会产生一个新的对象。String s1=“aaa”;String s2=原创 2021-04-16 10:24:18 · 55 阅读 · 1 评论 -
Java中的快速失败-安全失败机制
快速失败-安全失败机制我们接触HashMap、ArrayList这些集合类,这些在java.util包下的集合类都是快速失败的;而java.util.concurrent包下的类都是安全失败的,比如:ConcurrentHashMap。快速失败(fail-fast)是java集合(Collection)中的一种错误检测机制。在使用迭代器对集合对象进行遍历的时候,如果线程A正在对集合进行遍历,而线程B对集合进行修改(添加、删除、修改),或者线程A在遍历的时候对集合进行修改,都会使线程抛出Concurre原创 2021-04-13 20:30:12 · 394 阅读 · 0 评论 -
volatile关键字了解吗?
volatile关键字了解吗?我们知道Java支持多个线程同时访问一个对象或对象的成员变量。每个线程都可以拥有这个变量的成员拷贝(虽然对象以及成员变量分配的内存是共享内存中的,但每个执行的线程还是会拥有一份拷贝。这样可以加速程序的执行,多核处理器就拥有这样的特性)。Java语言规范第三版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致性的更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,如果一个字段被声明成volatil原创 2021-04-05 21:44:38 · 90 阅读 · 2 评论 -
Spring入门
Spring一、什么是Spring? Spring是由Rod Johnson组织开发的一个分层轻量级开源框架,以IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为内核,没学Spring的时候,是这么开发Web项目的: • 1. 实体类—>class User{ } • 2. daoclass–> UserDao{ … 访问db} • 3. service—原创 2021-02-28 10:37:13 · 235 阅读 · 0 评论 -
多线程基础个人博客总结
多线程基础总结一、什么是进程,什么是线程?1.1什么是进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。 在windows系统中可以在任务管理器中查看window当前运行的进程,即.exe文件的运行。1.2什么是线程? 线程是比进程更小的执行单位,一原创 2021-01-26 11:51:47 · 89 阅读 · 0 评论 -
JSP九大内置对象
JSP九大内置对象request对象request对象是HttpServletRequet(接口)的实例。请求信息的内容包括:请求的标题头(Header)信息(浏览器的版本信息语言和编码方式等),请求的方式(http的get和post方法),请求的参数名、参数值、和客户端的主机名称等)。【机制】当用户请求一个JSP页面时,JSP页面所在的 Tomcat服务器将用户的请求封装在内置对象 request中。 request内置对象代表了客户端的请求信息,主要用于接收客户端通过HTTP协议传送给服务器端的原创 2020-06-07 17:24:35 · 219 阅读 · 0 评论 -
Servlet知识点详解Servlet生命周期,Servlet的创建,Servlet获取JSP内置对象
servlet详解一、Servlet概述Servlet时一个在服务器上运行以处理客户端请求并做出响应的Java程序。servlet主要用于处理客户端传来的HTTP请求,并返回一个响应。通常说的Servlet指的是HttpServlet。Servlet是运行在服务器端的,不同于Java程序的运行方式是Java application。Servlet功能如下:1、获得前台提交的数据2、调用模型进行处理3、选择响应的视图进行输出显示二、Servlet生命周期Servlet生命周期的过程如下:原创 2020-06-07 17:05:49 · 351 阅读 · 0 评论