自定义博客皮肤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)
  • 收藏
  • 关注

原创 redis

一、五种数据类型二、缓存穿透、缓存击穿、雪崩缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来压力。缓存击穿: 指热点key在某个时间点过期的时候,而恰好在这个时间点对这个Key有大量的并发请求过来,从而大量的请求打到db。缓存雪奔: 指缓存中数据大批量到过期时间,而查询数据量巨大,请求都直接访问数据库,引起数据库压力过大甚至down机三、分布式锁的实现原理几乎每个互联网公司中都使用了分布式部

2022-07-13 09:47:38 99 1

原创 docker

目录1、docker介绍2、dockfile3、命令4、linux安装软件和docker安装软件的区别docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,容器完全使用沙箱机制(程序在一个受限的运行环境中)一个用于编写docker镜像生成过程的文件,总的来说dockerfile就是一个纯文本文件里面包含了一些指令而已(1)docker -composer假如,你有一个java镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次

2022-06-20 17:16:02 123

原创 nacos

介绍一下nacos作为注册服务中心和配置中心,在本地的使用方法,太过基础了,只适合入门级别的同学看1、下载安装启动(单机模式+mysql数据源)(1)下载地址下载压缩包地址:Releases · alibaba/nacos · GitHub这两个哪个都行,下载后解压(2)解压解压后如下:(3)数据库配置(mysql为例)在本地新建一个名叫nacos的数据库,然后在这个数据库下执行cofig目录下的这个sql文件内容(4)修改config 把这四行的注解去掉,也可以根据需求修改值 (5)修改启动的模式为单机模

2022-06-17 13:13:36 122

原创 springboot面试题

目录1、什么是springboot2、核心注解3、Spring Boot 中的 Starter4、SpringBoot 实现热部署5、Spring Boot 如何定义多套不同环境配置Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手@SpringbootApplication,它是个组合注解,其中有三个重要的注解Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依

2022-06-15 13:07:56 113

原创 ssm面试题总结

目录一、springMVC工作流程二、SpringMVC和Struts2的区别三、SpringMVC是不是单例模式四、如何指定拦截的是GET请求还是POST请求五、mybatis和hibernate的区别1、区别总览2、缓存机制六、Ajaxspring的比较多,单独拿出来写了一篇了spring框架面试题总结_巴啦啦小刺猬的博客-CSDN博客SpringMVC的核心控制器(也叫前端控制器是Servlet),而Struts2是filterSpringMVC是基于方法设计,一个类(其实是一个单例对象)可以处理多个

2022-06-14 17:26:20 303

原创 spring框架面试题总结

目录一、spring的概念1、什么是spring?2、七大模块是什么?3、spring中用到了哪些设计模式二、Bean1、生命周期(四个)2、bean的作用域三、IOC1、介绍2、IOC的注入方式3、IOC容器四、AOP1、介绍2、相关术语3、实现方式五、注解1、介绍2、重要的注解3、SpringMVC常用注解一个分层的IOC和AOP容量框架,spring的核心就是控制反转(IOC)和面向切面(AOP)优点:singleton(单例)、prototype(原型)、request、session、global

2022-06-14 13:59:22 253

原创 设计模式之代理模式(结构型模式)

目录1、介绍2、优缺点3、主要角色4、代码演示5、其他在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。优点:缺点:5、其他看到过一个比喻,觉得很贴切,能帮助理解代理类:猪八戒去找高翠兰结果是孙悟空变的,可以这样理解:把高翠兰的外貌抽象出来,高翠兰本人和孙悟空都实现了这个接口,猪八戒访问高翠兰的时候看不出来这个是孙悟空,所以说孙悟空是高翠兰代理类...

2022-06-12 10:46:55 87

原创 设计模式之工厂模式(创建型模式)

目录1、介绍2、主要角色3、代码演示定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂 方法使一个类的实例化延迟到其子类4、使用场景jdbc连接数据库,硬件访问,降低对象的产生和销毁使用简单工厂模式的客户端只需要传入工厂类的参数,不需要关心如何创建对象的逻辑,可以很方便地创建所需产品.........

2022-06-11 18:11:53 81

原创 设计模式之单例模式(创建型模式)

