自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring框架进阶

1.BeabFactory和·ApplicationContext接口的区别(考察对spring核心接口类的架构是否了解)BeanFactory是spring框架最底层接口,定义如何创建获得Bean,主要是面向spring本身的。ApplicationContext继承BeanFactory接口,对功能进行扩展spring中实际实现classPathxmlApplicationContext这个类进行具体实现bean的创建和管理BeanFactory主要是面向spring框架存在的,不支持web和Aop功能

2022-09-29 16:53:05 182 1

原创 mysql事务

默认情况下,mysql使用自动提交模式(变量autocommit为ON),这意味着,只要操作dml语句mysql会隐形自动提交。会话系统变量和全局系统变量的区别在于全局变量的修改会影响整个服务器,而会话变量修改只会影响当前会话(数据库连接)事务就是一次数据库操作中若干单元的管理,事务管理的目标是完整性,一次中的若干操作要么都成功,要么都失败。控制多个事务在并发读写时,保证互不影响,隔离级别共有四种(读 未提交,读 已提交,可重复读,串行化)SET GLOBAL autocommit=1;

2022-09-23 16:24:45 83

原创 课间10分钟回顾线程

为了完成某种目的用某种语言完成的一组指令集合(静态代码),安装到硬盘上运行时的程序,是操作系统分配的最小单位线程是进程的最小执行单元,是操作系统进行任务调度的最小单元主线程负责启动程序(类似于java中的main方法,启动Java主线程)一个进程可以包含多个线程,线程不能脱离进程而存在一个进程中的所有线程共享一个进程中的资源一个线程只能属于一个进程。

2022-09-22 15:58:30 152

原创 缓存穿透 缓存击穿 缓存雪崩

发起查询请求——缓存(缓存中有,直接返回)——没有——数据库查找但是使用缓存在一些极端情况下会出现问题:所查询的数据在缓存和数据库中都没有,查询后也不再缓存中存,每次还是回去访问数据库数据库没有,缓存也没有问:缓存穿透的解决方法?答:1.本来数据库就没有,将查询出来的空值存放到缓存中,key=null2.对查询参数进行验证数据库中有数据,只是某个热点key在某个时间段上过期了,此时有大量查询请求到达(查询不加锁),查询缓存没有,一起向数据库发起请求,导致数据库崩溃数据库有,缓存没有问:缓存击穿解决方法答:1

2022-06-17 15:10:21 72

原创 Redis进阶

问:redis是单线程还是多线程?答:不同的版本有区别,6.x版本之前是真正意义上的单线程:处理客户端连接和执行操作的命令都是由一个线程执行的。6.x之后的版本引入了多线程,处理客户端请求由专门的线程处理,执行命令还是单线程问:为什么单线程模式速度非常快?答:1.数据存储在内存中,读取速度快,CPU不是性能瓶颈2.结构简单,key-value底层是哈希结构,查询操作速度是O(1)3.采用IO多路复用,非阻塞IO模型,提高链接访问率4.单线程执行命令,不存在线程切换,节省开销,而且线程安全IO对象序列化,对象

2022-06-16 16:08:57 164

原创 SpringBoot集成使用Redis

jedis是Redis官方推出的一款面向java的客户端,提供了跟多借口供java语言使用。可以在Redis官网下载。Spring-Data-Redis是spring大家族的一部分,提供了Spring在应用中通过简单的配置访问Redis服务,对Redis底层开发包(Jedis,JRedis,RJC)进行了高度封装,RedisTemplate提供了Redis各种操作。1.连接池自动链接提供了一个高度封装的RedisTemplate类2.针对Jedis客户端封装归类了大量的API方法,将同一类型封装为opera

2022-06-15 18:28:00 124

原创 Redis基础

Redis主要是用来做数据缓存的,Redis运行在内存中,数据也保存在内存中缓存———让数据离程序更近一般把Redis叫做中间件Not only SQL(不仅仅是SQL),泛指非关系型的数据库关系型数据库:使用标准的SQl语言进行操作非关系型数据库:没有固定的关系,以键值对的形式存储key—value menuLIst:[{},{},{}] key:hash不是相互替代的,是相辅相成的是键值对存储在内存中,也可以存储在硬盘上存储结构简单,性能高,易于扩展,支持多语言,保证操作原子性支持多种数据类型不能代替,

2022-06-15 17:03:12 1231

原创 简单了解JVM

jvm作用把一套程序在不同的平台上运行,可以实现自动的内存管理,自动的垃圾回收。jvm分为四大结构:1.类加载系统:负责从硬盘上加载字节码文件。2.运行时数据区:存储时的数据,分为栈、方法区、堆、本地方法栈、程序计数器3.执行引擎:负责将字节码解释为真正的机器码。4.本地方法接口:负责调用操作系统。本地方法。1.类加载系统问:什么是类加载?答:字节码存在硬盘上,需要运行时,由类加载系统负责将类的信息加载到内存中(方法区),为每个类创建一个Class类的对象,使用的是Cla

