自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap原理及面试题(精髓)

HashMap集合简介HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突**(两个对象调用的hashCode方法计算的哈希码值一致导致计算的数组索引值相同)**而存在的(“拉链法”解决冲突)

2021-03-10 15:14:06 496

原创 原型,模板,策略,适配器模式

如果咱们拷贝的对象是不可变的,也就是说我这个对象只会查看,不会增删改,那么,直接用浅拷贝就好了,如果拷贝的对象存在增删改的情况,那么就需要使用深拷贝了。接着我们来看一下策略模式,策略模式呢也是非常简单,他就是定义一个主要的接口,然后很多个类去实现这个接口,比如说我们定义一个文件上传的接口,然后阿里云的上传类去实现它,腾讯云的上传类也去实现它,这样因为都是实现的同一个接口,所以上传类之间是可以在代码中互相替换的。这个模板方法模式,简单来说就是一句话:在父类中定义业务处理流程的框架,到子类中去做具体的实现。

2024-03-19 20:52:46 739

原创 JAVA代理模式梳理

代理模式:为其他对象提供一种代理,用以控制对这个对象的访问;我们使用代理对象,可以在不修改目标对象的基础上,增强主业务逻辑;比如说我们的系统中有一个登录接口,我们要对这个登录接口做一下功能迭代,比如说加一个统计登录耗时的接口,但是我们要加的这个功能不能去修改原有的代码逻辑,就是你不能在登录接口里面直接加这个统计代码,那怎么呢?那就可以通过代理对象来做,通过代理对象,可以在不修改目标对象的登录接口的基础上,还能增强这个业务的逻辑。

2024-03-17 21:09:57 806 1

原创 设计原则、工厂、单例模式

简单来说,设计模式就是很多程序员经过相当长的一段时间的代码实践、踩坑所总结出来的一套解决方案,这个解决方案能让我们少写一些屎山代码,能让我们写出来的代码写出来更加优雅,更加可靠。所以设计模式的好处是显而易见的。当然,设计模式不仅仅能够让我们写出更好的代码,他还有些好处,我们在读框架、中间件源码的时候,我们会设计模式,就能够更好的去理清源码的整个逻辑,读起来也会轻松不少。面试的时候,设计模式还是问的比较多的,所以呢,设计模式学得好,工作少不了。

2024-03-17 20:21:46 1185

原创 软件设计原则

【代码】软件设计原则。

2023-12-25 13:55:33 386

原创 数据库高级- 数据库索引概述及设计原则

我们平常所说的索引,如果没有特别指明,都是指B+树(多路搜索树,并不一定是二叉的)结构组织的索引。其中聚集索引、复合索引、前缀索引、唯一索引默认都是使用 B+tree 索引,统称为 索引。所以每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型的。在原B+Tree的基础上,增加一个指向相邻叶子节点的链表指针,就形成了带有顺序指针的B+Tree,提高区间访问的性能。索引的设计可以遵循一些已有的原则,创建索引的时候请尽量考虑符合这些原则,便于提升索引的使用效率,更高效的使用索引。

2023-06-29 12:34:42 384

原创 docker 安装及部署应用

*-v $PWD:/usr/local/tomcat/webapps:**将主机中当前目录挂载到容器的webapps。**-p 8080:8080:**将容器的8080端口映射到主机的8080端口。

2023-06-23 21:24:55 1058

原创 vmware 安装centos 7 查不到ip

接着来查看ens33网卡的配置:vi /etc/sysconfig/network-scripts/ifcfg-ens33 注意vi后面加空格。最后重启网络 就好啦 sudo service network restart。发现ens33 没有inet 这个属性,那么就没法通过IP地址连接虚拟机。这里把no改成yes。

2023-06-22 22:43:34 218

原创 mysql Using join buffer (Block Nested Loop) join连接查询优化

