自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

诗和远方

千里之行,始于足下 !

  • 博客(167)
  • 收藏
  • 关注

原创 SpringMVC 学习整理

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。M:Model(模型层)是指工程中的JavaBean,作用是处理数据。JavaBean分为两类实体类Bean:专门存储业务数据业务处理Bean:专门处理业务逻辑和数据访问,比如service和dao对象V:View(视图层):指工程中的html或jsp等页面,作用是与用户进行交互,展示数据C:Controller(控制层):指工程中的servlet,作用是接收请求和响应浏览器MVC的工作流程。

2023-06-18 09:28:33 2141

原创 Maven 概述及下载安装

Maven是Apache软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具。

2023-05-26 14:40:40 920

原创 Python基础(五)文件、异常、模块

自定义模块就是创建一个py结尾文件,里面可以添加变量,函数,类等,以便我们使用# 自定义模块就是创建一个py结尾文件,里面可以添加变量,函数,类等,以便我们使用 # 导入自定义模块与导入内置模块一样的用法 import my_modulemy_module . test(1 , 2) # 导入不同模块的同名功能,只会时候最后导入的那个模块的功能 from my_module import test from my_module import test。

2023-05-12 11:43:36 153

原创 Python基础(四)数据容器

列表的特点:可以容纳多个元素(2**63 - 1),可以存储不同类型的元素,数据是有序存储的,允许重复数据,可以增删改查。

2023-05-11 11:47:33 879

原创 Python基础(三)函数

函数就是组织好的,可重复使用的,用来实现特定功能的代码段。好处:提高代码复用性,减少代码冗余,提高开发效率。函数需要先定义后使用,参数不需要时可以省略,返回值不需要时也可以省略。

2023-05-10 13:52:46 581

原创 Python基础(二)基础语法

字符串的三种定义方式 单引号、双引号、三引号 string = 'str' string = "apple" string = """banana""" # 字符串内如果包含单引号或者双引号如何处理 car = '"你好"' print(car) car = "'hello'" print(car) # \ 进行转义 car = "\"hello\""

2023-05-09 16:43:34 582

原创 Python基础(一)Python简介与下载安装

从 Python2 到 Python3 是一个大版本升级,有很多不向下兼容的差异,导致很多 Python2 的代码不能被 Python3 解释器运行,2020 年开始,Python 官方停止对 Python2 的维护,所有老代码都会超过保质期。Python 的官方定义:Python 是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。Python 在通用应用程序、自动化插件、网站、网络爬虫、数值分析、科学计算、云计算、大数据和网络编程等领域有着极为广泛的应用。五、python 下载与安装。

2023-05-06 11:34:32 69

原创 Redis 学习整理

redis 缓存框架

2022-08-27 07:08:25 494

原创 Spring 5 学习整理

Spring 是一个轻量级的IOC容器框架

2022-08-27 07:06:29 399

原创 2021-11-03

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-11-03 16:04:16 174

原创 Spring面试题

推荐博客:https://blog.csdn.net/a745233700/article/details/809597161. Spring是什么Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。主要包括以下七个模块:Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和

2021-07-23 07:36:15 14893 1

原创 redis面试题

1. redis支持的数据类型有哪些String(字符串)格式:set key value一个键最大能存储512MB是二进制安全的,意思是string可以包含任何数据,比如jpg图片或者序列化的对象Hash(哈希)格式:hmset name key1 value1 key2 value2是一个键值(key=>value)对集合是一个string类型的field和value的映射表,特别适合用于存储对象List(列表)格式:lpush name value列表是简单

2021-07-23 07:35:37 306

原创 mysql 面试题

1. 数据库的三范式是什么?什么是反范式?第一范式(1NF):数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。第二范式(2NF):满足1NF后要求表中的所有列,都必需依赖于主键,而不能有任何一列与主键没有关系(例如订单表只能存储订单信息,商品表只能存储商品信息,订单表要是存储了商品信息,则违反了第二范式)。第三范式(3NF):满足2NF后,要求:表中的每一列都要与主键直接相关,而不是间接相关(表中的每一列只能直接依赖于主键,其它非主键列不能相互依赖)范式可以避免数据冗余

2021-07-23 07:32:18 1164 1

原创 Mybatis面试题

推荐博客:https://blog.csdn.net/a745233700/article/details/809771331. 什么是Mybatis(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高。(2)作为一个半ORM框架,MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的

2021-07-23 07:31:56 228 1

原创 JVM面试题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K55lVLAd-1626996601169)(D:/%25E6%259D%25A8%25E6%2596%25B9%25E8%25B6%2585/java-skill-tree/Java%2520%25E6%258A%2580%25E8%2583%25BD%25E6%25A0%2591.assets/20210425101434404.png)]1. 详解JVM内存模型程序计数器:用来存放指向下一条指令的执行地址,如果执行的

