自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程的描述与控制

进程的描述与控制进程的描述为了使程序并发执行,并对并发执行的程序加以描述和控制,人们引入了“进程”的概念。定义为了使参与并发执行的程序都能独立地运行,在操作系统中必须为之配置一个专门的数据结构,称为 进程控制块(PCB)。系统使用PCB描述进程的基本情况和获得过程,进而控制和管理进程。由 程序段,相关数据段和 PCB三部分构成进程实体。进程的创建和销毁实质上是对进程实体的PCB的创建和销毁。特征动态性:由创建而产生,由调度而执行,由撤销而消亡。**并发性:**引入进程的目的正是为了使进程实

2020-08-30 15:46:13 319

原创 面试知识点集锦

JavaJVM完整深入解析

2020-08-04 19:04:38 185

原创 MySQL事务机制

基础概念事务是访问和更新数据的基本单元,事务保证一批数据要么全部执行要么都不执行。MySQL只有使用了InnoDB引擎创建数据库和表才支持事务。事务用来管理CRUD操作。事务的四大特性事务的四大特性是指事务的ACID特性:原子性(Automatic)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原子性:是指事务要么全做要么都不做,如果在中间发生错误就会执行回滚操作,撤销之前的操作。一致性:是指事务执行结束后,数据库的完整性没有被破坏,执行前

2020-07-19 23:52:28 944

原创 MySQL锁

前言今天字节的面试问到了MySQL的锁,自己回答的含糊不清,所以重新学习一遍做一个梳理。这里讲的是MySQL 5.7在InnoDB引擎下的锁机制。概述总的来说,InnoDB共有七种类型的锁:共享锁(S)/独占锁(X)意图共享锁(IS)/意图独占锁(IX)记录锁间隙锁临键锁插入意图锁自增所1.共享锁/独占锁这两个锁都是行级锁共享锁(S):允许一个事务去读一行独占锁(X):允许一个事务更新或删除一行互斥性:S锁定之间不互斥,即两个事务可以同时获取该行的S锁X锁定与其他

2020-07-05 10:17:04 167

转载 Volatile的使用及原理

原文链接:https://www.cnblogs.com/paddix/p/5428507.html一、volatile的作用我们已经知道可见性、有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果对Synchronized原理有了解的话,应该知道Synchronized是一个比较重量级的操作,对系统的性能有比较大的影响,所以,如果有其他解决方案,...

2020-06-13 16:17:37 219

原创 Redis删除策略

概述Redis是一种内存级数据库,那么它的数据就要具备删除功能。因为内存的容量限制了数据不能随意增大。磁盘可以做的很大,但内存不能做的很大。Redis可以设置带有期限的数据(例如:setex key second value 命令),相应的我们可以通过ttl key命令的返回值查看数据的期限状态:xx(大与0的数字):表示该数据剩余的期限时间-1:表示该数据没有设置过期时间,是永久性的...

2020-06-13 16:16:53 282

原创 建造者模式

建造者模式引言在软件开发工程中有时需要创建一个非常复杂的对象。比如,建造一座房子。需要建造墙壁、地面、窗户、门等,这些产品都由多个部件构成,可以灵活选择。使用工厂模式无法完成这些需求。定义构造者模式是将一个复杂对象的构造和表示分离,使同样的构建过程可以构建不同的表示。它将一个复杂的对象分解为一个简单的对象,一步步构建而成,他将变与不变相结合,即产品的组成部分是不变的,但每一部分可以灵活选择。特点优点各个建造者相互独立有利于系统的扩展客户端不必知道产品的内部组成细节,便于控制细节风险缺点

2020-06-12 22:58:47 108

原创 运输层-TCP、UDP

运输层协议概述通常我们认为的通信是两个计算机之间的通信,严格的来讲是计算机中的两个应用程序的通信。实际上完成的是端到端的通信,这就是运输层的作用:为计算机的应用进程提供逻辑通信。网络层是为主机之间提供通信。运输层屏蔽了网络层通信的细节,使应用程序认为他们是直接通信的。端口两台计算机的应用程序想要进行通信,必须要有表示程序的标识。应用程序在一个计算机中是通过进程标识符唯一确定的,而应用程序的创建、运行是短暂。所有必须有一个长久的标识符:端口。计算机使用的端口可以不相同,我们只用把数据报发送到指定端口,

2020-05-08 21:59:12 567 2

原创 Redis常见问题企业级解决方案

一、缓存预热二、缓存雪崩三、缓存击穿四、缓存穿透

2020-04-23 21:34:14 183

原创 Redis集群

