自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IDEA-Maven的Dependencies中出现红色波浪线

在IDEA环境中,在Maven Project中 Dependencies 出现红色波浪线,但是查询本地maven仓库中,资源文件是存在的.解决方法:移除相关依赖,再重新添加即可在Maven Project中 Dependencies 出现红色波浪线pom.xml删除对应Dependencies语句,刷新maven,后clean,再把语句放回pom.xml,刷新maven后不暴红...

2022-02-17 09:25:29 392

原创 Spring-----如何将一个对象存到容器中(结合mybatis)

如何将一个对象存到Spring容器中?有几种办法?mybatis用的是什么方法我们平时用的@Component注解的作用是将一个类存到Spring容器中,而不是将对象存到Spring容器中。将类放到Spring容器中,由Spring容器帮它变成一个对象(bean)进行存放。下面我用一幅图可能会好理解一些。这一点在我们自己仿写一个Mybatis的时候可以通过JDK动态代理,将一个接口实例化为一个类,再把类放到Spring容器中去。...

2022-01-20 17:25:36 892

原创 项目总结与细节

首先项目是SOA架构,面向服务的架构模式.本项目使用的是http协议。两种方式:1种是:V层和S层走RPC调用。第二种是http协议来进行进行V层和S层的访问。本项目使用V层和S层走RPC调用dubbo默认使用的是TCP协议,底层是netty。内部支持四种负载平衡策略。(springcloud使用feign,使用http协议传输,是使用短连接传输,每次连接都要建立连接,结束时还要断开连接,不适合高并发)服务的提供者和服务的调用者都是通过dubbo的注册中心来调用的。调用者:用户中心,门户,秒杀

2021-10-21 09:16:26 257

原创 面试---Redis

redis的面试问题可以看这篇博客,讲的非常好重点可以关注redis的主从复制,redis数据一致性问题,redis有哪几种数据类型以及使用场景,什么是Redis持久化https://www.cnblogs.com/javazhiyin/p/13839357.html

2021-10-11 09:05:55 86

原创 MySQL原理分析2

MySQL事务深入分析MySQL锁机制深入分析MySQL事务与日志原理脏读A读取了B没有提交的对age的修改。一次事务中两次读到数据不同。B插入数据,A第一次计算1,第二次计算2,造成幻读

2021-10-05 17:02:19 51

原创 Mysql原理及应用

叶子节点放数据,非叶子节点放索引。辅助索引(除了主键的索引):存放主键id先辅助索引查主键id,再主索引查数据联合索引:多个字段进行组合。数据库执行计划分析与SQL优化联合查询索引效率从左到右递减使用全覆盖索引最左原则...

2021-09-27 20:59:09 70

原创 SpringAOP原理

aop的实现1.xml实现2.混合模式xml加注解3.注解模式切面分析:前置通知后置通知和返回通知,异常通知开启代理类AopContext.currentProxy()是获取saveUser的代理类原理注册后置处理器1.获取名称2,根据名称,有四种beanpostprocessor,循环名称,排序并且注册order处理器实现进行启动寻找aspectj切面获取切面。获取注解获取pointcut...

2021-09-25 08:19:52 51

原创 笔试题的输入