目录1、介绍2、特点3、懒汉式4、饿汉式单例模式是非常简单的一种设计模式,属于创建型模式,它提供了一种创建对象的最佳方式确保某一个类只有一个实例,而且自行实例化并向所有其他对象提供这个实例主要解决:一个全局使用的类频繁地创建与销毁。有两种实现模式,懒汉式和饿汉式被调用时,会判断对象是否已存在,只有第一次调用的时候会去创建这个实例是否线程安全:懒汉式本身是线程不安全的,在getInstance方法上加synchronized保证线程安全效率:加了锁,执行效率就低了4、饿汉式饿汉式一旦加载就创建一个单

2022-06-11 17:36:59 346

原创 数据库(面试向)

目录一、四大特性二、隔离级别1、数据库的并发问题2、四个隔离级别3、悲观锁和乐观锁三、查询语句中的执行顺序四、视图&临时表&子查询1、视图2、临时表3、子查询五、主从复制1、原理2、策略3、搭建4、优势六、mysql、DB2和Oracle的区别1、平台和性能2、database、user、schema3、分页查询4、处理临时表5、主键6、字符串的引号7、提交事务8、并发性9、日期转换10、空串七、存储过程八、索引1、优缺点2、需要建索引的情况3、不建议建索引的情况4、索引有哪几类5、索引的数据结构有哪些九、

2022-06-11 16:47:39 495

原创 001Linux常用命令

目录1、操纵目录或文件2、操作文件内容3、其他cd:(change directory)切换目录ls:(list)显示当前目录下的所有文件和目录mkdir(make directory)创建一个目录rmdir:(rmove directory) 删除一个目录rmdir:(rmove directory) 删除一个目录rm: (remove)删除目录或文件cp:(copy)复制文件,加-r可以复制目录mv:(move)mv t1 t2,将文件从t1移到t2中,或者重命名文件t1为t2(1)vivi 文件名:v

2022-06-10 10:01:10 66

原创 019JDK1.8新特性(java基础)

目录1、Lambda表达式2、Stream API3、Optional类 4、双冒号“::”5、接口default 关键字6、函数式接口(接口只含一个抽象方法) 7、时间和日期API8、HashMap性能提升9、IO流新增APIJava 8 是oracle公司于2014年3月发布,可以看成是自Java 5 以来最具革命性的版本。比较受重视的就是下面这些新特性,实际上还有js升级,注解升级等,不过主要关注这几些常用的新特性就够用了,尤其是lambda表达式和Stream API基于很多代码是有一定规律的,而且

2022-06-09 17:57:40 400

原创 018线程(java基础)

目录一、程序,进程,线程二、创建线程1、继承Thread类2、实现Runnable接口3、实现Callable接口4、线程池5、Springboot中使用线程池三、线程的生命周期 1、介绍五种状态2、五种状态之间的转换一个进程可以由多个线程组成,至少得包含一个线程当进程内的多个线程同时运行,这种运行方式称为并发运行有四种方式2、实现Runnable接口 实现Runnable接口 重写run方法 需要借助Thread类 将对象作为Thread构造方法的参数,调用start

2022-06-08 16:23:20 101

原创 017反射(java基础)

目录1、介绍反射2、常用的方法介绍3、使用反射4、动态代理反射就是把java类中的各种成分映射成一个个的Java对象在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制(1)获取class对象有三种方式(2)生成实例对象有两种方式第一种方式只支持无参构造,第二种方式允许有但是要注意,第二种方式,getConstructor方法要声明参数类型和个数,newInstance要传

2022-06-08 13:08:20 63

原创 016JVM(java基础)

目录一、介绍JVM二、内存分区三、垃圾回收机制(GC)1、GC介绍2、垃圾介绍3、垃圾判断算法(标记)(1)引用计数法(2)可达性分析法4、垃圾回收算法(回收)(1)标记-清除算法(2)标记-整理算法(3)分代收集算法(jdk1.8默认)四、类加载过程1、加载(1)类加载器(2)什么时候触发类加载2、验证3、准备4、解析5、初始化即java虚拟机(Java Virtual Machine)是一种抽象化的计算机,java可以跨平台运行最主要的原因就是因为有java虚拟机有栈、堆、方法区、PC寄存器存储的是线程

2022-06-07 15:37:38 85