2021-07-23 07:30:12 286 2

原创 并发编程面试题

1. 进程和线程有什么区别进程:进程是程序的一次动态执行过程,是操作系统进行资源分配和调度的一个独立单元,由程序、数据和进程控制块组成。线程:线程是程序执行中一个单一的顺序控制流程,是程序执行流线程是程序执行的最小单位,进程是操作系统分配资源的最小单位进程由一个或者多个线程组成,线程是一个进程中代码的不同执行路线进程之间相互独立,但同一个进程下的线程共享程序的内存空间及一些进程级别的资源线程上下文切换要比进程上下文切换快很多2. 并发和并行并发:是指两个或多个事件在同一时

2021-07-23 07:29:50 548 1

原创 RabbitMQ 面试题

1. RabbitMQ的优点和缺点优点解耦:系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码异步:将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度削峰:并发量大的时候,请求可以先转发到消息队列中,然后MQ再处理请求缺点系统可用性降低:如果MQ出问题,导致业务系统出问题系统复杂性增加:要多考虑很多方面的问题,比如一致性问题、如何保证消息不被重复消费,如何保证保证消息可靠传输等2. RabbitMQ基础概念介绍Broker:rabbitmq

2021-07-13 12:59:14 234

原创 面试123

JVM并发编程MySQLMySQL 数据类型1. 整数类型类型大小范围(有符号)范围(无符号)用途TINYINT1 byte(-128,127)(0,255)小整数值SMALLINT2 byte(-32 768,32 767)(0,65 535)大整数值MEDIUMINT3 byte(-8 388 608,8 388 607)(0,16 777 215)大整数值INT或INTEGER4 byte(-2 147 483 648,

2021-07-06 19:13:16 450

原创 并发编程系列面试题

什么是可重入锁可重入锁又名递归锁,是指同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁,前提是锁对象得是同一个对象,不会因为之前已经获取过锁还没释放而阻塞。Java中 显示锁ReentrantLock 和 隐式锁Synchronized 都是可重入锁,它的好处是可一定程度避免死锁。/** * @Description: 同步代码块演示可重入锁 * @date Date : 2021年06月06日 10:58 */public class ReEnterLockTest {

2021-06-06 16:52:11 133

原创 千里之行,始于足下

2021-05-11事务是什么?作为单个逻辑工作单元执行的一系列操作,这一系列操作要么全部执行成功,要么全部执行失败。事务的四大特性(ACID)?原子性(Atomicity):事务是一个不可分割的逻辑工作单元,事务中的一系列操作要么全部成功,要么全部失败。一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态。我们假设用户A和用户B两个人的账户加起来有5000块钱,那么不管A和B之间如何转账,事务结束后两个人的账户加起来还得是5000块钱,这就是一致性状态。隔离

2021-05-11 19:22:12 241

原创 HashMap 源码分析

基础入门1、数组的优势和劣势优势:数组的内存地址是连续的,每个元素内存大小相同,并且有索引,查找的速度非常快劣势:在数组中间新增或者删除元素,需要移动大量元素,效率低应用场景:增删操作少,查询多的场景2、链表的优势和劣势优势:链表的内存不是连续的,每个元素通过指针相连,增加或者删除的时候只要改变元素中的指针即可,效率高劣势:链表查询需要从头开始遍历比较慢,时间是0(N),链表越长,查询越慢,除非刚好查的是第一个。3、散列表有什么特点散列表,又称hash表,是根据key值而进行直接访

2021-04-26 19:12:34 188

原创 JAVA基础之泛型

基础入门1、数组的优势和劣势优势:数组的内存地址是连续的,每个元素内存大小相同,并且有索引,查找的速度非常快劣势:在数组中间新增或者删除元素,需要移动大量元素,效率低应用场景:增删操作少,查询多的场景2、链表的优势和劣势优势:链表的内存不是连续的,每个元素通过指针相连,增加或者删除的时候只要改变元素中的指针即可,效率高劣势:链表查询需要从头开始遍历比较慢,时间是0(N),链表越长,查询越慢,除非刚好查的是第一个。3、散列表有什么特点散列表,又称hash表,是根据key值而进行直接访

2021-04-26 18:21:16 110

原创 jvm 内存结构

JVM内存结构程序计数器(Program Counter Register)定义:程序计数器是用于存放下一条指令地址的地方。作用:存放下一条jvm指令的执行地址,如果执行的是 Native 方法,计数器值为Undefined。特点:线程私有不会存在内存溢出(OutOfMemoryError)Java 虚拟机栈(Java Virtual Machine Stacks)定义:每个线程运行时所需要的内存,称为虚拟机栈;每个栈由多个栈帧(Frame)组成,一个栈帧对应着一次方

2021-04-25 10:20:19 777

原创 位运算

一、与运算(&):两位都为1,结果才为1,否则为00&0=0 0&1=0 1&0=0 1&1=1二、或运算(|):两位都为0,结果才为0,否则为10|0=0 0|1=1 1|0=1 1|1=1三、异或运算(^):两位相同为0,相异为10^0=0 0^1=1 1^0=1 1^1=0四、取反(~):0变1,1变0~0=1 ~1=0五、左移(<<):高位舍弃,低位补02 转二进制 0000 0000 0000 0000 0000 00

2021-04-21 09:41:23 103

转载 MyBatis-Plus 简介

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lambda 表

2021-03-12 10:33:25 275

原创 每天进步一点点 2020/09/24

面试三连1、ArrayList 和 Vector 的区别是什么?Vector 是线程安全的,ArrayList 是非现场安全的,因此性能上 ArrayList 高发生扩容时,ArrayList 扩容1.5倍,Vector 扩容2倍2、进程 和 线程 的区别?进程:指系统中正在运行的一个程序,拥有独立的内存单元,系统进行资源分配和调度的基本单位线程:是CPU调度和分派的基本单位,包含在进程中,是进程实际运作单位,一个进程至少有一个线程3、什么是守护线程?守护线程是程序运行的时候在后台

2020-09-24 18:16:49 248

原创 每天进步一点点 2020/09/23

面试三连1、String、StringBuffer、StringBuilder 的区别是什么?String 是字符串常量,每次操作都会生产新的对象,会对系统性能产生影响,适用于少量字符串操作的情况;StringBuilder 是字符串变量,非线程安全,推荐单线程环境下使用StringBuffer 也是字符串变量,线程安全,推荐多线程环境下使用2、String str=“dog” 与 String str=new String(“dog”) 一样吗?不一样,因为内存的分配方式不一样。Str

2020-09-23 17:36:16 218

原创 每天进步一点点 2020/09/22

面试三连1、Java 中数据类型有哪些?基本数据类型:整型(byte,short,int,long)、浮点型(float,double)、字符型(char)、布尔型(boolean)引用数据类型:数据、类、接口2、JDK 和 JRE 有什么区别?JDK:Java 开发工具包,包含jre、编译器javac和其它一些开发工具,主要给Java程序员使用的JRE:Java 运行时环境,包含jvm和java基础类库,运行java程序使用的3、Java 中 final 关键字的作用是什么?fi

2020-09-22 17:12:09 184

原创 每天进步一点点 2020/09/21

面试三连1、 Java 面向对象的特征有哪些?封装:隐藏对象的属性和实现细节,对外提供访问方法,提高了数据的安全性。抽象:从众多的事物中抽取出共同的、本质性的特征继承:子类可以拥有父类的属性和方法,提高代码的复用性多态:一个接口,多种不同的实现方式2、== 与 equals 的区别?==:变量是基本类型的时候,比较的是值,变量是引用类型的时候,比较的是引用equals:默认情况下比较的是引用,重写了之后,比较的是值3、HashMap 和 HashTable 的区别?句子三连W

2020-09-20 22:30:59 150

原创 大话数据结构之算法的基本概念

算法算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法的特性输入输出:算法具有零个或多个输入,至少有一个或多个输出。有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每个步骤都在可接受的时间内完成。确定性:算法的每一个步骤都具有确定的含义,不会出现二义性。可行性:算法的每一步都必须是可行的,也就是说,每一步都可以通过执行有限次数完成。算法设计的要求正确性:指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题

2020-08-24 16:49:45 153

原创 大话数据结构之基本概念和术语

数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。不管是文字、图片、还是视频,最终都会转化为计算机认识的符号,并让计算机处理数据元素是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。比如:人类中,人就是数据元素;畜类中,鸡就是数据元素。相当于Java中的对象数据项一个数据元素可以由若干个数据项组成。是数据不可分割的最小单位。相当于Java中的属性数据对象是性质相同的数据元素的集合,是数据的子集。比如人类就是一个数据对

2020-08-21 17:51:30 159

原创 每日⑤题 2020/8/20

什么是分布式系统一个业务分拆多个子业务,部署在不同的服务器上。 然后通过一定的通信协议,能够让这些子业务之间相互通信。什么是CAP理论指的是一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。Consistency 一致性:指的是所有节点在同一时间的数据完全一致。一致性可以根据一致的程度不同,分为强、弱、最终一致性三类。强一致性:对于数据库而言就是数据更新之后能立马同步到其它数

2020-08-20 15:31:04 192

原创 每日⑤题 2020/8/14

说一说mvcc中的隐藏字段InnoDB存储引擎在每行数据的后面添加了三个隐藏字段:DB_TRX_ID(6字节):表示最近一次对本记录行作修改(insert | update)的事务ID。至于delete操作,InnoDB认为是一个update操作,不过会更新一个另外的删除位,将行表示为deleted。并非真正删除。DB_ROLL_PTR(7字节):回滚指针,指向当前记录行的undo log信息DB_ROW_ID(6字节):随着新行插入而单调递增的行ID。理解:当表没有主键或唯一非空索引时,inno

2020-08-14 13:42:42 153

原创 每日⑤题 2020/8/13

SpringBoot 自动配置的原理是什么SpringBoot的启动类上有一个@SpringBootApplication ,这是SpringBoot核心注解,是一个复合注解它里面有一个重要注解 @EnableAutoConfiguration 开启自动配置,也是一个复合注解@EnableAutoConfiguration里面有一个关键注解@Import(AutoConfigurationImportSelector.class)导入AutoConfigurationImportSelector类,

2020-08-13 19:24:07 122

原创 Web基本概念

Web开发的相关知识静态Web:指任何时间访问内容都一致的Web界面动态Web:指访问内容随时间改变的Web界面(一般涉及到与数据库交互)静态web技术:html/css动态web技术:JSP/Servlet、ASP、PHP等Java中,所有动态Web资源开发技术统称为JavaWebWeb应用程序一个Web应用程序包含多个静态web资源和动态web资源,包括例如:java程序、JSP文件、html文件、cs文件、js文件、支持jar包、配置文件等。web应用程序开发完成后,若想要被外界

2020-08-13 08:12:36 206

原创 Java 四大元注解

@Target@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)public @interface Target { /** * 注解可作用的位置 */ ElementType[] value();}public enum ElementType { /** 接口、类、枚举 */ TYPE, /** 字段、枚举的常量 *

2020-08-12 17:18:48 174

原创 每日⑤题 2020/8/12

说一说sql优化查询优化,尽量避免全表扫描,首先考虑在查询条件和排序字段上添加索引避免select *,需要哪些字段就返回哪些字段尽量避免设置可空列,这会使MySQL难以优化引用了可空列的查询,它会使索引、索引统计和值更加复杂使用模糊查询时,避免以%开头,否则该列索引将失效。若不以%开头,该列索引有效不要使用列号,否则会增加不必要的解析时间如果业务上不需要去重,优先使用UNION ALL,否则使用UNION,UNION ALL只是将结果简单的合并,UNION会将各查询子集的记录做比较,效率上U

2020-08-12 11:21:57 131

原创 每日⑤题 2020/8/11

面向对象的特征封装:隐藏内部实现细节,对外提供操作方法,有利于提高程序的安全性和可维护性继承:类的复用,只能单继承,单可以多重继承,构造方法和private修饰的不能继承多肽:父类引用指向子类对象抽象:定义规范,可以多实现如何适当的添加索引频繁作为查询条件且过滤性好的字段应该创建索引更新频繁的字段不应该创建索引排序字段应该添加索引关联查询的关联字段添加索引对聚合函数的聚合字段添加索引,可以提高聚合函数的效率== 和 equals 的区别是什么== 对于基本类型比较的是值,对

2020-08-11 18:30:11 153

原创 每日⑤题 2020/8/10

sleep和wait的区别sleep是Thread类中方法;wait是Object类中的方法sleep不会释放锁;wait会释放锁并且会加入到等待队列中sleep不依赖于synchronized同步监视器;wait需要依赖synchronized同步监视器sleep不需要被唤醒;wait如果不指定时间需要被别人唤醒进程和线程的区别进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位一个进程可以有多个线程,但至少有一个线程同一进程的线程共享本进程的地址空间和资源,而进程之间的地址

2020-08-10 17:30:26 137

原创 每日⑤题 2020/8/8

HashMap 底层原理是什么HashMap是一个键值对形式的集合,源码中每一个键值对用Node<K,V>表示,Node<K,V>是一个内部类,实现了Map.Entry<K,V>,Node内部类中有4个属性,分别是hash、key、value、next,key是键,value是值,next存储的是下一个元素的引用HashMap的数据结构是 数组+(链表或红黑树),数组查询效率高,增删效率低,链表查询效率低,增删效率高,HashMap使用这两种相结合,使增删查的效率都

2020-08-08 16:17:42 153

空空如也

空空如也

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

TA关注的人

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