单行输入数组不限长度以及限制输入个数import java.util.Scanner;public class 输入一个数组 {public static void main(String[] args) { // 第一种方法:(不限制输入数组的长度) System.out.println("请输入几个数并用逗号隔开:"); Scanner sc = new Scanner(System.in); String str = sc.next().toString

2021-09-19 15:58:51 104

原创 数据结构2-一维数组封装和操作-复杂度分析

data:存放的元素size:指向下一个元素的下标capacity:容量

2021-09-10 22:40:20 220

原创 数据结构与算法1

基本概念时间复杂度和空间复杂度计算时间复杂度原则

2021-09-10 19:34:06 44

原创 nacos微服务的原理及应用

Spring Cloud官网:spring.io/projects/spring-cloud微服务:编程的一种目标Spring Cloud Alibaba如何搭建Spring Cloud先创建一个新maven项目去官网,选择H版首先需要配置依赖在pom.xml中添加依赖,springcloud的,springboot的依赖,阿里云的国内镜像仓库<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://mave

2021-09-10 09:02:17 299

原创 Spring Security的原理及使用

基于OAuth的权限授予机制什么是认证什么是会话什么是授权底层为framework上面为Spring Security组成的组件client为用户resource owner为商家autorization为选择的登录方式1.发送请求,返回2.选择登陆方式,返回token3.拿着token访问商家如何架构1.配置pom.xml运行项目主体代码此处clientid此处定义使用何种方式登录,以及他的作用域以及跳转页面配置信息:接口 redis 视图解析器账号密码是否匹配

2021-09-09 20:29:05 82

原创 Redis原理及应用

1.字符串小于1m时候加倍扩容,大于1m每次加1m,最大512m记录文章阅读数量Redis Hash使用渐进性哈希。应用场景1.添加对象2.购物车hash优缺点List阻塞队列一般不用应用场景Set应用场景:ZSET 2.高阶数据类型相比mysql节省大量存储空间操作应用场景3.Springboot集成redis先要添加依赖操作方法4.Redis核心RDB快照AOF优缺点AOF同步策略重写RDB对比AOF同时开启混合模式重

2021-09-09 16:08:54 61

原创 RocketMQ

1.消息队列消息队列:在消息的传输过程中保存消息的容器,生产者和消费者不直接通讯,依靠队列保证消息的可靠性,避免了系统间的相互影响。2.应用场景异步调用,业务解耦,削峰填谷具有高吞吐,高可靠性MQ将消息存储到Broker,用topic区分,内部有队列方便查找broker和nameserver30s同步一次生产者和nameserver建立连接信息,然后消息放入broker,,消费者再与nameserver建立联系,再从broker拿消息RocketMQ相比zk更加轻量搭建代码在控制台中可.

2021-09-09 09:44:50 106

原创 java项目实战5

秒杀库存限制和时间限制1.提交秒杀商品申请,后台录入秒杀商品数据。2.运营商审核3.秒杀频道展示秒杀商品列表4.打开秒杀列表进入到秒杀商品的详情页5.开始秒杀—秒杀排队,下单,支付6.秒杀成功但是没有支付成功,3min取消订单,关闭支付,恢复库存。Redis缓存:1.读取商品列表,放入redis2.秒杀商品详情【静态化技术,redis缓存】3.用户秒杀抢单都是在redis中进行,只有支付成功,订单信息以及库存信息才落地。业务逻辑将秒杀的商品查询出来,放到redis(怎么放让结果更加

2021-09-08 22:07:42 119

原创 java项目实战4

单点登录加购物车满减优惠订单支付分布式事务秒杀和抢单系统单点登录划线部分就是使用CAS单点登录session共享的问题:每个服务器上都存储,比较浪费空间cas的父是webcas客户端和服务端之间的交互过程,第5步是验证TicketCasProperties,读取cas配置信息的类。cas读取成功或失败跳转的地方。CasUserDetailService子系统中cas的配置cas的激活加入购物车1.添加购物车2.删除购物车某条3.结算按钮以及价格...

2021-09-08 15:18:12 151

原创 java项目实战3

后台管理的权限以及认证。后台的密码进行加密。使用SpringSecurity进行用户认证和授权使用基于角色的访问控制(RBAC)。在mysql中为嵌套查询建立portal首页门户。使用vue前后端分离使用VUE作为模板引擎,ajax方式获取数据 前端渲染:nxmall-web-manager使用VUE前端框架,前后端分离,nx-web-portal使用Thymeldaf模板引擎 后端渲染 nxmall-web-order nxmall-web-seckillVUE通过Ajax请

2021-09-07 21:50:54 134

原创 java项目实战2

实现后台的商品管理。需要zookeeper的远程vpn。V端对S端远程调用,使用基于注册中心的dubbo。service_goods为对外暴露接口。web_mannger后台管理。两者各对interface有一个依赖。web_mannger能够通过RPC远程调用service_goods的内容。前端页面的资源可以放在web_mannger下。templates里面放html页面现在添加新增功能创建pagecontroller实现页面跳转图片上传功能图片管理,分布式上传。spu和skusp

2021-09-07 14:27:40 123

原创 JAVA项目实战1

电商系统。B:商家C:个人本次使用B2C模式,即商家对个人。本次使用SOA架构单一架构:工作量小,核心为ORM,量小可以用。垂直应用架构:互不相干部分拆分部署。分布式服务架构:应用之间交互部分多,抽离核心业务,构建服务中心。流计算架构:管理服务。SOA为面向服务的架构。分为服务层和视图层。因为电商业务应用场景为高并发场景,所以使用Dubbo+springboot而不是springcloud.因为需要获取数据的对象大多为C(顾客),所以不选用feign而是用了dubbo.本项目主要分为前台

2021-09-06 08:09:26 410

原创 Spring的架构以及IOC

Spring是分层的full-stack轻量级开源框架,以IOC和AOP为内核经常所说的Spring是指Spring frameworkspring官网IOC和AOP的作用Spring-Core包含了Bean Core Context Expression整个Spring的继承关系如下图,context继承了aop,aop继承了beans,beans继承了core,调用context时候,同时调用上级。什么是IOC以及IOC和DI的区别。IoC(Inversion of Control):

2021-09-02 12:45:38 84

原创 java中的锁

两种加锁方式:jvm层面:Synchronizedapi层面:lock锁 JUC包下的lock接口JVM锁Synchronized:用户态和内核态Synchronized的优化:能在用户态完成的加锁就不切换到内核态Synchronized加锁的本质:将对象头的标识(markword)进行修改。1、内核态,用户态用户态无需调用底层硬件,内核态需要调用硬件。Synchronized在1.2前是重量级锁,1.6做了大量的优化,锁升级。偏向锁将thread标识贴在资源处,就是加了一把锁。即在占有

2021-08-20 20:23:49 121

原创 多线程与并发1

1.进程与线程进程:cpu资源分配的最小单位线程:程序执行的最小单位2.局部性原理时间局部性:如果某个数据被访问了,那么不久的将来会再次访问空间局部性:如果某个数据被访问了,那么和他相邻的数据很可能被访问(缓存行)3.多线程三要素:可见性,顺序性,原子性。3.1可见性:数据一致性。3.2顺序性:3.3原子性:4.解决方案4.1总线锁:多线程变成了串行。4.2缓存锁:MSI,MESI,MOSI,FireFly等缓存一致性协议。Modify exlusive share invaild

2021-08-20 15:17:55 67

原创 JAVA注解

1.注解的概念和作用2.预定义注解3.自定义注解使用控制台指令javap打开字节码,可以看到注解的本质是接口继承自Annotation方法。接口中可以定义方法,方法需要满足以下特征:方法返回值必须为八种基本数据类型,String类型,枚举类型,注解类型和Class类型或是以上几种类型的数组。下面是使用方法4.元注解元注解是注解的注解,有以下四种5.注解解析器...

2021-08-09 22:11:00 58

原创 JAVA反射

1.初始反射此处反应了直接创建对象和通过反射获取之间速度差了很多。反映了反射存在性能损耗(底层调用大量native方法,需要在字节码中寻找,解析,以及校验操作)。2.反射的基本操作实际应用:JDBC的封装和SpringIOC。如果私有的,可以像下图这样获取3.反射安全性问题4.反射在Spring中的应用...

2021-08-08 21:59:01 96

原创 JAVA泛型

1.泛型的定义Java泛型(Generic)是J2 SE1.5中引入的一个新特性本质:参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类,接口和方法的创建中,分别称为泛型类,泛型接口,泛型方法。2.桥接方法和类型擦除3.通配符无界通配符使用4.泛型的使用如图就是泛型的一个类的使用泛型方法泛型接口以及使用...

2021-08-08 16:36:33 60

原创 jvm调优

分代垃圾回收器常用调优参数调优追求的指标:吞吐量(增加)和响应速度(减少stop the word时间)吞吐量:业务代码执行时间/总的执行时间(总的执行时间=业务代码执行时间+GC时间)步骤:1.根据场景选择垃圾回收器2.保证一年中99.9时间程序正常跑。(堆初始值和堆最大值选定)3.-XX:log 要有日志,压测如果达不到效果,看日志。调优工具:...

2021-08-06 22:22:01 78

原创 JVM垃圾回收(GC)以及各类垃圾回收器

GC主要发生在heap(堆)中GC有识别垃圾和清除垃圾两步,分别的算法为下列算法。识别垃圾算法:1.引用计数法 2.可达性分析引用计数法存在循环引用的问题(引用一次对象,计数加一,当方法结束,计数减一。如果在方法中对象相互引用,导致栈中方法关闭后对象技术大于0,不被识别为垃圾)可达性分析(也叫根搜索法GC Roots)只要可以顺着GC Roots找到堆中的对象,就不是垃圾。清除垃圾算法:1.标记清除算法(Mark-Sweep)2.复制算法(copying)3.标记整理算法(Mark-

2021-08-03 09:58:36 299

原创 类加载空间分配

2021-08-01 22:34:38 57

原创 JVM的Class加载机制2(双亲委派机制)

1

2021-06-08 10:59:37 52

原创 JVM的Class加载机制1(里面有string和stringbuffer在.class层面的区别)

1.Class Files:将.java文件编译为.class文件2.Class Loader Subsystem:将.class文件加载到jvm虚拟机中去。3.Runtime Data Areas:运行时内存区域的划分。4.Execition Engine:执行引擎,包括两部分。GC:垃圾回收器。JIT:java的编译。5.Native Method Interface:与硬件进行交互的接口。...

2021-05-30 18:42:43 127

原创 JVM如何跨平台(屏蔽硬件平台的不同)

http://hg.openjdk.java.net/jdk8u该网站为OpenJDK的网页地址打开下面的jdk8u的hotspot打开左边的browse(当然你也可以下载zip文件下载后查看源码)再点开src文件在这里,针对不同的cpu它进行了不同的封装这里有几种不同的CPU架构,x86是我们非常熟悉的架构,sparc的cpu架构为sun公司(现在被oracle收购)开发的。打开os可以操作系统linux,windows,solaris(也是sun公司开发),posix(类似linux系统

2021-05-30 16:33:36 320

原创 手写红黑树添加元素以及遍历操作(RBT)

代码放在文末红黑树添加元素:保持根为黑色,左旋。需要左旋的情况如下图所示:如果先添加40,再添加30,则为左旋,无需操作。如过先添加30,再添加40,需要左旋操作,保证红黑树为左旋红黑树。下图为左旋和颜色变换的示意图(包括变换的代码)红黑树添加元素:颜色反转。先在40的左侧和右侧分别贴上30和50(节点默认颜色为红色,根节点默认黑色)。由于红黑树本质上就是二三树,一个四节点转换为3个2节点首先三个节点在红黑树中都为单独的黑色节点,同时又需要保证层数不变,因此根节点变为红色,而两个子节点为

2021-05-21 12:50:26 201

原创 二三树与红黑树的关联性

红黑树的性质:1.红黑树的每个节点或是红色或者是黑色。2.根节点是黑色的,红色节点向左倾斜。3.每个叶子节点都是黑色。4.如果一个节点是红色,那么它的孩子节点都是黑色的。5.从任何一个节点到叶子节点,经过的黑色节点是一样的。2-3树的性质:1.满足二叉搜索树(BST)的基本性质(左子节点比当前节点小,右子节点比当前节点大),每个节点存放1或2个元素。2.维持绝对平衡.3.不能往null节点插入数据。2-3树中一个节点中有一个元素时该节点称为2节点,有两个元素时称为3节点。当该节点添加到3

2021-05-18 08:59:44 143

原创 树,二叉搜索树,平衡二叉树和左旋右旋

二叉搜索树:BST 左子节点比当前节点小,右子节点比当前节点大。平衡二叉树:平衡因子(左子树与右子树高度差)不超过1 高度与节点的关系为0(logn)。不平衡节点:平衡因子大于1的第一个节点。如下图所示,树R(它是平衡二叉树)的左子树高度为2,右子树高度为1,那么他的平衡因子=左子树高度-右子树高度=1。树N(它不是平衡二叉树)的左子树高度为3,右子树高度为1,那么他的平衡因子=左子树高度-右子树高度=2。下图中平衡因子在N处第一次大于1,因此N为不平衡节点。下面引出如何维护平衡:右旋和左

2021-05-18 08:30:21 143

原创 IDEA-如何查看方法源码

第一步:双击Shift打开全局搜索并输入想要查找的方法第二步骤:ALT+7打开Stucture或者在View中打开

2021-05-14 08:51:53 837

原创 spring小知识

IoC:控制反转 用于创建对象DI:依赖注入 作用和IoC一样

2021-03-17 21:24:01 152

原创 数据库SQL语句

1创建数据库并指定编码Creat database 数据库名 default character set utf82创建表Create table 表名(列名 类型 约束 auto_increment comment ‘备注’);

2021-02-15 15:33:35 120

原创 Spring的初步了解

Spring官网地址:https://spring.io/Spring全家桶:spring ,springmvc ,spring boot,spring cloud。spring用于减轻对项目模块直接的管理,类与类之间的管理,帮助开发人员创建对象,管理对象之间的关系。核心技术:IoC,aop 实现类之间的解耦合(结构松散)IoC(Inversion of Control):控制反转 作用:把对象的创建,赋值,管理工作都交给代码之外的容器实现。...

2021-02-04 18:21:23 346

原创 JDBC数据库连接时发生时区错误

在使用IDEA学习JDBC时,连接数据库遇到了这样一个问题java.sql.SQLException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use

2020-12-03 11:53:04 587

原创 2020-10-16

2020.10.16小记学习路程javase必须这几日学完了,队友提出了要让做网页和上传数据的需求。学完之后还得学波网页,加油。

2020-10-16 19:03:27 1031

空空如也

空空如也

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

TA关注的人

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