笔记
文章平均质量分 75
宇泽希
一起学习,一起进步!
展开
-
Cookie和Session的区别
cookie和session的区别原创 2023-02-27 10:44:13 · 416 阅读 · 0 评论 -
Zookeeper的介绍、Paxos、leader的选举过程
Zookeeper的介绍Zookeeper是一款apache社区开源的基于内存的,能够完成分布式协调服务的一个应用,其目的就是让分布式的一些协调变的简单特性顺序一致性 - 客户端的更新将按发送顺序应用。原子性 - 更新要么成功要么失败。没有部分结果。全局数据一致性:在集群中每个节点都保存相同的数据,无论修改哪个节点,最终所有节点的数据都会一致实时性 - 系统的客户视图保证在特定时间范围内是最新的。极其高可用如果我们的Zookeeper服务是单节点,那肯定会想到单点故障问题原创 2022-02-28 10:58:10 · 1382 阅读 · 0 评论 -
谈谈你对HashMap的理解
这是一个非常讨厌的面试问题,我面试的时候被多次问到,都8080年了,还问这个问题!这个问题太宽了,没有一个好的回答思路根本不知从哪开说不过这个看似简单,我们只要说出对hashmap的理解,自由发挥就好,但是好的回答自然会让面试官刮目相看。围绕这个点要是答好了会引申出超级多的知识点在这里个人简单总结下:回答顺序参照下面的回答顺序,我觉得对于面初级开发来说妥妥的够了!Map的接口结构将集合的框架体系说出来吧!顺便把collection的框架体系也说出来吧!双列集合:单列集合HashMap原创 2021-12-18 23:21:06 · 1745 阅读 · 0 评论 -
分布式事务解决方案详解
先了解下本地事务,数据库是如何保证本地事务的?数据库具有ACID的特性,即原子性A、一致性C、隔离性I、持久性D。原子性A:通过undolog回滚日志保证,即要么执行成功,如果执行失败通过undolog回滚日志进行回滚一致性C:通过undolog回滚日志保证,多个数据同时执行,如果有一个执行失败就回滚隔离性I:通过悲观锁和乐观锁(mvcc)保证持久性D:通过redolog的两阶段提交分布式事务场景:分布式系统中是无法通过本地事务保证全局事务的,其问题点在于:每一个系统中虽然能通过本地事务保原创 2021-12-12 16:19:30 · 1557 阅读 · 0 评论 -
生成验证码的三种方式
public static void main(String[] args) { int nums = 1000000; // 循环次数 //-------------------------第一种------------------------- long start = System.currentTimeMillis(); Random random = new Random(); for (int i = 0; i &...原创 2021-11-01 12:21:39 · 4210 阅读 · 0 评论 -
Eureka的三级缓存以及生产优化
Eureka生产优化Eureka生产优化核心就是优化服务注册、上下线的速度eureka的优化之前需要了解原理,通过debug发现待优化的点原理概述进入EurekaServer的依赖中发现通过配置文件spring.factories将EurekaServerAutoConfiguration注入进来我们的启动类上又有个@EnableEurekaServer进入这个注解中发现又导入了EurekaServerMarkerConfiguration在EurekaServerM原创 2021-10-31 00:24:02 · 1475 阅读 · 2 评论 -
自整理---多线程+JUC笔记
线程基础知识程序,进程,线程,纤程(协程)程序:就是最开始的时候安静的躺在磁盘中的.exe可执行文件,当我们点击运行的时候,系统将其load到内存中,之后cpu将其执行进程:操作系统资源分配的基本单位。(一个程序可以由多个进程,比如一台电脑可以登录多个qq那就是多个进程)线程:调度执行的基本单位。线程在进程的内部,线程是一个程序里不同的执行路径,多个线程共享同一进程中的资源纤程(协程)纤程和线程本质上原理相同,线程的切换时通过栈实现,纤程亦如此,都是栈的记录和切换。纤程是用在用原创 2021-09-11 01:11:23 · 490 阅读 · 0 评论 -
自整理---JVM笔记
结合马士兵和尚硅谷大厂学院JVM课程简单整理的笔记整理后的脑图如下JVM的体系结构JVM的简单介绍JDK、JRE、JVM的区别常见的JVMHotspot-oracle官方,我们做实验用的JVMJrockit-BEA,曾经号称世界上最快的JVM,被Oracle收购,合并于hotspot-hotspot深度定制版(收费)J9-IBMMicrosoft VMTaobaoVM-hotspot深度定制版LiqidVM-直接针对硬件azul zing-原创 2021-08-26 15:04:02 · 304 阅读 · 0 评论 -
与运算、或运算、异或运算
1.与运算(&)计算规则:两个计算的二进制数 相同位为1结果为1否则为01 & 1 = 1;1 & 0 = 0;0 & 1 = 0;0 & 0 = 0;例如:1 & 2换成二进制0000 0001 & 0000 0010结果为0000 0000 2 & 30000 0010 & 0000 0011 = 0000 0010通过这个特性 我们通常可以用来清零 想给哪一位清零就把哪一位置为0 若不想清零这一位转载 2021-08-21 10:08:43 · 13433 阅读 · 0 评论 -
自整理---Redis笔记
Redis简介关系型数据库与非关系型数据库关系型数据库采用关系模型来组织数据的数据库,关系模型就是二维表格模型。一张二维表的表名就是关系,二维表中的一行就是一条记录,二维表中的一列就是一个字段。优点容易理解,使用方便通用的sql语言易于维护,丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率举例:MySql,Oracle, Server,DB2非关系型数据库非关系型,分布式,一般不保证遵循ACID原则的数据存储系统。是基于键值对的存储结构,原创 2021-08-08 10:09:51 · 367 阅读 · 0 评论 -
自整理---Mysql高级笔记
第 1 章 MySQL 的架构介绍1、MySQL 简介什么是 MySQL?MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。Mysql是开源的,所以你不需要支付额外的费用。Mysl支持大型的数据库,可以处理拥有上千万条记录的大型数据库。MySQL使用标准的SQL数据语言形式。Mysql可以允许于多个系统上,并且支持多原创 2021-08-08 10:08:55 · 633 阅读 · 0 评论 -
对象创建流程分析
案例:public class ProcedureEstablishment { public static void main(String[] args) { Person p = new Person("小倩", 20); }}class Person { private String name; private Integer age = 90; public Person(String name, Integer age) {原创 2021-07-01 22:47:33 · 88 阅读 · 0 评论 -
Java对象的值传递机制
从两道高频面试题说起~~~基本数据类型的传参下面代码运行后输出什么?public class AA { public static void main(String[] args) { int a = 10; int b = 20; AA aa = new AA(); aa.swap(a,b); System.out.println("main方法中的:" + "s1 = " + a + ",s2 = " + b)原创 2021-07-01 16:10:10 · 323 阅读 · 0 评论 -
设计模式之代理模式
代理模式的介绍定义:为其他对象提供一种代理,以控制这个对象的访问代理对象在客户端和目标对象之间起到中介的作用代理模式包含如下角色:Subject: 抽象主体角色(抽象类或接口)Proxy: 代理主体角色(代理对象类)RealSubject: 真实主体角色(被代理对象类)注:代理类和被代理类都要实现同一个抽象类或接口代理模式小demo这里有个非常有意思的案例场景:有一位男生卓贾易同学在追求班级里的班花娇娇,想给她送洋娃娃,送花,送巧克力。但却不好意思直接送给她,只能托付好朋友戴厉帮忙去送原创 2021-06-23 21:05:57 · 120 阅读 · 0 评论 -
设计模式之装饰器模式
介绍装饰器模式所需角色:抽象被装饰(Component)角色:表示一个被装饰(被增强)的类的接口。具体被装饰(ConcreteComponent)角色:表示被装饰(被增强)的类,实现抽象构件接口。抽象装饰(Decorator)角色:继承抽象构件,表示用来装饰被装饰类的接口。具体装饰(ConcreteDecorator)角色:实现抽象装饰的相关方法,它是具装饰类。demo举例抽象被装饰// 抽象构件,component(被包装类)public interface ManTikTok原创 2021-06-22 22:43:59 · 86 阅读 · 0 评论 -
深入理解递归
递归是一种重要的编程技术,该方法用来让一个函数(方法)从其内部调用其自身。一个含直接或间接调用本函数语句的函数,被称之为递归函数。对于树结构的遍历和处理,最为常用的代码结构就是递归(Recursion)。递归的实现有两个必要条件:必须定义一个基准条件,这也是递归终止的条件(在Java中递归没有基准条件无法结束递归,直到栈溢出)。在这种情况下,可以直接返回结果,无需继续递归在方法中通过调用自身,向着基准情况不断前进通过阶乘举例:一个简单示例就是计算阶乘:0 的阶乘被特别地定义为 1n的阶乘原创 2021-06-21 16:30:27 · 171 阅读 · 0 评论 -
结构结构之树的总结
为什么需要用到树的结构,它有什么好处?数组存储方式的分析:优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值就会按一定顺序会整体移动,效率较低链式存储方式的分析:优点:插入节点和删除节点效率高。缺点:在进行检索时效率低(需要从头节点开始遍历)树存储方式的分析:能提高数据存储,读取的效率,比如利用二叉排序树(Binary Sort Tree)既可以保证数据的检索速度,同时也可以保证数据的插入,删除,修改的速度。案例:[7原创 2021-06-20 16:58:57 · 301 阅读 · 0 评论 -
Docker部署前后端分离后端项目
https://www.cnblogs.com/wyt007/p/11072252.html转载 2021-06-19 20:48:31 · 119 阅读 · 0 评论 -
设计模式之策略模式
1. 策略模式的介绍策略(Strategy)模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。属于对象行为模式。策略模式包含三个角色:抽象策略:公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或抽象类实现具体策略:实现了抽象策略定义的接口,提供具体的算法实现。环境类(context):持有一个策略类的引用,最终给客户端调用。2. 策略模式小demo先介绍个小demo,稍后再用上面的收银系统进原创 2021-06-19 14:45:21 · 59 阅读 · 0 评论 -
策略模式和简单工厂的结合
商场收银系统一切从一个需求开始说起需求:实现一个收银小程序,输入商厂商品的单价以及商品的数量,最后返回总价格简单啊,客户端代码实现如下:public class PriceCalculate { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入商品单价:"); int price =原创 2021-06-18 23:24:36 · 733 阅读 · 0 评论 -
UML类图
UML类图1.类图基础属性解释:成员变量中:+表示public-表示private #表示protected ~表示default,也就是包权限 _下划线表示static 成员方法中:斜体表示抽象 ,类中有抽象方法,那么类也是个抽象类,也要加斜体2.类与类之间关系在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖转载 2021-06-17 16:52:31 · 401 阅读 · 0 评论 -
排序之选择排序
选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某元素,再依规定交换位置后达到排序的目的。选择排序( select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0] ~ arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1] ~ arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2] ~ arr[n-1]中选取最小值,与arr[2】交换,…,第i次从arr[i - 1] ~ arr[n-1]中选取最小值,与ar[i -1]交换,…原创 2021-06-17 15:13:56 · 101 阅读 · 0 评论 -
排序之冒泡排序
冒泡排序的介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序(前一个数大于后一个数)则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。通过简单的demo理解冒泡排序的规律public class BubbleSort { public static void main(String[] args) { int[] arr = {3, 9, -1, 10, -2}; /原创 2021-06-17 11:01:39 · 217 阅读 · 0 评论 -
工厂模式(简单工厂、工厂方法、抽象工厂)
工厂模式(Factory Pattern)提供了一种创建对象的最佳方式。我们不必关心对象的创建细节,只需要根据不同情况获取不同产品即可。难点:写好我们的工厂工厂方法的分类工厂模式之-简单工厂简单工厂只有三个角色:抽象产品类具体产品类工厂类举例:有一家肉厂:双汇厂,他们现在有两个产品,牛肉和猪肉demo如下:抽象产品类// 抽象产品类public abstract class AbstractMeat { // 工厂要产的抽象产品:肉 public Str原创 2021-06-16 21:56:53 · 285 阅读 · 1 评论 -
原型模式以及深克隆和浅克隆
原型模式(Prototype Pattern)是在程序中需要创建重复的对象,同时又要保证性能。它属于创建型设计模式。原型模式可以通过一个对象实例确定创建对象的种类,并且通过拷贝创建新的实例。总得来说,原型模式实际上就是从一个对象创建另一个新的对象,使新的对象有具有原对象的特征。原型模式是一种应用及其广泛的设计模式,Clone也是一种十分常见的操作,以至于在Java中,终极父类Object将Clone方法作为了所有类应具有的基本功能,并且Java也提供了Cloneable接口,原型模式已经与 Java 融原创 2021-06-12 21:25:53 · 265 阅读 · 2 评论 -
单例模式及破解单例模式
单例模式:一个类自己负责创建自己的对象,同时确保系统中该对象只会被创建一个!特点:在整个系统中只能有一个该类的实例(必须确保构造器私有,避免其他类new出该类的对象)他必须自行创建这个实例(在代码对应的类中自己编写实例化逻辑)它必须自行向整个系统提供这个实例(对外提供实例化方法,外面的类想要这个实例的对象随时可以调用)单例模式的饿汉式public class Person { private String name; private String age; //原创 2021-06-11 23:06:52 · 504 阅读 · 0 评论 -
创建第一个Mybatis程序
创建第一个Mybatis程序一.搭建开发环境1.创建Maven项目不需要使用任何模板,直接next,创建最简单的Maven工程2.删除src包3.配置父工程的pom文件在你的pom文件中的如下配置代表父工程<groupId>com.zlq</groupId><artifactId>Mybatis1</artifactId><version>1.0-SNAPSHOT</version>导入依赖,Mysql ja原创 2020-09-20 20:48:44 · 261 阅读 · 0 评论