自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IDEA/GoLand打开目录超级慢

IDE问题排查

2023-01-13 21:58:10 1523 1

原创 【NIO】DiscardServer

文章目录1、步骤2、Server3、ClientDiscard服务器仅读取客户端输入的数据,立马关闭信道后丢弃数据1、步骤生成服务器信道信道绑定ip、port设置为非阻塞并注册到选择器为接收模式select轮询已注册的就绪事件对就绪事件进行相应处理接收就绪,获取连接信道并设置非注册注册到选择器为读模式读就绪,获取连接信道读后直接丢弃数据注意:注册到选择器上的信道必须为非阻塞模式,文件信道不支持非阻塞就必定不能注册选择器2、Serverimport java.io.IOE

2022-03-25 19:51:15 561 1

原创 【局域网下多台机器共用一个公网IP是怎么定位的?】

主要通过静态NAT协议实现粗讲一下请求流程,水平不够,讲得不是太清晰客户端对外网发送了一个请求传输层记录了源端口号和目标端口号网络层记录了源ip和目标ip(如果是同一网段下,使用局域网ip就行了,如192.168.1.3请求192.168.1.7; 也可以192.168.1.3请求B公网ip)192.168.1.3请求192.168.1.7通过CIDR和子网掩码判断是一个网段下,然后通过ARP协议广播问192.168.1.7的MAC地址,没获取到表明没有,获取到了封装源mac和目标ma.

2022-01-11 21:40:16 4609

原创 【Calendar】before和after错误

在做一个需求的时候,需要获取日期区间里的每个年月日,于是使用了Calendar工具类结果发现死循环 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); Date start = sf.parse("2022-01-01"); Date end = sf.parse("2022-01-10");

2022-01-10 20:26:49 1047

原创 【操作系统】为什么要分段?为什么要分页?

今天被一位大佬问了一个问题大佬:说一下分段和分页的具体意义我:分段是将程序分为具有逻辑意义的不同大小的段,方便管理;分页是将物理空间分割成大小一定的一块块物理页,粒度小,内存利用率高,磁盘换出的消耗也小。。。。大佬:说一下分段的物理意义我:啊这,这还不够物理意义吗最后搜寻资料一番,分段被设计出来的最初目的是为了解决有限的地址线路条数的情况下可寻址更大的存储空间,真有你的嗷为什么要分段?分段要基于物理硬件的历史来说在8086处理器出来以前都是直接访问物理地址,当两个程序分配到同一个内存块是.

2021-11-24 20:11:53 3508

原创 【Redis】-替代Mybatis二级缓存

文章目录1、二级缓存1.1、cache使用1.2、原理2、Redis替代二级缓存2.1、获取ApplicationContext2.2、自定义cache实现类2.3、关联查询的缓存处理3、缓存优化策略3.1、对key进行优化1、二级缓存作缓存的对象类型需要实现序列化1.1、cache使用在dao层对应的mapper配置文件中使用cache标签即可开启二级缓存<cache/>缓存是key-value形式,key可以看作select语句(key还包含其他信息’)开启后,查询语句首

2021-10-31 14:36:55 495

原创 【LeetCode 热题 HOT 100】3. 无重复字符的最长子串

文章目录1、尝试暴力搓2、双指针滑动窗口(求子串的常客)原题链接给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3

2021-10-27 16:21:27 139 1

原创 【LeetCode 热题 HOT 100】1. 两数之和

文章目录思路代码原题链接给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,

2021-10-27 15:42:32 98

原创 【LeetCode 热题 HOT 100】2. 两数相加

文章目录思路代码原题链接给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。提示:每个链表中的节点数在范围 [1, 100] 内0 <= Node.val <= 9题目数据保证列表表示的数字不含前导零思路1、因为保证顺序不变,用尾插2、做加法自然考虑将进位传给前一位,因为数字逆序,所以交给链表后一

2021-10-27 15:33:41 86

原创 【JUC】-CAS详解

