自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 LRU算法的实现

LRU全称是Least Recently Used,即最近最久未使用的意思。LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。实现LRU用一个数组来存储数据,给每一个数据项标记一个访问时间戳,每次插入新数据项的时候,先把数组中存在的数据项的时间戳自增,并将新数据项的时间戳置为0并插入到数组中。每次访问数组中的数据项的时候,将被访问的数据项的时间戳置为0。当数组空间已满时,将时间戳最

2021-03-17 11:13:37 389

原创 Spring的声明式事务理解

spring声明式事务1、回顾事务把一组业务当成一个业务来做;要么都成功,要么都失败!事务在项目开发中,十分的重要,涉及到数据的一致性问题,不能马虎!确保完整性和一致性事务ACID原则原子性一致性隔离性多个业务可能操作同一个资源,防止数据损坏持久性事务一旦提交,无论系统发生什么问题,结果都不会再被影响,被持久化的写到存储器中!2、spring中的事务管理声明式事务:AOP代码实现未声明事务时xml<?xml versi

2021-03-08 01:07:54 235

原创 Spring的注解开发

Spring使用注解开发在spring4之后,要使用注解开发,必须要保证aop的包导入了使用注解需要导入context约束,增加注解的支持<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co

2021-03-08 01:04:51 124 1

转载 Spring事务传播行为

事务传播行为介绍Spring中的7个事务传播行为:事务行为说明PROPAGATION_REQUIRED支持当前事务,假设当前没有事务。就新建一个事务PROPAGATION_SUPPORTS支持当前事务,假设当前没有事务,就以非事务方式运行PROPAGATION_MANDATORY支持当前事务,假设当前没有事务,就抛出异常PROPAGATION_REQUIRES_NEW新建事务,假设当前存在事务。把当前事务挂起PROPAGATION_REQUIRED支

2021-03-08 01:03:01 86

原创 JVM-虚拟机字节码执行引擎-《深入理解Java虚拟机》学习笔记

虚拟机字节码执行引擎运行时栈帧结构Java虚拟机以方法作为最基本的执行单元栈帧是用于支持虚拟机进行方法调用和方法执行背后的数据结构虚拟机运行时数据区中的虚拟机栈的栈元素栈帧结构局部变量表是一组变量值的存储空间,用于存放方法参数和方法内部定义的局部变量以变量槽(Slot)为最小单位Java虚拟机通过索引定位的方式使用局部变量表,索引值从0开始到局部变量表最大的变量槽数量操作数栈动态链接方法返回地址一些额外附加信息方法调用解析分派基于栈的字节码解释引擎什么

2021-03-07 11:53:44 84

原创 JVM-类与类加载器-《深入理解Java虚拟机》学习笔记

类与类加载器双亲委派模型从 Java 虚拟机角度讲,只存在两种类加载器:一种是启动类加载器(C++ 实现,是虚拟机的一部分);另一种是其他所有类的加载器(Java 实现,独立于虚拟机外部且全继承自 java.lang.ClassLoader)启动类加载器加载 lib 下或被 -Xbootclasspath 路径下的类扩展类加载器加载 lib/ext 或者被 java.ext.dirs 系统变量所指定的路径下的类应用程序类加载器ClassLoader负责,加载用户路径上所指定的类库。

2021-03-07 11:51:04 82 1

原创 JVM-类加载机制-《深入理解Java虚拟机》学习笔记

类加载机制虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、装换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型。在 Java 语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的。类加载时机其中加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的。解析阶段可以在初始化之后再开始(运行时绑定或动态绑定或晚期绑定)。以下五种情况必须对类进行初始化(而加载、验证、准备自然需要在此之前完成):遇到 new、getstatic、putstatic 或 i

2021-03-07 11:47:18 67

原创 JVM-内存分配和回收策略-《深入理解Java虚拟机》学习笔记

内存分配和回收策略优先分配在新生代大对象直接进入老年代长期存活的对象直接进入老年代15岁晋升老年代动态对象年龄判定相同年龄所有对象大小总和大于Survivor空间一半,那么我们就把大于等于该年龄的对象直接进如入老年代空间分配担保垃圾回收策略当一个对象被实例化后,首先先尝试存在eden区,若Eden区存不下,将触发一次minor GC,若空间不够,则看存活区的空间是否够,要是够的话,将Eden区的存活时间长的对象放到存活区,将新创建的对象分配到Eden区,

