自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 对之前代码列表查询的重构,实现排除网络消耗单数据处理速度提升了300倍

找不到当时的图了,当时一个接口的处理需要花费14s的处理时间,排除网络消耗。

2023-03-14 20:43:44 226

原创 记录一次websocket长连接导致的业务生产故障

因为服务器是单机的,所以从开始做开始我建议是采用长轮询来减少长连接对业务服务器的连接数,避免影响网络资源的占用和业务接口的影响,但是因为某些原因还是采用了实时性较高的Websocket。并且支持多端,不同的端采用随机数 + 用户id作为一个新的socket的key,同时一个终端一个tab就是一个新的连接,意味着一个网页可以打开N个socket保持连接。

2023-03-07 16:56:02 938

原创 Spring注解驱动 18

今天学习到的?Spring的注解使用@Configuration表示当前类是配置类,将当前类加入到bean容器。@Bean配置配置类注解使用,配置bean对象加入到 IOC容器中@Bean 注解还支持多种 Bean 的生命周期方法:构造器初始化 --》初始化 —》 销毁可以使用Bean 自带的属性:InitMethod作为构造对象之后的初始化操作,destoryMethod作为销毁操作:@Bean(initMethod = "init", destroyMethod = "desto

2021-06-01 23:10:16 110 1

原创 Tomcat 总结 第一天,什么是Tomcat,Tomcat架构,Tomcat组件化关系等

Tomcat 是一款轻量级的web容器window 可以 下载 win支持的exe 二进制 运行文件 或者 zip压缩文件。区别是:win直接可以 生成 window下的服务,而 zip 需要手动运行 service.bat installTomcat 支持 远程debugtomcat 支持远程debug项目,意味着可以直接debug线上环境的项目,默认端口是8000.catalina jpda start突然好奇Servlet 到底是Tomcat定义的规范还是 Java 定义的规范,发现

2021-05-27 18:14:47 123

原创 Spring 容器的自问自答,个人回顾

Spring 中 IOC 和 AOP 的理解?Spring 是Spring体系中的一个基石,它实现了IOC(控制反转)和AOP(面向切面编程),与IOC配合的还有DI(注入),IOC是一个容器管理的概念,其中包含了容器和对容器中对象的生命周期的管理,当IOC创建时会基于xml或者其它配置信息去获取类的完整类名,通过反射机制对类对象的创建和初始化,并且加入到容器中,Spring的容器本质就是多个Map集合,包括:bean名称对实体类,bean名称对类型,所有bean名称等。AOP是面向切面,利用动态代理为

2021-05-24 10:09:43 75

原创 SpringMVC 执行流程 记录一下

讲道理,源码如果想完全搞懂真的很难,毕竟不是站在作者的角度去思考的,只能去理解一些浅显的思想和一些地方采用了设计模式。从源码中可以看出,为什么明明一行代码就可以搞定的CURD,要引入那么多接口、抽象类,以及各种设计模式??从以前有一些工作经验之后,觉得springmvc的思想就是,有一个前端控制器去结合tomcat的统一监听入口做统一拦截,之后mvc作为任务的分发利用反射处理之后返回数据,但是万万没想到= =竟然这么复杂,有机会一定会更深入去了解,先继续往后学吧SpringMVC 工作流程mvc工作流

2021-05-23 17:31:18 70

原创 把已经确定了泛型的类获取实际泛型类型

/** * 获取 实体类泛型的真实类型,可以为null * @return */ public Class<T> getIdKey() { ParameterizedType genericSuperclass = (ParameterizedType) this.getClass().getGenericSuperclass(); Class<T> actualTypeArgument = (Cl...

2021-03-31 15:30:38 314

原创 并发编程-尝试利用aqs实现lock锁(互斥,不可重入)

package com.wangyifei;import java.util.Date;import java.util.concurrent.*;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;/** * @author WangYifei * @d

2021-03-19 10:34:54 86

原创 记录一篇springcloud以及idea版本冲突以及bug解决,历经四小时

首先说一下问题由来,想了解一下大型的项目于是在假期捯饬了 谷粒商城的项目,一开始一帆风顺,谁知后来大风大浪,因为视频和当下不是同一时期导致版本不一致,出现了依赖版本冲突的问题,以及idea的BUG问题,导致浪费了很多时间纠结。用OpenFeign尝试远程调用出现的BUG,其它正常。IDEA 有一个BUG, 经过百度我了解到Feign无法调用是因为没有引入 一个<dependency> <groupId>org.springframewo.

2021-02-13 22:00:57 787 1

原创 Java并发编程《并发编程实战》-2021-02-06

public class StatelessFactorizer implements Servlet { public void service(ServletRequest req, ServletResponse resp) { BigInteger i = extractFromRequest(req); BigInteger[] factors = factor(i); encodeIntoResponse(resp, factor.

2021-02-06 15:40:38 157

原创 Java并发编程《并发编程实战》-2021-02-05

简单说一下线程的好处:单线程:可以理解为一个人干多件事,我刷碗就不能烧饭必须先刷碗之后再去烧饭,执行起来就很慢。多线程:多个人干配合干不同的事情,提高了效率,一个人烧饭,一个人刷碗,烧好饭碗也好了可以直接出锅了。public class UnsafeSequence { private int value; /** * 返回一个唯一的数值。 */ public int getNext() { return value++;

2021-02-05 22:21:24 191 2

转载 Saas动态切换数据源

https://www.cnblogs.com/tony0813/p/13217342.html

2021-01-05 09:31:00 514

原创 原型模式理解

原型模式: 原型模式可以理解为,以某一个对象为原型,生成一个新的毫无关联,但是初始化数值一致的全新对象。看一下关系图几个需要深拷贝的对象以及内嵌对象后面是通过序列化的形式作为解决方案所以需要实现序列化接口。Monkey.class 作为统一的父类,拥有两个基本类型: 年龄、名称和一个引用类型:生日在浅拷贝中,引动对象会使用相同的内存地址中的对象,而深拷贝是完全隔离开来的,本次只介绍深拷贝。Monkey.class最终也是通过序列化转为字节码所以也需要实现序列化接口GoldenHoop.cl

2020-11-02 11:19:01 174 1

原创 反射、序列化破坏单例模式

在单例模式中,了解到的两种破坏无法保证对象唯一性的写法。比如有人我就不按正常套路去写,我就要装逼,我就要去破坏你的单例。上代码:打印结果可以看到,利用反射的话,对象地址并不相同,这个解决办法如下图:Java中,只要是一个类,无论是否实现构造器都会拥有一个默认的构造器,反射也利用这个特点,会忽略掉是否是private等等…在构造器中新增一个判断,判断当前的这个对象是否为空,如果不为空直接抛出异常去阻止这个对象的重复创建。序列化方式破坏单例:序列化破坏单例只有在 单例对象实现了序列化接口才

2020-10-31 14:06:30 204

原创 饿汉式,懒汉式,双重懒汉式,静态内部类单例模式

单例模式,目前看到,饿汉式,懒汉式,双重验证懒汉式,饿汉式static final object = new object() 当类加载的时候直接初始化,并且不可改变,私有化构造器,对外开放一个获取接口。缺点,当单例对象过多时占用没有必要的内存空间。上代码:懒汉式单例模式:当需要使用的时候进行对象的创建,通过判空加锁方法的形式去解决单例问题,但是如果一个线程竞争到锁进入new实例方法,所有线程全部阻塞等待锁的释放,如果出现以外,导致全部死锁。双重验证懒汉式单例模式:将锁放入方法中,而不是直接锁住

2020-10-29 15:31:58 218 4

原创 简单工厂、工厂方法、抽象工厂的区别

简单工厂先看一下目录结构再说一下大致的逻辑,首先创建一个起始接口,IUser,之后出现一个用户需要去实现这个用户接口,按照以往的创建逻辑,每次一个用户进行一次new,工厂意味着自己不需要去在乎他的创建逻辑,不需要知道怎么创建,只需要给定一个约束值,通过这个约束值我就知道如何去创建自己想要的某个对象,让使用者只在乎结果,不必在乎过程。这里是项目的结构图,userWang 实现了IUser接口,从而别的用户新增进来也是,当这些用户出现一些共性的时候,只需要新增一个类去实现这个IUser接口可以做到统

2020-10-28 09:31:59 136

原创 URLClassloader 加载本地方法

package cn.how2j.diytomcat.servlet;import cn.how2j.diytomcat.Request;import cn.how2j.diytomcat.Response;import cn.how2j.http.HttpServer;import org.apache.tomcat.util.scan.Constants;import javax.servlet.Servlet;import javax.servlet.ServletException;

2020-10-14 09:18:44 651

原创 [基础] 学习笔记(九)

集合/* for (Integer integer : arrayList){ System.out.println(arrayList.remove(0)); break; } AbstractCollection<E> 实现了 Collection<E> 部分方法,还有两个方法,如size()和iterator() 还没...

2020-02-26 20:27:26 135

原创 [基础]学习笔记(八)

/* 子类抛出的异常 只可以是父类抛出异常范围以内。 使用javac 的时候会将源码转换为字节码 之后会生成一个会有一个叫常量表的东西,这个时候常量表中的还是可见的,也是易读的符号引用。 当进入解析阶段的时候,常量池中的符号引用会被替换成直接引用,也就是常量池中符号所代表的内存地址中的对象。 上一章的继承 需要再添加一个需要注意: 子类重写父类的方法其中权限修饰符只能...

2020-02-26 20:26:20 104

原创 [基础] 学习笔记(七)

public class Demo{ public void out(int i){ } public void out(long l){ } public static void main(String[] args){ } } /* 在转为class文件的时候,会转为字节码,根据字节码可以看出方法的描述符。 重载: ...

2020-02-26 20:25:13 97

原创 [基础] 学习笔记(六)

JVM 方法区: 类变量,类信息,方法信息,常量池(符号引用,以常量池表的形式) 常量池: 1、constant_utf8 :保存字符串的unicode编码。 Integer t1 = 127; Integer t2 = 127; t1 == t2; return true; Integer t1 = 128; Integer t2 = 128; t1 == t2; ret...

2020-02-26 20:23:51 86

原创 [基础] 学习笔记(五)

OOA: 对人OOA: 1、属性: 年龄,性别,身份证,姓名 2、行为:走路,吃饭,跑步 OOD: 对OOA出来的对象进行设计: 也就是将各个OOA之间的联系关联起来。OOP: 对OOD设计出来的对象之间的交互关系进行编码: 1、封装: 对信息的外围包一层,这一层提供访问方法,通过方法获取信息。 2、继承: 面向对象的核心,子类继承一些父类的信...

2020-02-26 20:22:40 77

原创 [基础] 学习笔记(四)

public class Hello{ private static String name = "jetty"; private int age = "10"; public Hello(){ this.age = 11; } public static void main(String[] args){ new Hello(); }}首先通过javac 变成 Hell...

2020-02-26 20:22:02 94

原创 [基础] 学习笔记(三)

继续Hello Worldpublic class Hello{ public static void main(String[] agrs){ Hello hello = new Hello(); }}类名,类中的方法,都在方法区中。执行时会进行压栈,当执行到new关键字时对象的创建过程:1、那么main主线程便在自己的线程栈中声明了一个对象。Hello hello;...

2020-02-26 20:20:52 61

原创 [基础] 学习笔记(二)

类加载器干了什么事情?第一步:加载第二步:验证第三步:准备第四步:解析第五步:初始化第六步:使用第七步:卸载加载:将class 文件加载进去验证:1、验证class文件的版本和能不能兼容当前JVM版本。2、验证class文件是否满足JVM规范(class文件的第一个字节码为‘魔术值’),为16进制的代码(3DEF5…)准备:举例:public static int xx...

2020-02-26 20:15:07 72

原创 [基础] 学习笔记(一)

public class Hello{ public static void main(String[] args){ System.out.println("HelloWorld!"); }}// Hello Java文件生成class文件步骤/* javac 是jdk中的工具,生成class文件,到磁盘中。 java 通过jdk 中 java命令,首先在内存中创建一...

2020-02-26 20:13:22 64

转载 Java类加载的过程

JVM和类当我们调用 Java 命令运行某个 Java 程序时,该命令将会启动一条 Java 虚拟机进程,不管该 Java 程序有多么复杂,该程序启动了多少个线程,它们都处于该 Java 虚拟机进程里。同一个 JVM 的所有线程、所有变量都处于同一个进程里,它们都使用该 JVM 进程的内存区。当系统出现以下几种情况时, JVM 进程将被终止:程序运行到最后正常接收;程序运行到使用System...

2020-02-25 15:09:40 69

原创 Spring 相关 AOP XML

Spring 相关 AOP XML定义之前说到了Spring的DI,我在DI代码的基础上直接进行了修改操作,配置了AOP 面向切面开发,先说一下AOP的作用以及好处吧:定义之前说到了Spring的DI,我在DI代码的基础上直接进行了修改操作,配置了AOP 面向切面开发,先说一下AOP的作用以及好处吧:DI能够让相互协作的软件组件保持松散耦合,而面向切面编程(aspect-oriented pr...

2020-02-10 17:08:08 102

原创 Spring 构造器注入 XML

Spring 注入相关(XML 构造器注入)看Spring 依赖注入,发现了XML 注入。怕忘记了= =翻书毕竟不方便 QAQ这边写了一个小Demo。直接先上代码吧= =package com.core.spring.test;import org.springframework.context.ApplicationContext;import org.springframework...

2020-02-10 14:59:52 576

原创 《Java核心技术 卷1》日常笔记,第3章 Java的基本程序设计结构

第3章 Java的基本程序设计机结构3.1 -> 一个简单的Java应用程序3.2 -> 注释3.3 -> 数据类型3.3.1 整型3.3.2 浮点型3.3.3 char 类型3.3.4boolean 类型3.4 变量3.4.1 变量初始化3.4.2 常量3.5 运算符3.5.1 数学函数与常量3.5.2 数值类型之间的转换3.5.3 强制类型转换3.5.4 赋值和运算符3.5....

2020-02-09 15:43:07 199 1

原创 SpringCloud Hystrix可视化监控页面记录

在使用Hystrix 可是加dashboard 的时候,一直无法提示hystrix dashboard Unable to connect to Command Metric Stream首先检查pom文件的jar包有没有导全。 <dependency> <groupId>org.springframework.cloud</groupI...

2019-11-12 17:29:08 423

转载 将map映射成实体

将map映射成实体一、利用插件1.hfxy_merchant 为实体类 bean2.Map<String,Object> paramMap3.导入的包 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObj...

2019-11-08 11:04:16 1276

原创 数组字符串转换成JSONArray

使用FastJson将JSON格式数组字符串转换成JSON数组对象。在项目进行中,数据库中一个字段需要存储多条数据,所以率先考虑到JSON数组格式的数据,但是在处理中出现无法转成JSON,一直处于报错状态,考虑将实体类中的变量转换成Object类型之后,可以正常转换JSON。 private Object steps; List<Flow> flows = service....

2019-11-04 15:26:39 9947

原创 Java SpringBoot整合WebSocket 实现实时聊天,消息指定推送

Java SpringBoot整合WebSocket 实现实时聊天,消息指定推送代码中都是有相关的注释首先需要配置 WebSocket 的配置类,进行相关信息的配置。package com.njtswl.springboot.config;import org.springframework.context.annotation.Bean;import org.springframe...

2019-10-26 12:21:25 1586

转载 Java写入excel数据,读取excel数据

Java写入excel数据,读取excel数据1:添加处理excel的依赖jar包2:向excel中写入内容的类3:读取Excel中的数据,并写入list中4:在D盘下面创建readExcel.xls(有内容) 和writeExcel.xlsx即可1:添加处理excel的依赖jar包 <!-- 引入poi,解析workbook视图 --> <dependenc...

2019-10-24 11:29:07 206

转载 尚硅谷的视频收集

尚硅谷的视频收集转载 原博客

2018-12-26 12:59:18 1133

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除