Block Nested Loop算法是Join Buffer的一种实现方式,它的特点是使用了类似于嵌套循环的方式进行查询,即将一个表的每一个数据块都分别和另一个表进行匹配,最终得到连接结果。使用Block Nested Loop算法需要注意两个表的大小,一般情况下,对于大小不一的两张表,应该把小表放在外面循环,而把大表放在内部循环,这样可以有效提高执行效率。在执行连接操作时,MySQL需要将两个表的数据进行组合,通常是先取出一张表的数据,然后根据指定条件在另外一张表中进行查找。

2023-05-25 13:29:24 2818

原创 rocketmq启动连接失败

按照官网 http://rocketmq.apache.org/docs/quick-start/ 实例,启动报错:RemotingTooMuchRequestException: sendDefaultImpl call timeout。

2023-02-07 14:47:27 1426

原创 Java常见基础面试题

抽象类里面可以用普通方法,而接口中的方法全部都是抽象的;在应用范围上来说,接口往往在程序设计的时候,用来定义程序模块的功能,方便各模块协同工作;抽象类是对相似类进行抽象,形成一个抽象的父类可供重用!事务是一系列的数据库操作,是数据库应用的基本逻辑单位,事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。事务具有如下特性:(其中原子性最为重要,必须掌握)

2023-01-30 11:33:05 455

原创 Java 基础_框架阶段核心面试题

框架阶段

2022-09-04 22:34:42 262

原创 docker应用部署

Docker 应用部署一、部署MySQL搜索mysql镜像docker search mysql拉取mysql镜像docker pull mysql:5.6创建容器,设置端口映射、目录映射# 在/root目录下创建mysql目录用于存储mysql数据信息mkdir ~/mysqlcd ~/mysqldocker run -id \-p 3306:3306 \--name=cp_mysql \-v $PWD/conf:/etc/mysql/conf.d \-v $

2022-05-11 13:49:19 134

原创 Java 基础中的基础算法题