2022-06-14 19:45:41 370

原创 成员变量和局部变量

成员变量与局部变量的区别有哪些:变量:程序执行时,在某个范围内值可以改变的量,变量就是内存中的一小块区域。成员变量:方法外部,类内部定义的变量。局部变量:类的方法中的变量。成员变量和局部变量的区别作用域成员变量:很对某个类有效局部变量:只在某个小范围内有效存储位置成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在内存中局部变量:在方法被调用或语句被执行时存在,存储在栈内存中,方法被调用完或语句结束后就自动释放生命周期成员变量:随着对象的创建而存在,随

2022-05-26 13:48:39 934

原创 面向对象和面向过程的区别

面向过程:优点:性能比面向对象高,因为类调用需要实例化,资源开销比较大。例如:单片机、嵌入式开发。缺点:没有面向对象易维护,易复用,易扩展。面向对象:优点:易维护,易复用,易扩展,因为具有封装,继承,多态的特性,系统耦合度更低,更加灵活。缺点:性能低于面向对象...

2022-05-26 11:53:28 54

原创 static的独特之处

static的主要意义是在于创建独立于具体对象的域变量或者方法。以至于即使没有创建对象,也能使用属性和调用。static关键字还有一个比较关键的作用就是用来形成静态代码块以优化程序性能。static代码块可以置于类中的任何地方,类中可以有多个static代码块。在类被初次加载出来时,会按照static代码块的顺序来执行,并且只会执行一次。为什么说static快可以优化性能,因为它的特性是只能在类加载的时候执行一次。因此static代码块会放一些只执行一次的代码。static int num=200

2022-05-25 16:54:42 171

原创 this与super的区别

super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函 数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)this:他代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的型参与类中的成员数据同名,这时需要用this来指明成员变量名)super()和this()类似,区别是super()在子类中调用父类的构造方法,this()在本类中调用本类的其他构造方法super()和this()均需要放

2022-05-23 15:31:21 64

原创 Oracle JDK 和 OpenJDK 的对比

1. Oracle JDK版本将每三年发布一次,而OpenJDK版本每三个月发布一 次;2. OpenJDK 是一个参考模型并且是完全开源的,而Oracle JDK是 OpenJDK的一个实现,并不是完全 开源的;3. Oracle JDK 比 OpenJDK 更稳定。OpenJDK和Oracle JDK的代码几乎 相同,但Oracle JDK有更多的 类和一些错误修复。因此,如果您想开发企 业/商业软件,我建议您选择Oracle JDK,因为它经过 了彻底的测试和稳 定。某些情况下,有些人提到在使

2022-05-23 14:55:09 3267

原创 Java中的字节码

字节码Java源代码经过虚拟机编译器编译后产生的文件(即扩展为.class的文件),他不面向任何特定的处理器,只面向虚拟机。采用字节码的好处JAVA语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时保留了解释型语言可移植的特点。所以Java程序运行时效率比较高,而且由于字节码并不针对一种特定的机器,因此Java程序无需重新编译便可在多种不同的计算机上运行。Java中的编译器和解释器Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟机 器。这

2022-05-23 14:50:05 421

原创 Java概论

何为编程编程就是让计算机为解决某个问题而使用某种程序设计语言编写代码,并最终得到结果的过程。为了使计算机能了解人的意图,人就需要把解决问题的思路,方法,手段通过计算机能够理解的方式告诉计算机,让计算机能根据人的指令去一步一步完成指定的任务,...

2022-05-23 14:29:31 87

原创 leetcode 1 两数之和

