自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM垃圾回收机制

垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。 如何找到程序里的垃圾 引用计数法 给每个对象添加一个计数器RC,当有地方引用该对象时计数器加1,当引用失效时计数器减1。用对象计数器是否为0来判断对象是否可被回收。缺点:无法解决循环引用的问题。 先创建一个字符串,String m = new String(“jack”);,这时候 “jack” 有一个引用,就是m

2020-10-10 17:03:50 156

原创 MySQL行锁、表锁、间隙锁解析

一、准备工作 drop table if exists test_innodb_lock; CREATE TABLE test_innodb_lock ( a INT (11), b VARCHAR (20) ) ENGINE INNODB DEFAULT charset = utf8; insert into test_innodb_lock values (1,'a'); insert into test_innodb_lock values (2,'b'); insert into t

2020-09-25 09:29:59 452 1

原创 MySQL索引失效原理

索引B+树图 单值索引B+树图 单值索引在B+树的结构里,一个节点只存一个键值对。 如图 联合索引B+树图 由数据库的a字段和b字段组成一个联合索引 从本质上来说,联合索引也是一个B+树,和单值索引不同的是,联合索引的键值对不是1,而是大于1个。 a, b 排序分析 a顺序:1,1,2,2,3,3 b顺序:1,2,1,4,1,2 大家可以发现a字段是有序排列,b字段是无序排列(因为B+树只能选一个字段来构建有序的树) 一不小心又会发现,在a相等的情况下,b字段是有序的。 大家想想平时编程中我

2020-09-18 11:33:04 2228

原创 SpringCloud面试常见问题

1.SpringCloud和Dubbo SpringCloud和Dubbo都是现在主流的微服务架构 SpringCloud是Apache旗下的Spring体系下的微服务解决方案 Dubbo是阿里系的分布式服务治理框架 从技术维度上,其实SpringCloud远远的超过Dubbo,Dubbo本身只是实现了服务治理,而SpringCloud现在以及有21个子项目以后还会更多 所以其实很多人都会说Dubbo和SpringCloud是不公平的 但是由于RPC以及注册中心元数据等原因,在技术选型的时候我们只能二者选其

2020-09-17 19:21:23 200

原创 SpringCloud常见问题

一、导入maven依赖坐标 在导入maven坐标一定要看清楚jar坐标 不能将 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 结果写成了错误示范: artifactId>spring-cloud-netflix-eureka-client</artifactId> 在写成maven坐标的时候一边都要有starter的那种依赖坐标 二、Method has too many Bo

2020-09-17 19:15:17 351

原创 String、StringBuffer、StringBuilder

String、StringBuffer、StringBuilder 一直是 java 面试中较为热点的问题,一般作为一个开场问题。那么这三者之间有什么区别,如何根据场景来选择使用,本文将基于三者的源码、性能、以及面试常问点来进行分析。 一、String、StringBuffer、StringBuilder 底层源码 String类 看一下 String 类的类图,它实现了 CharSequence 接口,也就是说 String 是 CharSequence 类型. 它的底层是被 final 修饰的字符

2020-09-11 22:34:10 217

原创 MySQL性能优化—索引

步骤: //建表 CREATE TABLE IF NOT EXISTS staffs( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(24) NOT NULL DEFAULT "" COMMENT'姓名', age INT NOT NULL DEFAULT 0 COMMENT'年龄', pos VARCHAR(20) NOT NULL DEFAULT "" COMMENT'职位', add_time TIMESTAMP

2020-08-29 21:38:37 137

原创 JavaWeb学习总结

第一部分:Servlet servlet简介 1.servlet 是什么? a)就是一个java 类。. b)服务器端的小程序。 c)作用是处理用户请求 2.servlet 的三种实现方式: a)实现 Servlet接口| b)继承 GenericServlet类 c)继承 HtpServlet类 3.Servlet的部署 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XM

2020-08-25 14:53:59 677

原创 MySQL:explain

一、Explain 用法 explain模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 语法:Explain + SQL 语句;如:Explain select * from user; 会生成如下 SQL 分析结果,下面详细对每个字段进行详解 二、id 是一组数字,代表多个表之间的查询顺序,或者包含子句查询语句中的顺序,id 总共分为三种情况,依次详解 id 相同,执行顺序由上至下 id 不同,如果是子查询,id

2020-08-16 10:17:53 179

原创 leetcode刷题 34

给定一个按照升序排列的整数数组 nums,和一个目标值 target。 找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: [-1,-1] */ //方法1 线性查找 public int[] searchRange1(int[] nums, int ta

2020-08-02 19:08:59 181

原创 JSON基础解析教程

JSON:JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式. 用处: 将Java中的对象 快速的转换为 JSON格式的字符串. 将JSON格式的字符串, 转换为Java的对象. 优势: 具有良好的可读和便于快速编写的特性。 业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持) JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 JSON作为数据是目前网络中主流的数据传输格式之一,应用十分广泛,说

2020-07-28 14:53:36 179

原创 多线程笔记

进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间 线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行,一个进程最少有一个线程 线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分成若干个线程 线程调度的方式分为分时调度和抢占式调度 分时调度:所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间 抢占式调度:优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Jav

2020-07-24 21:28:40 182

原创 通过IO类将自定义的类集合存储到本地进行读取

假设自定义类为Book public class Book{ String name; String info; } 将Book对象存到集合中 ArrayList<Book> bookArrayList = new ArrayList< >( ); 此时若要将集合存储到本地,并进行读取,则需要对Book类实现Serializable接口 public class Book implements Serializable{ String name; String info

2020-07-24 21:15:53 139

原创 在未排序的数组中找到第 k 个最大的元素

:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4 //方法一:使用Arrays工具类 public static int findKthLargest1(int nums[], int k) { //1.排序 Arrays.sort(nums);

2020-07-19 15:00:06 3233

原创 常用类库常用方法整理

java.lang.Math: 常用方法: Math.abs(num); //返回num绝对值 Math.max(num1,num2);//返回num1和num2间的最大值 Math.min(num1,num2);//返回num1和num2间的最小值 Math.floor(double1);//返回小于等于double1的double型最大整数值 Math.random返回带有正号的 double值,大于或等于 0.0且小于 1.0 常用于生成随机数 int num = (int)(Math.random(

2020-07-16 10:56:46 212

原创 登山选队长问题

今天同学们相约一起爬山游玩,为了更好的进行这场活动,大家准备推举 一个人作为出游的临时队长。为了体现合理公平,大家提出了一个比较有趣的 规则。所有人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,剩下的人继续报数,最后留下的当选为队长。 请你通过编写程序,求出一组人中的队长是原来第几位同学。 初学者思路: 先将所有人定义成一个Boolean型的数组,初始值为true,报到3的人变为false 定义剩余人数,初始报数为1,并计算已经报完的人数 当已经报完人数和剩余人数相等时,说

2020-07-10 10:08:58 1004

原创 滑动窗口解决问题

使用窗口滑动求解总和 总和 = 前一个总和 + 新增的元素数值 - 删除滑动元素数值 例题:给你一个整数数组 arr 和两个整数 k 和 threshold 请你返回长度为 k 且平均值大于等于 threshold 的子数组数目 示例:输入 arr = [1,1,1,1,1], k = 1, threshold = 0 输出:5 思路:先求k*threshold的总和 用窗口滑动求出子数组的总和,并计数 代码: 、 public int numOfSubarrays(int[] arr, int k, in

2020-07-10 10:04:39 427

空空如也

空空如也

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

TA关注的人

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