1.输入一个数字,判断其是否为水仙花数。 public static void main(String[] args) { //接受控制台输入信息 Scanner scanner = new Scanner(System.in); System.out.println("请输入一个数"); //获取控制台输入的数字 int number = scanner.nextInt(); //取的百位数

2022-03-11 17:31:23 4901 2

转载 maven jar包手动导入依赖

https://blog.csdn.net/fenglongmiao/article/details/80703618

2021-11-08 16:05:24 281

原创 基金基础知识

基金概括与种类什么是基金官方定义:全称叫证券投资基金,作为一种投资工具,把众多投资人的资金汇集起来,由基金托管人(列如银行)托管,让专业的基金管理公司管理和运作,通过投资股票和债券等投资,获取收益。基金的种类按是否课赎回划分开放式基金:发行总额不固定,总数随时增减,规定场所申购和赎回;封闭式基金:份额事先确定好,封闭期内总数不变,只能通过证卷市场买卖;按投资对象划分货币基金货币基金是聚集社会闲散资金,由基金管理人运作,基金托管人保管资金的一种开放式基金,专门投向风险小的货

2021-10-13 23:44:13 377

原创 股票基础知识

股票的分类我国上市的股票有A股、B股、H股、N股、S股等的区分。(不用记太多我们要做的一般只有沪深A股)。我们的股票一般就是沪深A股:说白了在上海和深圳交易的A股。60开头的股票 ---- 上证A股0开头的股票 ----深圳A股3开头的股票 ---- 创业板(证券公司去开通)688开头的股票 —科创版(最低50w资金)后期可能政策改变。股票的交易时间股票的交易时间每周一到周五上午09:30到11:30 下午13:00到15:00周六周日休市不交易(国家发定节假日不交易)(集合竞价

2021-10-12 00:17:15 9050

原创 面试高频题目

一般是根据我自己简历上写的来问的1.spring1.常用注解有哪些,怎么用的2.解释ioc和aop,并说明实际运用(特别是aop的运用)3.自定义注解怎么写 自己查一下4.怎么获取bean中的对象2.springboot1.什么是springboot2.它的执行流程3.核心注解有哪些(并说明用途)4.自定义端口怎么弄3.springmvc1.执行流程(核心组件)2.谈谈mvc模式是什么(什么好处)3.@Controller和@RestController的区别4.前后

2021-10-09 15:59:26 105

原创 前端知识总结 1

软件流程开发最初所有的开发工作都是由后端工程师完成的,随着业务越来越繁杂,工作量变大,于是我们将项目中的可视化部分和一部分交互功能的开发工作剥离出来,形成了前端开发。大约从2005年开始正式的前端工程师角色被行业所认可,到了2010年,互联网开始全面进入移动时代,前端开发的工作越来越重要。前端开发软件 VS Code下载和安装 地址 https://code.visualstudio.com/Download配置中文插件首先安装中文插件:Chinese (Simplified) Langu

2021-09-30 16:30:04 231

原创 mybatis-plus笔记

分页插件MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能添加配置类 创建config包,创建MybatisPlusConfig类package com.atguigu.mybatisplus.config;@Configuration //可以将主类中的注解移到此处@MapperScan("com.atguigu.mybatisplus.mapper") public class MybatisPlusConfig {}添加分页插件 配置类中添加@Bean配

2021-09-30 14:25:29 117

原创 尚融宝-项目介绍和前后端核心框架

项目介绍尚融宝是一个网络借贷信息中介服务平台,为个人投资者、个人融资用户和小微企业提供专业的线上信贷及出借撮合服务。行业案例:人人贷、 拍拍贷项目架构前台网站系统项目业务流程需要掌握的知识技术栈1、后端SpringBoot 2.3.4.RELEASESpringCloud Hoxton.SR8:微服务基础设施 - 服务注册、服务发现、服务熔断、微服务网关、配置中心等SpringCloud Alibaba 2.2.2.RELEASEMyBatis Plus:持久层框架和代码生成.

2021-09-30 14:15:31 1638

原创 notepad++ 忘记保存文件

在C:\Users\Administrator\AppData\Roaming\Notepad++\backup这个路径里面保存着 用txt打开

2021-09-29 08:59:25 343

原创 基于springboot的电脑商城

首页用户登录注册商城首页修改密码功能个人资料修改头像上传地址管理订单管理购物车创建订单文档项目地址:getee百度网盘:链接:https://pan.baidu.com/s/1E4tFimsDYCVaeozr0I_11Q提取码:tmlb...

2021-09-27 19:48:11 657

原创 基于Netty的网络编程项目实战

Netty介绍与相关基础知识Netty提供异步的事件驱动的网络应用程序框架和工具,用以快速开发高性能,高可靠性的网络服务器和客户端程序。Netty提供了简单易用的API基于事件驱动的编程方式来编写网络通信程序更高吞吐量学习难度低BIO、NIO、AIO 介绍与区别...

2021-06-18 15:45:24 384 2

原创 Java -jar 如何在后台运行项目

java -jar babyshark-0.0.1-SNAPSHOT.jar这样运行的话会有一个问题,就是我们一关闭当前窗口就会停止运行项目,要想解决这个问题,就需要在后台运行。nohup java -jar babyshark-0.0.1-SNAPSHOT.jar > log.file 2>&1 &上面的2 和 1 的意思如下:0 标准输入(一般是键盘)1 标准输出(一般是显示屏,是用户终端控制台)2 标准错误(错误信息输出)将运.

2021-06-02 16:52:24 219 3

原创 mysql面试题

存储引擎InnoDB支持事务支持行级锁支持外键对数据准确性要求比较高,插入数据比较多的情况下MyISAM不支持事务支持表锁不支持外键对数据查询比较多,更新比较少的情况下MEMORY不支持事务支持表锁不支持外键索引索引:是帮助mysql快速获取数据的一种数据结构,是本质就是一种数据结构按功能划分普通索引 :最基本的索引,没有任何限制唯一索引:索引列的值必须唯一,但允许有空值主键索引:一种特殊的唯一索引,不允许有空值组合索

2021-05-05 20:40:45 147

原创 spring的bean生命周期及循环依赖

spring框架中bean的创建过程是怎么样的首先,简单来说的话,spring框架的bean经过四个阶段,实例化->属性赋值->初始化->销毁然后具体来说,spring中的bean经过了一下几个步骤实列化: new xxx(); 两个时机 1.当客户端容器申请一个bean时 2.当容器在初始化一个bean时发现还需要依赖另一个bean。beanDefinition对象保存设置对象属性(依赖注入):spring通过BeanDefinition找到对象依赖的其他对.

2021-05-05 00:55:37 265

原创 中间件

Reids:Redis支持的数据类型?(1)String字符串:格式: set key valuestring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。 (2)Hash(哈希)格式: hmset name key1 value1 key2 value2Redis hash 是一个键值(key=>value)对集合。Redis hash是

2021-03-20 11:13:07 517

原创 Java笔试编程题

递归斐波那契数列问题(第n个数=第n-1个数+第n-2个数) 有一列数有如下规律,1,1,2,3,5,8,13,21,34…,求第20位数是多少,要求使用递归实 现。public class demo1{ public static void main(String[] args){ System.out.prinlnt(digui(20)); } public static int digui(int val){ if(val==1||val==2){ return 1;

2021-03-12 22:24:33 190

原创 MYSQL索引及存储引擎

什么是索引索引(index)是帮助MySQL高效获取数据的数据结构(有序)。索引优势劣势优势提高数据检索的效率,降低数据库的IO成本。通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。劣势索引列也是要占用空间的。虽然索引大大提高了查询效率,同时却也降低更新表的速度,如对表进行INSERT、UPDATE、DELETE。因为更新表时,MySQL 不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。索引结

2021-03-10 15:12:57 126

原创 JVM内存模型

栈内存栈越大越好吗?不是的,如果空间大一些,占用资源较多,而线程数量象队要少,这么效率就会很低

2021-03-10 15:00:17 113

原创 JAVA面试题基础

Map的四种遍历方式 HashMap<String,String> hashMap=new HashMap<>(); hashMap.put("sp001","手机"); hashMap.put("sp002","电脑"); hashMap.put("sp003","平板"); hashMap.put("sp004","电视"); //第一种遍历方式:通过键找值遍历map集合

2021-03-10 14:50:40 111

原创 MySQL经典50道练习题

#–1.学生表 #Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别CREATE TABLE `Student` ( `s_id` VARCHAR(20), s_name VARCHAR(20) NOT NULL DEFAULT '', s_brith VARCHAR(20) NOT NULL DEFAULT '', s_sex VARCHAR(10) NOT NULL DEFAULT '', PRIM

2021-03-10 14:49:50 210 2

原创 5招搞定导入maven依赖问题

如果导入maven依赖报红线,首先删除maven重新导入。如果重新导入还是报错,找到本地导入依赖的文件夹搜索*lastupdate,将搜索出来的文件全部删掉,重新导入。如果还是报错,找到maven仓库的配置conf下的settings.xml,删掉自己配置的镜像下载去中央仓库下载。如果还是报错,只能说明是maven名称错误,修改代码...

2021-02-05 11:19:05 695

原创 zookeeper分布式锁

Zookeeper 数据模型ZooKeeper 是一个树形目录服务,其数据模型和Unix的文件系统目录树很类似,拥有一个层次化结构这里面的每一个节点都被称为: ZNode,每个节点上都会保存自己的数据和节点信息节点可以拥有子节点,同时也允许少量(1MB)数据存储在该节点之下节点可以分为四大类PERSISTENT 持久化节点EPHEMERAL 临时节点 :-ePERSISTENT_SEQUENTIAL 持久化顺序节点 :-sEPHEMERAL_SEQUENTIAL 临时顺序节点 :-es

2021-02-04 13:49:33 122

原创 ElasticSearch总结

倒排索引倒排索引:将各个文档中的内容,进行分词,形成词条。然后记录词条和数据的唯一标识(id)的对应关系,形成的产物。ElasticSearch数据的存储和搜索原理使用数据库查询存在的问题性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低功能弱:如果以”华为手机“作为条件,查询不出来数据使用ElasticSearch使用“手机”作为关键字查询生成的倒排索引中,词条会排序,形成一颗树形结构,提升词条的查询速度使用“华为手机”作为关键字查询华为 :1,3

2021-02-02 23:03:37 422 1

原创 springcloud总结

Spring Cloud 与 Dubbo 对比Spring Cloud 与 Dubbo 都是实现微服务有效的工具。dubbo性能高、SpringCloud功能全。Dubbo 只是实现了服务治理,而 Spring Cloud 子项目分别覆盖了微服务架构下的众多部件。Dubbo 使用 RPC 通讯协议,Spring Cloud 使用 RESTful 完成通信,Dubbo 效率略高于 Spring Cloud。Eureka是一个用于注册微服务的注册中心注册每个微服务的IP地址信息,进而解耦微服

2021-01-28 17:46:51 204 4

转载 SpringBoot单元测试失败,报错InvalidTestClassError

转载 : https://www.cnblogs.com/changemax/p/12311457.html

2021-01-27 19:18:44 458

转载 mybatis-plus时遇到maven依赖报红线

转载https://blog.csdn.net/weixin_42329970/article/details/106444028

2021-01-25 14:37:22 1898

原创 RabbitMQ高级深入

消息的可靠投递在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。confirm 确认模式return 退回模式rabbitmq 整个消息投递的路径为:producer(生产者)—>rabbitmq broker(MQ中间件)—>exchange(交换机->通过routing key绑定queue)—>queue—>consumer(消费者绑定exchang

2021-01-23 21:32:32 198

mysql数据优化详细教程

在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。频繁的创建关闭连接,是比较耗费资源的,我们有必要建立 数据库连接池,以提高访问的性能。在编写应用代码时,需要能够理清对数据库的访问逻辑。能够一次连接就获取到结果的,就不用两次连接,这样可以大大减少对数据库无用的重复请求在应用中,我们可以在应用中增加 缓存 层来达到减轻数据库负担的目的。缓存层有很多种,也有很多实现方式,只要能达到降低数据库的负担又能满足应用需求就可以。 因此可以部分数据从数据库中抽取出来放到应用端以文本方式存储, 或者使用框架(Mybatis, Hibernate)提供的一级缓存/二级缓存,或者使用redis数据库来缓存数据 。负载均衡是应用中使用非常普遍的一种优化方法,它的机制就是利用某种均衡算法,将固定的负载量分布到不同的服务器上, 以此来降低单台服务器的负载,达到优化的效果。通过MySQL的主从复制,实现读写分离,使增删改操作走主节点,查询操作走从节点,从而可以降低单台服务器的读写压力。 分布式数据库架构适合大数据量、负载高的情况,它有良好的拓展性和高可用性。

2023-06-28

MYSql高级教程-存储引擎和SQL优化

MySQL参数调优及数据库锁 MySQL常用工具日志及综合案例 存储引擎和SQL优化 数据库安装及数据库对象 最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。 2) 服务层 第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如 过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定表的查询的顺序,是否利用索引等, 最后生成相应的执行操作。如果是select语句,服务器还会查询内部的缓存,如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。 3) 引擎层 存储引擎层, 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行

2023-06-28

MYSQL 高级篇之数据库搜索引擎及原理

在创建索引时, 可以指定在删除、更新父表时,对子表进行的相应操作,包括 RESTRICT、CASCADE、SET NULL 和 NO ACTION。 RESTRICT和NO ACTION相同, 是指限制在子表有关联记录的情况下, 父表不能更新; CASCADE表示父表在更新或者删除时,更新或者删除子表对应的记录; SET NULL 则表示父表在更新或者删除的时候,子表的对应字段被SET NULL 。 针对上面创建的两个表, 子表的外键指定是ON DELETE RESTRICT ON UPDATE CASCADE 方式的, 那么在主表删除记录的时候, 如果子表有对应记录, 则不允许删除, 主表在更新记录的时候, 如果子表有对应记录, 则子表对应更新 。InnoDB 存储表和索引有以下两种方式 : ①. 使用共享表空间存储, 这种方式创建的表的表结构保存在.frm文件中, 数据和索引保存在 innodb_data_home_dir 和 innodb_data_file_path定义的表空间中,可以是多个文件。②. 使用多表空间存储, 这种方式创建的表的表结构仍然存在 .frm

2023-06-28

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

TA关注的人

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