自定义博客皮肤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 109

原创 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 356 1

原创 MySQL索引失效原理

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

2020-09-18 11:33:04 2145

原创 SpringCloud面试常见问题

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

2020-09-17 19:21:23 144

原创 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 263

原创 String、StringBuffer、StringBuilder

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

2020-09-11 22:34:10 141

原创 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 100

原创 JavaWeb学习总结

第一部分:Servletservlet简介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 621

原创 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 126

原创 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 124

原创 JSON基础解析教程

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

2020-07-28 14:53:36 120

原创 多线程笔记

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

2020-07-24 21:28:40 122

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

假设自定义类为Bookpublic 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 104

原创 在未排序的数组中找到第 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 3113

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

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 179

原创 登山选队长问题

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

2020-07-10 10:08:58 927

原创 滑动窗口解决问题

使用窗口滑动求解总和总和 = 前一个总和 + 新增的元素数值 - 删除滑动元素数值例题:给你一个整数数组 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 374

空空如也

空空如也

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

TA关注的人

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