- 博客(30)
- 收藏
- 关注
原创 SpringCloud微服务
1、什么是微服务?就是将一个打的应用拆分为多个小的模块,每个模块都有自己的功能和职责,不同模块之间可以进行交互,这就是微服务2、六大基础原则职责单一、服务独立、可扩展、可替换、可重用、高容错。
2023-07-28 23:53:23
61
原创 synchronized锁升级过程
(2)后来又来了线程b,线程c,说凭什么你占有锁,需要公平的竞争,于是将标识去掉,也就是撤销偏向锁,升级为轻量级锁,三个线程通过CAS进行锁的争抢(其实这个抢锁过程还是偏向于原来的持有偏向锁的线程).(3)现在线程a占有了锁,线程b,线程c一直在循环尝试获取锁,后来又来了十个线程,一直在自旋,那这样等着也是干耗费CPU资源,所以就将锁升级为重量级锁,向内核申请资源,直接将等待的线程进行阻塞.(1)当只有一个线程去争抢锁的时候,会先使用偏向锁,就是给一个标识,说明现在这个锁被线程a占有.
2023-07-25 13:46:58
76
原创 ReentrantLock
/ 排他锁标识// 如果带有这个标识,证明是失效了// 具有这个标识说明后继节点需要被唤醒// Node对象存储标识的地方// 指向上个节点// 指向下个节点// 当前Node绑定的线程// 返回前一个节点,前驱节点,如果为null就抛出异常elsereturn p;
2023-07-25 11:31:15
55
原创 Java注解学习笔记(尚GG-Spring)
1、注解的概念注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...)2、注解的位置注解作用在类、方法、属性上面3、注解作用简化xml配置。
2023-07-24 14:52:51
69
原创 Redis面试题
其中一台服务器作为master服务器,提供读写服务,配置多台从服务器,从服务器只提供只读服务,同时配置多台sentinel,也即是哨兵,哨兵的作用是可以监控master节点,如果master宕机,可以从从服务器中选举出一台作为master服务器。其实RDB和AOF两种方式也可以同时使用,在这种情况下,如果redis重启的话,RDB记录的是上次持久化的数据,AOF记录从上次持久化到当前这段时间的写操作,通常这部分文件会很小,恢复数据的时候,先加载RDB文件,再执行AOF,使效率提高。
2023-07-24 14:39:39
259
原创 JDK和cjlib动态代理
JDK动态代理主要涉及java.lang.reflect包下边的两个类:Proxy和InvocationHandle。
2023-07-23 16:10:36
189
原创 算法学习笔记
此式是分治法的时间复杂性所满足的递归关系,即一个规模为n的问题被分为规模均为n/b的a个子问题,递归求解这a个子问题,然后通过对这a个子问题的解综合,得到原问题的解。分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。求该序列的子段和的最大值。一个算法的复杂性的高低体现在运行该算法所需的计算机资源(主要是指时间和空间资源)的多少上。(4)有限性:算法中每条指令执行次数是有限的,执行每条指令的时间是有限的。(3)确定性:组成算法的每条指令是清晰的,无歧义的。
2023-07-20 15:41:35
595
原创 图Graph
矩阵( if M[i][j] == 1 => i -> j)、链表。应用场景:表示两个相连人之间的亲密程度。由顶点和连接线构成的数据结构,一种连接数据的数据结构。DFS(从头到尾,再从头到尾)应用场景:微信关注,订阅发布。无向图:每个顶点和其他顶点通过相连线连接。权重图:在权重图中,每条相连线有各自的权重。有向图:有向图中的连接线是有方向的。V是顶点集合,E是连接线集合。
2023-07-20 09:35:13
50
原创 Mybatis学习
3、MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。1、持久化就是将程序中的瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。1、MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。// namespace绑定一个Mapper 接口。// mapper里面的东西就是该接口的一个实现类。
2023-07-14 17:33:50
117
1
原创 设计模式总结
新增方法,代码的改变不是修改原有的类,因为会带入新的问题,解决方法是使用抽象接口抽象约束,实现类去实现这个抽象方法,不同的实现类可以重新抽象方法来完成不同的功能;这样的话,如果一个系统符合迪米特法则,那么当其中某一个类发生修改时,就会尽量少地影响其他模块,降低系统的耦合度,使类与类之间保持松散的耦合关系。1、Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象。优点:①降低类的复杂度;
2023-07-12 17:20:33
109
1
原创 Java面试题
Resource同时支持byType和byName方式注入,可以指定查找方式,默认按byName方式注入,找不到则按byType注入,找不到报错。① @Autowired和@Resource的作用类似,表示被修饰的Java类需要注入对象,spring会自动扫描所有被两个标注的类,然后根据在IOC容器中找到匹配的类进行自动注入。@Autowired可以作用在:构造器、方法、参数、成员变量和注解上,@Resource可以作用在:类、成员变量和方法上。
2023-07-12 08:30:26
115
1
原创 mybaits
1、什么是 MyBatis?答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。2、讲下 MyBatis 的缓存答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓 存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现 Serializable 序列化 接口(可用来保存对象的状态),可在它的映射文件中配置3、Mybatis 是如何进行分页的?分页插件的原理是什么?答: 1)Mybatis 使用 Row
2023-07-11 22:51:25
60
原创 Spring
Spring是一个轻量级的,非入侵式(新导入的jar包不会影响之前jar的正常使用)的框架。总结:Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架。4、UserServiceImpl 业务实现类。Spring是一个开源的免费的框架(容器)控制反转(IOC),面向切面编程(AOP)3、UserService业务接口。支持事务的处理,支持框架啊整合。配置十分繁琐,人称“配置地狱”一个快速开发的脚手架。一、Spring的优点和弊端。1、Spring的优点。3、Spring的弊端。
2023-07-08 22:08:25
60
原创 Java 动态代理
如明星有唱歌跳舞的方法,经纪人也应该有唱歌跳舞的方法,但是经纪人不是真的会唱歌跳舞,当程序需要用到明显的唱歌方法,此时会去调用经纪人的唱歌方法,在这个方法里面,经纪人会去准备话筒和收钱等操作,之后会去调明星的唱歌方法,让明星来唱歌。// 代理对象做的事情。System.out.println(this.name + "正在唱:" + name )System.out.println(this.name + "正在跳舞" )// starProxy.sing("好日子");* 参数1:指定类加载器;
2023-07-08 17:41:39
72
原创 JUC(尚GG)
在资源操作类中,如果是用的if做判断,第一次A抢到CPU资源,会判断苹果数,如果等于1,则等待,如果不等于1则提供苹果,也就是苹果数加1;第一次A给苹果数加1,之后wait,后面A又抢到CPU执行资源,由于wait方法的特性是在哪里睡就会在哪里醒,导致这次醒来之后会进行加1操作,苹果数会大于1,小于1的情况和大于1的情况类似;情景:AB提供苹果,CD吃苹果,苹果就是成员变量,如果苹果数为1,则AB不再提供苹果,等待CD吃苹果,当苹果数为0时,DC不再吃苹果,等待AB提供苹果;② 实现Runnable接口。
2023-06-26 16:35:44
113
1
原创 Java基础知识扫盲
ArrayList:基于动态数组,连续内存存储,适合下标访问(随机访问),数组的扩容机制:数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝新数组,如果不是尾部插入数据还会涉及导元素的移动,使用尾部插入法并指定初始 容量可以极大提升性能。list:有序,按对象进入的顺序保存对象,可重复,允许多个null元素对象,可以使用iterator取出所有元素,再逐一遍历,还可以用get()方法获取指定下标的元素。抽象类是对类本质的抽象,表达的是is a的关系,如BMW is a Car。
2023-06-18 22:00:29
240
1
原创 MySql作业题
(2)上表做临时表,和emp做表连接,条件是 e.deptno = t.deptno and e.sal = t.maxsal。(1)按照部门分组,找到每组薪水的最大值。1.取得每个部门最高薪水的人员名称。
2023-06-16 22:44:08
49
1
原创 Java多线程代码执行结果
继承Thread类(Thread也是实现的Runnable接口)main方法体在执行:0main方法体在执行:1main方法体在执行:2main方法体在执行:3main方法体在执行:4main方法体在执行:5main方法体在执行:6main方法体在执行:7main方法体在执行:8main方法体在执行:9main方法体在执行:10main方法体在执行:11main方法体在执行:12main方法体在执行:13main方法体在执行:14。
2023-06-15 17:41:31
383
1
原创 Java多线程
System.out.println(Thread.currentThread().getName() + "-->拿到第" + ticketNums-- + "张票");System.out.println(Thread.currentThread().getName() + "-->拿到第" + ticketNums-- + "张票");System.out.println(Thread.currentThread().getName() + "--> 跑了" + i + "步");
2023-06-15 17:39:36
75
1
原创 MySql学习笔记
数据库(DataBase)是按照一定格式存储数据的一些文件的组合。数据存储的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据。数据库管理系统(DataBaseManagement)是专门用来管理数据库中文件的,数据库管理系统可以对数据库中数据进行增删改查。常见的数据库管理系统:MySQL、Oracle等SQL(Structured Query Language)是结构化查询语言,程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库中数据的CRUD。
2023-06-13 17:40:00
259
1
原创 SpringBoot微服务架构学习
YAML是一种直观的能够被电脑识别的数据序列化格式,并且能够被人阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入;profile功能就是用来进行动态配置切换的。· 我们的工程继承spring-boot-starter-parent,引入starter之后,通过依赖传递,可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。@ResponseBody 的作用是指该类中所有的API接口返回的数据,对应的方法返回Map或是其他Object,都会以Json字符串的形式返回给客户端。
2023-06-12 17:39:17
1918
原创 Flink学习笔记(尚GG-Java版本)
Apache Flink 是一个框架和分布式处理引擎,用于对无界和有解数据流进行状态计算,其具有高吞吐、低延迟、结果准确、语义化窗口、易用的API和高容错的特点。在flink的世界观中,一切都是由流组成的,离线数据是有界的流(有界流);ETL 是企业数据应用过程中的一个数据流(pipeline)的控制技术,把原始的数据经过一定的处理,放入数据仓库里(-Flink是标准的流执行模式,一个事件在一个节点处理完后才可以直接发往下一个节点进行处理。越底层越具体,表达能力越丰富,使用越灵活。
2023-06-11 22:35:39
126
原创 Zookeeper学习笔记
Leader建立完成后,Leader周期性地不断向Follower发送心跳(ping命令,没有内容的socket),当leader崩溃后,follower发现socket通道已关闭,于是follower开始进入Looking状态,重新回到上一节点中的leader选举状态,此时集群不能对外提供服务。注册在特定Znode上的触发器,当这个Znode发生变化,也就是调用create,delete,setData方法的时候,将会触发Znode上注册的对应事件,请求Watch的客户端会接收到异步通知。
2023-06-09 11:25:43
220
原创 Kafka学习笔记整理
① 概念:消息队列,是基础数据结构中“先进先出”的一种数据结构。指把要传输的数据(消息)放在队列中,用来实现——生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ给其推送消息。② 异步通信:提高系统吞吐量,保障分布式系统中业务执行后的最终一致性。③ MQ解决的具体问题:通信问题(同步改为异步)④ MQ通过将消息的发送和接收分离实现应用程序的异步和解耦① 有Broker的MQ。
2023-06-08 15:50:42
901
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人