2021-03-07 11:03:39 66

原创 JVM-垃圾收集器-《深入理解Java虚拟机》学习笔记

垃圾收集器新生代的收集器串行收集器(Serial收集器)单一线程工作Stop the world客户端模式默认收集器简单高效,新生代复制算法,老年代标记-整理算法ParNew收集器年轻代,多线程并行GC对CPU的依赖性比较高复制算法Parallel Scavenge收集器关注的侧重点在吞吐量自适应的调节策略老年代的收集器Serial Old收集器标记 整理CMS收集器发生失败时的后备预案,在并发收集发生Concurren Mode Fa

2021-03-07 11:01:29 67

原创 JVM-垃圾收集-《深入理解Java虚拟机》学习笔记

垃圾收集判断对象已死?1、引用计数法给对象添加一个引用计数器。但是很难解决循环引用问题。2、可达性分析法通过一系列的 ‘GC Roots’ 的对象作为起始点,从这些节点出发所走过的路径称为引用链。当一个对象到 GC Roots 没有任何引用链相连的时候说明对象不可用。可作为GC Roots的对象:虚拟机栈(栈帧中的本地变量表)中引用的对象方法区中类静态属性引用的对象方法区中常量引用的对象本地方法栈中 JNI(即一般说的 Native 方法) 引用的对象虚拟机中内部的引用同步

2021-03-07 10:55:43 69

原创 JVM-对象的创建、内存布局、访问定位-《深入理解Java虚拟机》学习笔记

对象创建过程1、对象的创建过程:对象的创建过程一般是从new指令(JVM层面)开始的,整个创建过程如下:(1)首先检查new指令的参数是否能在常量池中定位到一个类的符号引用;(2)如果没有,说明类还没有被加载,则须先执行相应的类加载、解析和初始化;(3)如果有,虚拟机将在堆中为新生对象分配内存,并使用CAS保证操作原子性。分配内存方式有:指针碰撞和空闲列表;指针碰撞:如果Java堆是绝对规整的,所有用过的内存都放在一边,所有没用过的内存存放在另一边,中间存放一个指针作为分界点指示器。分配内存

2021-03-07 01:41:17 74 1

原创 Spring中Bean的自动装配

Bean的自动装配自动装配是Spring满足Bean依赖 的一种方式!Spring会在上下文中自动寻找,并自动给Bean装配在Spring中Bean的三种装配方式在xml中显示的装配在Java中显示装配隐式的自动装配Bean(重要方式)测试环境搭建XML方式实现装配beans.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/

2021-03-07 01:27:36 179 1

原创 IOC的推导实现和本质

IOC理论推导分析实现1、先写一个UserDao接口public interface UserDao { public void getUser();}2、再去写Dao的实现类public class UserDaoImpl implements UserDao { @Override public void getUser() { System.out.println("获取用户数据"); }}3、然后去写UserService的接口public

2021-03-07 01:23:09 73

原创 Redis实现乐观锁,

Redis实现乐观锁悲观锁:很悲观,认为什么时候都会出问题,无论做什么都会加锁!乐观锁:很乐观,认为什么时候都不会出问题,所以不会上锁!更新数据的时候去判断一下,在此期间是否有人修改这个数据获取verson更新的时候比较versionredis监视测试#正常执行成功情况127.0.0.1:6379> clear127.0.0.1:6379> set money 100OK127.0.0.1:6379> set out 0OK127.0.0.1:6379>

2021-03-05 01:38:02 115 1

原创 Redis的事务

Redis的基本事务Redis 事物本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行!一次性顺序性排他性Redis事务没有隔离级别的概念所有的命令在事务中,并没有直接被执行,只有发起执行命令的时候才执行Redis 单条命令保存原子性,但是事物不保证原子性!redis的事务开启事务(multi)命令入队()执行事务(exec)127.0.0.1:6379> multi # 开启事务OK127.0.0.1:6379(TX)>

2021-03-05 01:36:53 80 1

原创 Redis的三种特殊数据类型