方法一:暴力枚举class Solution { public int[] twoSum(int[] nums, int target) { int n = nums.length; for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { if (nums[i] + nums[j] == target) { ...

2022-03-30 16:11:06 49

原创 AOP 的基本概念

连接点(Joinpoint):类中可以被增强的方法,这个方法就被称为连接点切入点(pointcut):类中有很多方法可以被增强,但实际中只有 add 和 update 被增了,那么 add 和 update 方法就被称为切入点(实际实现的连接点)通知(Advice): 通知是指一个切面在特定的连接点要做的事情(增强的功能)。通 知分为方法执行前通知,方法执行后通知,环绕通知等.切面(Aspect):把通知添加到切入点的过程叫切面.目标(Target): 代理的目标对象(要增强的类)代理(

2022-03-30 16:08:35 84

原创 AOP 概述

AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过 预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续,是软件开发中的一个热点,也是 Spring 框架中的一个重 要内容。利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各 部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP、OOP 在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP (面向对象编程)针对业务处理

2022-03-30 15:57:48 93

原创 leetcode 1 两数之和

方法一:暴力枚举class Solution { public int[] twoSum(int[] nums, int target) { int n = nums.length; for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { if (nums[i] + nums[j] == target) { ...

2022-03-30 15:52:42 56

原创 final关键字

final 用于声明属性,方法和类。属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期都不能 修改。方法:子类里不可以重写。类:不能被定义为抽象类或是接口,不可被继承。final属性赋值 在声明时同时赋值,往往与static 一起使用。声明时不赋值,必须在构造方法中 逐一赋值。总的原则:保证创建每一个对象的 时候,final属性的值是确定的。private int index;private static final double pai=3.14;private

2022-03-19 20:54:08 55

原创 面向对象特征--多态

多态 同一种事物,在不同时刻表现不同的状态多态存在的三个必要条件 要有继承(包括接口的实现)(前提条件) 要有重写(前提条件) 父类引用指向子类对象• 当编译期类型是父类,运行期类型是子类时,被称为父类引用指向子类对象class Animal{ ……}class Cat extends Animal{ ……}class Dog extends Animal { ……}Animal x = new Cat() //Animal 的引用指向Cat的对象●多态环境下对成员方法的调..

2022-03-19 20:48:04 61

原创 面向对象特征--继承

继承:继承是面向对象程序设计不可缺少的设计思想,是实现代码可重 用的根基,是提高代码可扩展性的主要途径。 ● 继承是从已有的类中派生出新的类,新的类能吸收已有类的属性和行为, 并能扩展新的能力。 ● 在JAVA中使用extends关键字来表示继承关系。 ● JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个 直接父类。 ● 继承之后子类可以调用父类的所有非私有属性和非私有方法● 何时使用继承? ● 继承与真实世界类似 只要说“猫是动物” 狗也是动物 ...

2022-03-19 20:45:06 49

原创 面向对象特征-继承

继承:继承是面向对象程序设计不可缺少的设计思想,是实现代码可重 用的根基,是提高代码可扩展性的主要途径。 ● 继承是从已有的类中派生出新的类,新的类能吸收已有类的属性和行为, 并能扩展新的能力。 ● 在JAVA中使用extends关键字来表示继承关系。 ● JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个 直接父类。 ● 继承之后子类可以调用父类的所有非私有属性和非私有方法● 何时使用继承? ● 继承与真实世界类似 只要说“猫是动物” 狗也是动物符合is-a关系的设计,使用继

2022-03-19 20:41:30 70

原创 面向对象2

Java面向对象2目标:●对象与引用●static关键字●代码块●包●访问权限修饰符●面向对象特征–封装●this关键字对象与引用:Java 语言中除基本类型之外的变量类型都称之为引用类型。Java中的对象是通过引用对其操作的.例如: 我们有一个自定义类为Car(汽车类)class Car{String color;String name;String model;}Car car= new Car();通常把这条语句的动作称之为创建一个对象,其实,它包含了三个动作。

2022-03-19 20:00:06 31

原创 面向对象1

面向对象和面向过程的设计思想java是面向对象的语言object oriented programming面向对象(oop)面向过程和面向对象都是语言设计思想案例:把大象放到冰箱1.面向过程:关注具体的流程,一步一步实现解决问题(1)开冰箱();(2)装大象();(3)关门();2.面向对象:先设计,对现实客观事物进行分类,创建出类(在类中定义功能),创建出具体的对象,让对象去做具体的事冰箱类{开门();装大象();关门();}大象类{。。。。

2021-12-17 13:46:47 46

原创 Java关键字

boolean 基本数据类型之一,布尔类型break 提前跳出一个块 byte 基本数据类型之一,字节类型case 用在switch语句之中,表示其中的一个分支 char 基本数据类型之一,字符类型 class 声明一个类const 保留关键字,没有具体含义continue 回到一个块的开始处 default 默认,例如,用在switch语句中,表明一个默认的分支do 用在do-while循环结构中 double 基本数据...

2021-12-07 13:01:18 109

原创 Java语言体系

什么是javajava是一门编程语言,而且是一门面向对象的编程语言。Java语言发展史1991年,提出java相关想法1995年,sun公司正式上架java1.02004年,java1.5上架2008年,sun公司被Oracle公司收购JAVA语言的特点1.开源性(免费)2.面向对象3.平台无关性对于Java程序,只需要开发一次,就可以在不同的平台(操作系统)上运行JVM平台相关性4.交互式特性5.多线程机制6.动态的内存管理机制7.安全性..

2021-12-07 12:55:52 291

空空如也

空空如也

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

TA关注的人

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