互联网的“三高”高可用:当服务器发生故障时,服务不会受到影响或者稍微影响高并发:当同一时间有很多请求到达服务器,服务器能够正确的响应每一个请求高性能:服务器的数据读写能力,处理数据能力,这个一般和硬件相关想要达到这些条件,一台单独的服务器是远远不够的,往往需要多态服务器一起工作,这就是集群。一、主从复制为什么有主从复制因为Redis的数据都是存储在内存中,当服务器发生宕机、断电等...

2020-04-21 22:55:04 219

原创 Redis事务

一、Redis事务什么是事务举一个烂大街的例子:银行转账。当我们要在银行进行转账的时候,它的操作可以分为两部分:一先扣除你账户的金额1000RMB,二把被转账人的账户金额加1000RMB。但是如果在把你的钱扣除了然后系统发生了故障(比如断电),并没有把被转账人的金额增加。这样你不就损失了1000,而银行赚了1000。这是就需要事务来控制。在转账开始前开启一个事务,结束后关闭事务。如果中间发生了...

2020-04-05 21:54:59 192

原创 Redis持久化

RDBRDB持久化方式采用的是快照原理,在某一时刻将数据保存到硬盘上。使用save指令,即可保存数据快照。相关配置指定配置文件启动,在配置文件中,设置# 设置快照保存的文件,通常以dump-端口号.rdb方式命名dbfilename dump-6379.rdb# 设置快照文件保存的位置dir /usr/local/redis/data# 设置保存快照时是否压缩数据,默认为yes,...

2020-04-02 21:54:46 108

原创 Spring01-Bean

为什么使用spring(spring好处)spring是一个开源的轻量级Java开发框架。对于分层架构、解耦开发、框架兼容等方面有很大的优势方便解耦,简单开发:spring是一个大工厂,对象的初始化可以交给spring完成,大大改善了硬编码问题。面向切面编程(AOP):可以方便实现对程序权限验定等功能事务控制:spring支持xml配置事务和注解配置事务,简化了事务操作spring不排...

2020-04-01 21:58:46 167

原创 JVM-类加载机制

类加载过程加载连接(验证+准备+解析)初始化使用卸载类加载器类与类加载器双亲委派模型自定义类加载器-Tomcat参考:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)...

2020-03-30 13:52:09 159

原创 Java多线程(Thread, Runnable,Callable, Executors)

Java多线程实现方式有4种,继承Thread类,实现Runnable接口,实现Callable接口,使用线程池实现(Executors)1. 继承Thread类通过继承Thread类,实现run方法,从而实现多线程。该方式实现简单,但该类不可作为拓展类,因为Java是单继承模式,该类继承了Thread类,便无法继承其他类了。class ChildThread2 extends Thread...

2020-03-27 15:24:25 331

原创 Java基础-Map

Map集合是双列集合,就是说它存储的都是键值对(K-V),其中的K不可以重复,而V可以重复。HashMap介绍HashMap是Map下最常用的集合类。对K进行hash运算,得到hashcode,从而存储元素。然而,hash算法不是完美算法,只能尽可能对键值进行散列,的到元素在内存中的存储位置。所以会产生hash冲突。解决hash冲突的方法有开放地址发、再散列法,链表法。在jdk1.7中Ha...

2020-03-26 20:50:38 143

原创 Java基础-线程同步(synchronized,ReentrantLock)

synchronized与ReentrantLock比较它们都是线程同步方式,都是阻塞式实现方式(即一个线程获取锁后,其他要获取该锁的线程处于阻塞状态)都是可重入性锁,即可以对某一对象重复加锁。常见于递归,例如方法A调用加锁的方法B,而方法B又递归调用自身。如果不可以重入,递归调用时发现方法B已经上锁,需要等待。这是就出现了自身等待自身释放锁的情况。两者性能差不多。在synchronize...

2020-03-26 20:50:25 201

原创 计算机操作系统第五章 虚拟存储器 复习笔记

谷歌

2020-03-26 20:47:32 992

原创 计算机操作系统 第六章 输入输出系统 复习

输入输出系统1 i/o系统的功能、模型和接口1.1 I/O系统的基本功能1.隐藏物理设备细节2.与设备的无关性3.提高处理机和I/O设备的利用率4.对I/O设备进行控制5.确保对设备的正确共享6.错误处理1.2 I/O系统的层次结构和模型分为四个层次1.用户层I/O软:实现与用户交互的接口2.设备独立性软件:用于实现用户程序与设备驱动程序的统一接口3.设备驱动程序:...

2020-03-26 20:46:50 580

原创 MySQL索引区别及简单应用