CAS(CompareAndSwap):比较并替换讲到CAS肯定要说到AtomicInteger等一系列原子类比如AtomicInteger自增操作时如何保证原值操作的其中就是利用了CAS自旋锁,CAS通过Unsafe来操作JVM本地方法操作内存指针完成其中一个重要方法 public final boolean compareAndSet(int expect, int update) { return unsafe.compareAndSwapInt(this, valueOff

2021-10-25 06:22:52 476 1

原创 【JUC】-volatile详解

volatile是Java虚拟机提供的轻量级同步机制,有三大特性:保证可见性,不保证原子性,禁止指令重排列JMM

2021-10-25 06:22:27 159

原创 JUC-三种等待唤醒方式

synchronized的wait和notifywait方法会释放对象锁资源后进入等待队列,等待被唤醒notify会唤醒等待队列中的单个线程 static Object objectLock=new Object();' new Thread(()->{ synchronized (objectLock){ System.out.println(Thread.currentThread().getName()+" come in");

2021-10-19 09:25:31 270

原创 SpringBoot2.3.x-JSR303效验不显示

版本2.3.7.RELEASE导入依赖Spring2.3.x的版本取消了JSR依赖包,需要导入 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> .

2021-09-03 22:47:37 337

原创 手撕源码之HashMap

文章目录一、原理分析二、分析源码1、默认参数2、领域参数3、构造函数一、原理分析 static class Node<K,V> implements Map.Entry<K,V> { final int hash; final K key; V value; Node<K,V> next;HashMap总体是一个Node数组,通过key计算hash值,hash通过路由算法定位存储在Node数组中No

2021-09-01 23:32:54 123

原创 JUC-AQS源码分析

文章目录阻塞park等待A线程执行完毕,释放锁前置知识CAS可重入锁LockSupport static final Node SHARED = new Node(); static final Node EXCLUSIVE = null; static final int CANCELLED = 1; static final int SIGNAL = -1; s

2021-08-17 16:06:36 147

原创 JUC-线程创建的四种方式+原理分析

文章目录一、继承Thread1、创建空线程2、创建Thread线程二、实现Runnable1、代码实现2、实现原理3、继承Thread和实现Runnable的优缺点三、实现Callable交给FutureTask1、Callable2、FutureTask3、RunnableFuture4、Future5、原理分析6、代码实现7、分析结果四、线程池1、原理分析2、代码实现一、继承Thread1、创建空线程 Thread thread=new Thread(); thread.star

2021-08-07 19:40:45 459

原创 Linux部署Nacos集群(各种踩坑)

环境NacosNginx 1.20Mysql 5.71、更换数据库因为每台Nacos自带嵌入式数据库,布置集群的话,三台Nacos数据不统一,所以使用同一数据库MySqlnacos安装目录的conf下有一个mysql脚本,生成nacos所需表nacos/conf//nacos-mysql.sql登录数据库mysql -u账户 -p密码create database nacos_config;use nacos_config;在该库下执行脚本source nacos/co

2021-07-27 14:26:51 1131

原创 Linux安装部署Nginx

文章目录1、yum安装Nginx运行所需依赖2、安装PCRE3、安装Nginx4、Nginx常用命令5、防火墙设置(80配过了可以不用配了)环境:CentOS7Nginx1.20.11、yum安装Nginx运行所需依赖yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel2、安装PCRE1、下载压缩包cd /usr/local/src/ #可根据查阅自己改版本w

2021-07-26 21:06:56 104

原创 负载均衡-轮询算法

轮询原理:服务集合services,服务集群总数size=services.size();当前接口请求cnt(每次请求cnt+1)获取服务service.get(cnt%size)如果服务集群有3个,- 127.0.0.1:8001- 127.0.0.1:8002- 127.0.0.1:8003第一次请求services[0%3=0] 127.0.0.1:8001第二次services[1%3=1] 127.0.0.1:8002第三次services[2%3=2] 127.0.0.1:

2021-07-23 23:28:07 190

原创 Spring相关依赖

1、核心依赖(缺少核心依赖 Spring就不能运行):spring-core:核心spring-context:读取全文srping-beans:管理beanspring-expressioncommons-logging:日志 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifa

2021-07-15 19:18:27 562 1

原创 SpringBoot(三)-Web开发

文章目录一、静态资源映射1、webjars2、访问当前项目编写的静态资源3、欢迎页4、图标二、thymeleaf1、引入依赖2、更改版本3、视图解析4、thymeleaf使用(1)添加命名空间(2)常用语法三、MVC配置拓展mvc配置、修改SpringBoot默认配置一、静态资源映射1、webjarswebjars官网被打成jar包的静态资源/webjars/**: 所有webjars资源都去 classpath:/META-INF/resources/webjars/ 下找根据we

2021-07-14 20:37:13 159

原创 Linux安装Redis与部署

文章目录1、官网下载tar.gz压缩包2、Linux下解压缩安装3、安装基本环境4、部署redis5、性能测试1、官网下载tar.gz压缩包Redis官网使用xftp等文件传输软件传输到服务器下的/opt目录2、Linux下解压缩安装tar -zxvf xxxtar -zxvf redis-6.2.4.tar.gz 3、安装基本环境因为redis是c++写的,需要基于gcc环境yum install gcc-c++进入安装好的redis目录cd xxx如果使用ls指令你会发现-

2021-07-13 21:19:28 100

原创 MySQL(五)-explain

文章目录一、作用二、语句三、字段分析1、id2、select_type3、type4、key、possible_keys、key_len5、ref6、rows7、Extra一、作用explain可以模拟优化器执行SQL语句,从而知道mysql是怎么执行你的SQL语句的二、语句explain SQLexplain select * from user;三、字段分析1、id如果是连接查询,id相同,执行顺序由上至下如果是子查询,id互不相同,id值越大,优先级越高,会被优先执行如果

2021-07-12 00:08:08 98

原创 MySQL(四)-索引为什么是B+树?

文章目录1、Hash2、数组3、二叉树4、红黑树5、B+树数据库索引,必须满足查询快,且排序的特性首先来看一下,常常用来索引的数据结构1、HashHash索引通过Hash算法建立hash表,任何的数据算出hash值后,都能够通过近似O(1)的效率查询到结果Hash两种常见算法:拉链法开放地址法但是因为hash是无序的,根本满足不了数据库排序以及范围查询2、数组数组不仅能够对数据进行排序,而且索引查询效率高,遍历全表也可以通过二分查询但是为什么不能当作数据库索引呢,

2021-07-11 19:59:24 97

原创 Linux三种安装

文章目录一、rpm二、解压缩三、yum在线安装一、rpmjdk为例1.java -version 查看是否有jdk2.如果没有jdk就直直接使用rpm文件进行安装rpm -ivh rpm包rpm -ivh jdk-8u291-linux-x64.rpm前往Oracle下载Linux安装文件jdkxxx.rpm然后使用如xftp等文件传输软件传输到服务器上,使用如上指令对rpm文件进行安装3.如果已有jdk,但是想换.rpm -qa|grep jdk #检测jdk版本信息jd

2021-07-09 14:00:11 133

原创 SpringBoot(三)-SpringData

文章目录一、dataSource1、jdbc依赖2、yaml配置数据源3、Test注入测试4、解析一、dataSource1、jdbc依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependen

2021-07-08 16:39:59 892

原创 IDEA配置DashBoard

版本IDEA2019.3流程1.打开.idea下的workspac.xml文件2.ctrl+f搜索文件下的RunDashboard组件3.如果有该组件,在标签下加 <option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set> </option&g

2021-07-04 20:49:41 516 1

原创 SpringBoot-整合Dubbo+Zookeeper

文章目录一、添加依赖和日志配置1、依赖2、日志配置二、Dubbo架构三、提供者服务1、编写服务接口2、提供者服务配置3、dubbo-admin监控查看服务四、消费者服务1、编写消费者使用提供者的方法2、配置3、运行主程序查看服务4、测试类测试远程调用整合dubbo和zookeeper的时候遇到了各种乱七八糟的错误,分享一下版本控制SpringBoot2.5.2一、添加依赖和日志配置1、依赖 <!--zookeeper客户端--> <dependency>

2021-06-27 16:48:01 315

原创 Linux上安装Docker并使用(含错误解决)

1. 检查linux内核版本号,docker需要大于3.10uname -r2. 安装dockeryum install docker3. 安装后输入y确定安装确定吗?[y/N]: y 4. 运行dockersystemctl start docker我遇到了Failed to start docker.service: Unit docker.service not found.错误查询docker版本docker -vDocker version 20.10.7, b

2021-06-22 18:30:17 1279

原创 SpringBoot(二)-配置文件与自动配置

文章目录一、配置文件注入1、properties和yaml例子2、实体类3、对应yaml4、绑定注解5、测试5、yaml换成properties6、@ConfigurationProperties与@Value区别6、@PropertySource(1)与@ConfigurationProperties(prefix = "person")搭配使用(2)与@Value搭配7、@ImportSource8、配置类代替配置文件二、配置文件占位符1、随机数2、可以使用占位符获取元素三、多环境Profiles配置1

2021-06-16 21:18:45 766

原创 SpringBoot(一)-入门介绍

一、父依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.1</version> </parent>父依赖包装了dependencies:启动boot的所有依赖

2021-06-16 00:43:14 128

原创 Mysql(三)-视图

文章目录一、视图介绍应用场景二、视图的优点三、视图的使用1、创建视图2、修改视图3、删除视图四、视图的数据操作五、表和视图对比一、视图介绍一种虚拟存在的表,使用视图时动态生成,其中只保留的SQL逻辑,并没有保存查询结果应用场景多个地方需要同样的查询结果该查询结果的SQL语句比较复杂# view_stu保存了 (select id,name from student) 这条语句create view stu_view as (select id,name from student) ;

2021-06-09 00:17:10 231

原创 MySQL(二)-事务

文章目录前置一、ACID原则二、使用事务1、Mysql样式2、Java中使用事务的样式3、回滚点三、隔离级别1、三个读问题2、隔离级别介绍看了点关于MySQL的面经,发现自己基础薄弱,回来补一下基础,顺便学习一下索引优化和数据库并发复习来源尚硅谷Spring事务链接:自己写的,可能总结不大好前置事务:一条或一组SQL语句的基本单位,要不同时执行成功,要不全部失败经典案例:A向B转账1000元,A的账户-1000元,B的账户+1000元# account表中:A money=3000

2021-06-08 00:31:45 193

原创 MySQL(一)-约束

一、常见约束1、格式create table 表名( 字段名 字段类型 约束1 约束2..);create table student( id int parimary key, name varchar(5) not null, sex enum('男','女') default '男' not null, exam_id int unique comment '准考证号' );2、六大约束not null :非空。字段不能为空default ‘val’:默认。如果没

2021-06-07 21:31:16 100

原创 java.sql.SQLException: Before start of result set常见场景

文章目录1、Exception2、ResultSet的next方法3、next原理:1、Exceptionjava.sql.SQLException: Before start of result set at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.j

2021-06-01 23:00:35 346 1

原创 Mysql服务的启动和停止

文章目录一、DOS1、DOS命令启动和停止二、计算机管理1、打开计算机管理2、双击服务和应用程序3、点击服务4、找到当初配置Mysql的服务名三、启动Mysql报错一、DOS1、DOS命令启动和停止net stop mysqlnet start mysql二、计算机管理1、打开计算机管理2、双击服务和应用程序3、点击服务4、找到当初配置Mysql的服务名三、启动Mysql报错ERROR 2003 (HY000): Can’t connect to MySQL server

2021-05-29 00:14:23 565 2

原创 SpringMVC学习(具体实现+底层原理)

一、依赖spring-web和spring-webmvc里的web有点不一样,所以mvc必须导spring-webmvc通过properties控制版本,方便改版本 <properties> <spring-version>5.3.6</spring-version> </properties> <dependencies> <dependency>

2021-05-25 23:29:15 143

原创 xml标签报错Element ‘xxxxx‘ cannot have character [chidren]

这种情况通常是因为从网页上复制过来的标签,里面会有中文字符和空格你需要删除那些多余的空格和字符

2021-05-23 00:44:11 213

原创 Spring整合Mybatis

一、所需依赖和静态过滤使用了properties指定版本,方便后期因为版本兼容问题而浪费时间 <properties> <spring-version>5.3.6</spring-version> <mybatis-version>3.5.7</mybatis-version> <mybatis-spring-version>2.0.6</mybatis-spring-ver

2021-05-18 12:32:15 80

原创 Mybatis动态SQL

文章目录0、表结构和实体类1、if2、choose,when,otherwise3、where(条件拼接)(1)普通where(2)自定义where(trim)4、set(修改拼接)(1)普通set(2)自定义set(trim)5、foreach批量插入List批量插入Map0、表结构和实体类CREATE TABLE blog( id VARCHAR(20) PRIMARY KEY, title VARCHAR(10), author VARCHAR(10), create_date DATE,

2021-05-16 15:41:01 74

空空如也

空空如也

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

TA关注的人

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