三种特殊数据类型Geospatial朋友的定位,附近的人,打车距离计算?可以查询一些测试数据 http://www.jsons.cn/lngcodeinfo/0706D99C19A781A3操作命令命令描述Redis GEOHASH 命令返回一个或多个位置元素的 Geohash 表示Redis GEOPOS 命令从key里返回所有给定位置元素的位置(经度和纬度)Redis GEODIST 命令返回两个给定位置之间的距离Redis GEORADIUS 命令

2021-03-05 01:34:54 103 1

原创 Redis概述

Redis 是什么?Redis(Remote Dictionary Server)即远程字典服务,是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志型、Key-Value型数据库,并提供多种语言的APIRedis能干嘛?内存存储、持久化,内存中是断电即失、所以说持久化很重要(RDB、AOF)效率高,可以用于高速缓存发布订阅系统地图信息分析计时器、计数器(浏览量!)。。。特性多样化的数据类型持久化集群事务。。。性能测试redis-benchmar

2021-03-05 01:30:19 428 3

原创 NoSQL概述

为什么要使用Nosql处于大数据时代,对于大数据一般数据库难以处理。用户的个人的信息,社交网络,地理位置,用户自己产生的数据,用户日志等待爆发增长!NoSQL = Not Only SQL(不仅仅是SQL)泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区!暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速,Redis是发展的最快的,而且是 我们当下必须要掌握的技术。NoSQL特点方便扩展(数据之间

2021-03-05 01:25:45 449 1

原创 Web开发--使用Swagger

Swagger简介一:swagger是什么?Swagger是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器。这个解释简单点来讲就是说,swagger是一款可以根据resutful风格生成的生成的接口开发文档,并且支持做测试的一款中间软件。二:为什么要使用swaager?2.1:对于后端开发人员来说

2020-08-25 09:57:33 412

原创 java--锁的理解(非/公平锁,可/重入锁,自旋锁,悲/乐观锁,独享锁,共享锁)

公平锁与非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁,类似于排队买饭,先来后到,先来先服务,就是公平的,也就是队列非公平锁是指多个线程获取锁的顺序,并不是按照申请锁的顺序,有可能申请的线程比先申请的线程优先获取锁,在高并发环境下,有可能造成优先级翻转,或者饥饿的线程(也就是某个线程一直得不到锁),类似于允许排队加塞。。。二者区别公平锁:就是很公平,在并发环境中,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列中的第一个,就占用锁,否者就会加入到等待队列中,以后

2020-08-25 09:47:37 143

原创 linux命令学习----常用Linux命令

Linux命令学习常用Linux命令整理一、系统基本命令1.1 重启与关机1.2 帮助命令二、目录相关操作2.1 目录切换命令2.2 目录查看命令2.3 目录增删改查操作三、文件操作命令3.1 文件(增删改查)操作3.2 权限修改压缩和解压缩文件操作常用Linux命令整理一、系统基本命令1.1 重启与关机关机:halt 立刻关机poweroff 立刻关机shutdown -h now 立刻关机shutdown -h 10 10分钟后关机重启:reboot 立刻重启reboot -f 强

2020-07-28 16:49:37 81

原创 Java学习--动态绑定机制

动态绑定什么是动态绑定机制动态绑定过程注意什么是动态绑定机制动态绑定机制又称运行时绑定,意思就是说程序在运行时会自动选择调用的方法动态绑定过程1、编译器产刊对象的声明类型和方法名2、编译器将查看调用方法时提供的参数类型如果才方法表中存在一个与之参数类型完全匹配的方法,那么就选择这个方法3、如果时private方法、static方法、final方法或者构造器,那么编译器将可以准确地知道应该调用哪个方法。我们将这种调用方式称为“静态绑定”。与之对应的是,调用的方法依赖于隐式参数的实际类型,并且在运

2020-05-08 19:22:04 211

原创 学习编程——Java基础-值传递

值传递基本类型和引用类型数据存储在Java中声明一个基本类型,基本类型的值与基本类型的句柄信息一同存放在栈中。而声明一个引用类型时,引用类型的值放在堆中,而句柄信息和值在堆中的地址放在栈中。如图:值传递上简单的测试代码帮助我们理解:public static void exchange(int a,int b) { int c=a; a=b; b=c; }这里定义了...

2020-05-08 00:25:01 81

原创 前端相关--css弹性盒子布局

HTML前端常用--弹性盒布局flexflex类型的盒模型简要介绍弹性盒模型的配套属性flex类型的盒模型简要介绍CSS3为display提供了一个flex属性值,通过该属性值可以更好的实现多栏布局,将display设为flex即可实现弹性盒子布局。弹性盒布局是CSS3新增的功能,在早期该属性值曾用过box和inline-box,目前最新的属性值直接使用flex和inline-flex,其中...

2020-04-07 18:36:30 209

原创 常见的sql语句介绍

常见的sql语句sql的分类1、数据查询语句2、数据操作语句3、数据定义语句4、数据控制语句sql的分类根据操控的对象不同,sql语句可以大致分为两种,一种是针对数据库对象操作语句,另一种则是针对数据库内的数据的操作语句。实际上sql语言可以分为四大类:数据查询语句、数据操纵语句、数据定义语句,以及数据控制语句1、数据查询语句数据查询语句的基本架构是select……from……where...

2020-04-01 22:08:12 154

原创 数据结构--链表

数据结构链表相关链表简要介绍链表的增删操作,java实现链表类成员变量的声明链表的增加链表的删除链表简要介绍一、链表是一种链式存储的数据结构,根据指针的不同可以分为,单向指针链表、双向指针链表和循环指针链表,这里我们采用单向指针链表实现增加和删除。二、优缺点1、优点链表的插入和删除只需要修改指针,不需要移动其他元素链表的各个节点在内存中不要求连续分配,空间利用率高2、缺点存在没有连...

2020-03-31 21:26:06 64

原创 数据结构--数组

数组相关数组简要介绍数组的增删改查实现数组的增加数组的数据删除依据数组下标删除依据数值删除(两种删除思路)数组数据的查改数组简要介绍数组是一种线性排列的数据结构,并且数组的查询效率很高,而添加和删除的效率就较低。因为数组的数据是按照顺序存储在内存中连续的一段空间内的,所以我们可以通过数组下标来实现对数组中的数据访问。例如int []arr=new int[20];这条语句在java中相当于在...

2020-03-30 21:33:57 79

原创 前端基础HTML相关知识

前端相关知识前端开发的三个组成部分HTML部分标签介绍HTML部分标签展示代码及效果图前端开发的三个组成部分web前端开发,涉及三个重要的组成部分,一个是HTML,一个是CSS,还有一个是JavaScript。通俗的来讲,前端开发可以看做是房屋建造,HTML就相当于建造基础部分,比如某个位置建什么,里面包含什么家具等等;而CSS就相当于装修工具涂料,比例等等,目的是为了让原本的毛坯房,变得美观...

2020-03-28 16:28:50 69

原创 数据结构--栈

数据结构--栈栈的简要介绍栈的Java实现栈的简要介绍栈,是一种常用和重要的数据结构,是一种只能在一段进行插入和删除的表。表中允许插入和删除的地方成为栈顶。栈的主要特点时“后进先出”(FILO,即First in last out),每次进栈的数据元素都放在当且栈顶元素之上,成为新的栈顶元素,每次出栈的都是当前栈顶元素。栈的Java实现在Java 中利用数组实现的栈,包含两个方法入栈方法a...

2020-03-27 21:12:58 58

原创 Java基本数据类型相关知识

Java基本数据类型相关Java中的基本数据类型基本数据类型对应的位数和取值范围数据精确程度注意Java中的基本数据类型Java中有8种基本数据类型,分别是byte,short,int,long,float,double,char和boolean类型。而Java中的所有其他类型都是由这8种基本数据类型组装起来的,并且这些基本数据类型都可以使用byte类型来表示。例如:int类型,可以用4个by...

2020-03-27 20:47:25 116

原创 操作系统和编程语言学习相关

操作系统语言相关操作系统的基层语言及相关语言知识一、汇编语言二、C语言三、托管代码和非托管代码的区别四、脚本语言和非脚本语言操作系统的基层语言及相关语言知识一般操作系统的都是由汇编语言和C语言编写 而成的。一、汇编语言汇编语言是计算机的基层语言,是计算机处理器实际运行的指令的命令形式表示,而这意味着汇编语言将与处理器底层打交道,比如寄存器和堆栈等。二、C语言C语言是一门面向过程的、抽象...

2020-03-26 22:15:58 396

空空如也

空空如也

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

TA关注的人

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