原创 015Object类(java基础)

目录1、介绍Object类2.native关键字3、hashCode()方法 4、equals()方法5、clone()方法、深克隆浅克隆6、toString()方法7、notify()、notifyAll() 和 wait()8、finalize()方法9、getClass()方法Object是所有类的顶级父类,属于java.lang包看源码的时候发现,Object类的很多方法,被native关键字修饰了native关键字主要用于方法上 返回对象的hashcode,主要是为了一些哈希表的数据结

2022-06-07 13:56:57 83

原创 014枚举(java基础)

目录1、枚举的定义2、声明枚举3、常用的方法1、枚举的定义枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型枚举可以跟switch配合使用输出......

2022-06-06 16:35:59 51

原创 013IO流(java基础)

目录一、IO流介绍二、File1、介绍一下File类:java.io.File2、构造器:3、路径分隔符4、常用方法三、流的分类四、流的使用1、使用步骤2、使用说明3、使用示例因为不同的平台可能使用的路径分隔符不同,有用“\\”“、”\“”或者"/"的,为了解决跨平台的问题,java提供了File.seperator常量,能自动根据操作系统,动态使用不同的分隔符4、常用方法 public String getAbsolutePath():获取绝对路径 public boolean isDire

2022-06-06 13:20:07 100

原创 012排序查找算法(java基础)

目录一、排序算法1、冒泡排序2、快速排序3、插入排序4、选择排序二、查找算法1、顺序查找2、二分查找讲一些简单的排序和查找算法,等有空了再加一点一种简交换排序算法,以升序排序为例:如果在外层循环还没结束的时候,就已经排好序了,那其实整个程序就可以停止了,我们可以增加一个标志位记录,如果在某一轮外层循环执行时,所有数据都没有做位置交换,则终止排序比如说int a[] = { 2, 3, 0, 5, 6, 7, 8 };第一次排完为{2,0,3,5,6,7,8}第二次排完为{0,2,3,5,6,7,8}所

2022-06-06 09:30:28 174

原创 011集合(java基础)

目录一、集合框架图二、Set1、HashSet2、LinkedHashSet3、TreeSet三、List1、ArrayList2、LinkedList3、Vector四、Map1、HashMap(1)put()的实现原理(2)get()的实现原理(3)红黑树2、LinkedHashMap(有序)3、HashTable(线程安全&键值都不能null)4、TreeMap(有序)5、ConcurrentHashMap五、总结.

2022-06-02 16:10:29 92

原创 010循环和判断(java基础)

一、三种判断1、if 判断if判断有三种结构形式(1)ifif(关系表达式:布尔值) {语句体;}(2)if...elseif(关系表达式:布尔){语句体1;} else {语句体2;}(3)if...else if(可以有多个)...elseif(关系表达式1:布尔值){语句体1;}else if(关系表达式2:布尔值){语句体2;}.........

2022-05-25 19:54:04 110

原创 009数组(java基础)

目录一、介绍数组二、初始化的三种方式1、定义一维数组的三种方式(1)动态初始化(2)静态初始化(3)静态初始化的简化方式--直接赋值法2、定义二维数组二维数组三、数组元素的默认值四、数组元素的访问1、索引2、访问格式3、数组长度4、遍历数组(1)普通for循环(2)增强for循环(3)Arrays工具类toString(数组名)(4)Arrays.deepToString(多维数组名)五、数组长度不可变一、介绍数组一组相关变量的

2022-05-23 22:42:41 133

原创 008值传递和引用传递(java基础)

1、介绍值传递和引用传递引用传递(pass by reference)是指在调用方法时将实际参数的地址直接传递到方法中,那么在方法中对参数所进行的修改,将影响到实际参数。 值传递(pass by value)是指在调用方法时将实际参数拷贝一份传递到方法中,这样在方法中如果对参数进行修改,将不会影响到实际参数。2、java是值传递还是引用传递?Java是值传递当传的是基本数据类型时,传的是值的拷贝,对拷贝变量的修改不影响原变量 当传的是引用类型时,传的是引用地址的拷贝,但是拷贝的地址和真实地

2022-05-23 21:02:41 105

原创 007异常机制(java基础)