一、索引介绍我们平时使用数据库,涉及到的查询操作远远多于增删改,所以如何提高查询效率就变得很重要。索引在MySQL中是一种键是存储引擎快速找到数据的一种数据结构。1.索引能够提高查找速度,且提升好几个数量级2.索引相当于字典的音序表,可以直接定位到摸个读音,然后在读音内查询。否则就需要从第一页逐个查询。二、索引原理二叉排序树,这种数据结构能够将查询效率提升很多,查询效率相当于顺序表中的...

2020-03-26 20:35:39 193

原创 Java设计模式--单例模式

定义单例模式是一种常见的设计模式。核心结构是含有一个被称为单例的特殊类,即系统中一个类只能有一个实例对象。特点单例类只能有一个实例单例类必须自己创建唯一实例单例类必须提供其他引用它的对象实例要点私有的构造方法指向自己实例的私有静态引用以自己实例为返回值的静态的公有方法其中单例模式分为饿汉单例模式和懒汉单例模式饿汉单例指在类加载时就生成一个类的实例懒汉单例指在调用获取...

2020-03-26 20:35:07 75

原创 Java设计模式--工厂模式

定义工厂模式是常用的设计模式之一,属于创建型模式,提供了一种创建对象的最佳模式。工厂模式主要为创建对象提供过渡接口,以便将创建的过程屏蔽起来,达到提高灵活性的目的特点工厂方法是一种粒度很小的模式,因为模式的表现只是一个抽象的方法。提前定义一个接口,具体的实现交给子类,即在工厂和产品的中间增加一个接口,不再由工厂创建对象,而是让接口针对不同的类返回类实例,由类实例创建。抽象产品接口//抽...

2020-03-26 20:30:50 105

原创 Java设计模式--原型模式

1.定义通过复制现有的对象来创建新的对象2.实现实现Cloneable接口Cloneable接口可以通知JVM在运行时安全的让实现此接口的类使用clone方法。如果没有实现Cloneable接口,使用clone方法,JVM会在运行时抛出CloneNotSupportException异常重写Object类的clone方法Object类是所有Java类的父类,其中有一个cl...

2020-03-26 20:29:22 133

原创 Java设计模式--代理模式

定义为对象提供一种代理来控制其他对象的访问,一般一个对象不适合或不能直接访问另一对象,而代理可以在对象之间起到中介作用。角色抽象角色:真实角色和代理角色共同的接口代理角色:代理角色内部含有对真实对象的引用,从而可以操纵真实对象。同时代理对象有和真实对象同样的接口,以便能随时替代真实对象。真实角色:就是我们想要访问的角色。分类静态代理:代理类的字节码文件在运行前就已经存在,代理对象...

2020-03-26 20:27:24 91

原创 Redis简单介绍和使用

1. 何为NoSQLnosql是Not Only Sql的缩写,指不仅仅是sql,是一种全新的数据库理念。泛指非关系型数据库。关系型数据库关系型数据库基于数据表,各数据表之间有外键相关联关系型数据库是要持久化到磁盘上非关系型数据库非关系型数据库没有表结构,数据在文档中以键值对(K-V)存储非关系型数据库是在内存中存储,存取数据较快灵活性高,容易扩展。没有关系束缚,扩展容易。...

2020-03-24 21:56:35 291

原创 JVM-内存及垃圾回收

1.JVM简介JVM全称是Java Virtual Machine(Java虚拟机),它是一个虚构出来的计算机,仿真模拟真实计算机的各种功能。JVM是Java语言能够跨平台的根本原因,它屏蔽了底层系统的细节,它把Java文件编译成能够在虚拟机上运行的class文件,然后由虚拟机自动完成在各个平台运行的转化工作。JVM既然是虚拟的计算机,那么必然具备内存区域,接下来就讨论Java内存区域、内存回...

2020-03-21 19:15:19 216

原创 操作给定的二叉树,将其变换为源二叉树的镜像

操作给定的二叉树,将其变换为源二叉树的镜像问题描述将给定的原二叉树变换为镜像二叉树例:思路观察上图发现:镜像二叉树就是把根节点的左子树和右子树互换,因此我们只要将该二叉树从根节点依次遍历即可。此时可以按照构造二叉树的思想,使用递归。代码如下//将原二叉树变为镜像二叉树 public void Mirror(TreeNode root) { if(root == null...

2019-11-25 21:02:00 452

原创 Java参数传递是值传递还是引用传递

**Java参数传递是值传递**对很多人来说,Java参数传递是值传递还是引用传递,很迷惑。下面是笔者在看过这篇博客https://www.cnblogs.com/9513-/p/8484071.html,自己的理解。这是笔者的处女作,若有不对之处,欢迎指出,多多见谅~~参数传递1.Java中的参数的传递都是值传递,无论是基本数据类型,还是对象。2.参数为基本数据类型是传递的值的副本拷...

2019-11-19 17:22:23 149

空空如也

空空如也

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

TA关注的人

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