一、java异常机制介绍和Throwable类先看下面这张体系图,所有的异常都继承自Throwable类,主要有两个子类Error和Exception二、Error是程序无法处理的错误,表示运行应用程序中较严重问题,这种严重问题无法捕获三、ExceptionException 是是程序本身可以处理的异常,主要分为两类编异异常:检查型异常(IOException、SQLException、自定义异常) 运行时异常:非检查型异常(RuntimeException)1、编译异常

2022-05-22 16:25:17 154

原创 006抽象类和接口(java基础)

目录1、抽象类2、接口3、接口和抽象类的区别1、抽象类简言之,就是用abstract修饰的类抽象类规定:抽象类必须用public或procted 修饰(如果为private修饰,那么子类则无法继承,也就无法实现其抽象方法)。默认缺省为 public。 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。 抽象类中可以包含非抽象方法,但是有抽象方法的类必定是抽象类。 抽象类中的抽象方法只是声明

2022-05-22 13:24:33 66

原创 005栈、堆、方法区、常量池(java基础)

栈(局部变量和对象的引用):基本数据类型的变量数据/局部变量(例如int a=3中的a)(形参是局部变量)对象的引用(例如Thread t=new Thread();中的t)堆(new出来的对象)(垃圾回收器回收):new出来的对象成员变量方法区(共享的唯一元素):跟堆一样,被所有的线程共享。方法区中包含的都是在整个程序中永远唯一的元素,eg:class,static变量。常量池:字符串常量基本类型常量(public static final)字符串对象存哪儿

2022-05-21 10:23:46 219

原创 004变量、数据类型、运算符(java基础)

一、变量的定义和作用域定义格式:数据类型 变量名作用域:一对{ }之间有效注:使用前需要初始化值二、数据类型分为引用数据类型和基本数据类型引用数据类型 类(包括字符串String) 接口 数组 类型 符号 所占字节 数据范围 基本数据类型(8种) 数值型 整数 byte 1 -128~127(-2^7~2^7-1) short 2 -2^15~2^15-1 int ...

2022-05-20 16:21:49 144

原创 003修饰符(java基础)

一、修饰符介绍修饰符主要有两大作用,一是控制访问权限,二是实现一些其他的功能而访问类修饰符可分为:类修饰符、方法修饰符、变量修饰符二、访问控制修饰符有四类:public、protected、无修饰符、private可以修饰类、变量、方法和构造方法(注:private和protected不能修饰接口和类,内部类除外)修饰符 当前类 同包 子类(不同包) 其他包 public √ √ √ √ protected √ ..

2022-05-19 15:32:16 139

原创 002多态(java基础)

目录1、多态介绍2、编译时多态和运行时多态3、实现多态的三个重要条件4、多态的实现方式5、示例代码1、多态介绍多态是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。2、编译时多态和运行时多态编译时多态是静态的,主要是指方法的重载(overload),它是根据参数列表的不同来区分不同的方法,通过编译之后会

2022-05-19 14:29:42 99

原创 001面向对象(java基础)

1、面向过程与面向对象区别面向过程:按需求所需要的步骤实现并调用,强调的是功能的行为面向对象:将一类事务的共同特征抽象出来,包括数据抽象和行为抽象两方面,强调的是对象c属于面向过程的语言,c++和java是面向对象的语言2、面向对象的三大基本特征封装:隐藏不必要的属性和细节,要访问,必须通过已定义的方法 继承:从已有类,得到继承信息(包括属性和方法)的行为 多态:同样的对象引用调用同样的方法但是做了不同的事情(1)封装对外界隐藏细节,(2)继承子类拥有父类非 priva

2022-05-18 16:27:32 103

原创 JDK安装配置教程

目录一、首先介绍一下jdk二、下载安装JDK三、配置JDK四、测试有没有安装配置成功一、首先介绍一下jdkJRE(Java Runtime Envirnment):Java运行环境包括JVM(Java虚拟机)和Java程序所需的核心类库等,所以如果只是要运行一个java程序,就只需要安装jre即可JDK(Java Development Kit):Java语言的软件开发工具包jdk包含了java开发工具,也包含了JRE,所以作为开发人员,我们就需要安装jdk二..

2022-05-17 13:45:32 25781 2

空空如也

空空如也

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

TA关注的人

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