自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池工作流程总结示意图

2021-08-12 15:46:45 384 2

原创 【Java】【Leetcode】92. Reverse Linked List II

everse a linked list from positionmton. Do it in one-pass.Note:1 ≤m≤n≤ length of list.Example:Input: 1->2->3->4->5->6->7->8->9->NULL, m = 2, n = 4Output: 1->2->7->6->5->4->3->8->9->NULL...

2020-12-16 18:00:25 193

原创 【Java】【Leetcode】Search a 2D Matrix II

Write an efficient algorithm that searches for atargetvalue in anm x nintegermatrix. Thematrixhas the following properties:Integers in each row are sorted in ascending from left to right. Integers in each column are sorted in ascending from top t...

2020-12-16 14:37:42 180

原创 MySQL高级大批量插入数据

1) 主键顺序插入2) 关闭唯一性校验3) 手动提交事务

2020-12-08 17:11:35 184

原创 MySQL explain type的区别和性能优化

mysql查看性能工具explain中type有很多种,主要的有:链接类型 说明 system 表只有一行,MyISAM引擎。 const 常量连接,表最多只有一行匹配,通用用于主键或者唯一索引比较时 eq_ref 每次与之前的表合并行都只在该表读取一行,这是除了system,const之外最好的一种,特点是使用=,而且索引的所有部分都参与join且索引是主键或非空唯一键的索引 ref 如果每次只匹配少数行,那就是比较好的一种,使用=或<=>,可

2020-12-01 16:29:49 777

原创 定位低效率执行SQL

可以通过一下两种方式定位执行效率低的SQL语句。慢查询日志:通过慢查询日志定位那些执行效率较低的SQ语句,用--log-slow-queries[=file_name]选项启动时,mysqld写一个包含搜于执行时间超过long_query_time秒的SQL语句的日志文件。 show processlist:慢查询日志在查询结束以后才记录,所以再应用反映执行效率出现问题的时候查询慢查询日志并不能定位问题,可以使用show processlist命令查看当前MySQL在进行的线程,包括线程的状态、是否锁

2020-11-30 17:31:27 214

原创 Shell

1. 查空行awk '/^$/{print NR}' file.txt2. 求一列的和awk '{sum+=$2} END{print "求和: "sum}' file.txt3. 检查文件是否存在if [ -e /root/file.txt ];then echo "文件存在";else echo "文件不存在"; fi4. 数字排序且求和sort -n file.txt | awk '{sum+=$1;print $1}END{print "求和:"sum}'5. 搜索指

2020-11-19 15:31:21 91

原创 Git 修改commit message

1、git log --oneline -5 查看最近5次commit的简要信息,输出信息为:简短commitID commit_message,可以根据需要查看最近n次的提交 也可以git log -5,输出信息相对详细些,commitID为完整的,这里只需要加上参数--oneline查看简短commitID即可2、git rebase -i <简短commitID> 如果需要修改从上往下第2个commit_message,这里的简短commitID为上面输出...

2020-11-16 13:53:05 391

原创 Save The Princess

最近阿宅迷上了一款二次元游戏叫<<解救公主>>。其中有一关的规则是这样的公主被困在梦境里,梦境里的空间无限大,公主靠自己是走不出来的。系统会随机很多条行动指令,玩家必须帮公主选出正确的指令,公主按照玩家选择的指令,重复执行若干次后就能走出困境。指令有三个字符组成 S,R,LS: 前进一步R: 向右转L: 向左转如果公主重复执行错误的指令,她就会一直在绕圈子,走不出梦境。所谓“绕圈子”是指:无论公主重复执行多少次指令,她始终都在一个以出发点为圆心,以R为半径的圆里,永

2020-10-15 11:26:11 296

原创 Java 浅拷贝和深拷贝

介绍开发过程中,有时会遇到把现有的一个对象的所有成员属性拷贝给另一个对象的需求。比如说对象 A 和对象 B,二者都是 ClassC 的对象,具有成员变量 a 和 b,现在对对象 A 进行拷贝赋值给 B,也就是 B.a = A.a; B.b = A.b;这时再去改变 B 的属性 a 或者 b 时,可能会遇到问题:假设 a 是基础数据类型,b 是引用类型。当改变 B.a 的值时,没有问题;当改变 B.b 的值时,同时也会改变 A.b 的值,因为其实上面的例子中只是把 A.b 赋值给了 B.b,因为

2020-10-12 17:59:52 171

原创 没有括号的算式

有一个写在黑板上的加减法算式,运算符只包含加号、减号和括号,但其中的括号被清洁工擦去了。现在需要你写一个算法计算这个算式括号被擦去之前的可能的最小结果值。输入:仅有一行,被擦去括号后的算式输入约束:算式最多有50个字符,且其中仅包含0-9和+、-算式的第一个字符一定是数字算式中不会连续出现两个运算符算式中每个整数最多有5位输出:一个整数:即括号被擦去之前,该算式可能的最小结果值举例1:输入:55-50+40输出:-35解释:通过增加括号,该算式有两种可能的结果:55-50+4

2020-10-11 12:05:01 921 1

原创 如何利用nologin的账号进行登录——以Apache为例

linux上的账号分为两种,一种就是普通的登录用户,比如上面的 root,xiaoming。这些用户可以用ssh与服务器进行连接还有一种就是yum下载安装软件时的“用户”,如ftp、sshd、Apache,这些默认是不能登录的。虽然你连接的时候照样会弹出密码,但是输入密码后还是拒绝连接。 ssh [email protected]不知道Apache的密码?新建一个就行那么该如何让Apache能进行登录呢?很简单,将nologin改成bash就行了usermod -s ..

2020-09-30 10:11:33 824

原创 jvm 性能调优工具之 jmap

概述命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。jmap 用法参数:option: 选项参数。 pid: 需要打印配置信息的进程ID。 executable: 产生核心dump的Java可执行文件。 core: 需要打印配置信息的核心文件。 server-id 可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标识服务器。

2020-09-14 18:14:19 368 1

原创 JVM内存设置多大合适?Xmx和Xmn如何设置?

问题:新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置呢?设置成多大比较合适,既不浪费内存,又不影响性能呢?分析:依据的原则是根据Java Performance里面的推荐公式来进行设置。296d1509689688.png具体来讲:Java整个堆大小设置,Xmx 和 Xms设置为老年代存活对象的3-4倍,即FullGC之后的老年代内存占用的3-4倍永久代 PermSize和MaxPermSize设置为老年代存活对象的1.2-1.5倍。年轻代Xmn.

2020-09-14 18:08:21 6464 2

原创 面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别

下面直接来干货,先说这三个Map的区别:HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.lengthHashMap底层数组+链表实现,可以存储null键和null值,线

2020-09-14 14:15:19 630

原创 【Java】【LeetCode】23. Merge k Sorted Lists

Mergeksorted linked lists and return it as one sorted list. Analyze and describe its complexity.Example:Input:[ 1->4->5, 1->3->4, 2->6]Output: 1->1->2->3->4->4->5->6思路分析:题目的意思是合并k个有序的链表。这题可以运用分治法,进行...

2020-07-22 20:24:59 158

原创 The tested algorithm

InMobi:200.[Medium] Number of IslandsTesla:20. [Easy]Valid ParenthesesNo stack required23. [Hard]Merge k Sorted Lists88. [Easy] Merge Sorted Array200.[Medium] Number of Islands214. [Hard] Shortest Palindrome

2020-07-22 18:59:22 127

原创 【Java】【LeetCode】20. Valid Parentheses

Given a string containing just the characters'(',')','{','}','['and']', determine if the input string is valid.An input string is valid if:Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct or...

2020-07-21 17:55:26 95

原创 【Java】【LeetCode】214. Shortest Palindrome

Given a strings, you are allowed to convert it to a palindrome by adding characters in front of it. Find and return the shortest palindrome you can find by performing this transformation.Example 1:Input: "aacecaaa"Output: "aaacecaaa"Example 2:.

2020-07-21 16:58:55 138

原创 having 和 where的区别

区别1where是从数据表中的字段直接进行的筛选的。having是从前面筛选的字段再筛选eg:selectgoods_price,goods_namefrom goodshavinggoods_price>100 等价于 select goods_price,goods_namefrom goodswheregoods_price >100select goods_name,goods...

2020-07-14 18:39:22 447

原创 Spring Cloud微服务架构

微服务的组成结构主要有一下内容:1)服务的注册与发现Eureka(服务注册中心,所有得服务都会在注册中心挂起)spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的2)Feign简介(负载均衡器)Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feig

2020-07-09 16:55:34 118

原创 JVM内存模型

基本问题•介绍下 Java 内存区域(运行时数据区)•Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么)•对象的访问定位的两种方式(句柄和直接指针两种方式)拓展问题•String类和常量池•8种基本类型的包装类和常量池一 概述对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给

2020-07-08 18:28:03 122

原创 ThreadLocal与Synchronized的区别

2020-06-23 18:36:55 142

原创 自定义线程池-参数设计分析

2020-06-22 15:59:44 276

原创 sleep(long n) 和 wait(long n) 的区别

1) sleep 是 Thread 方法,而 wait 是 Object 的方法2) sleep 不需要强制和 synchronized 配合使用,但 wait 需要和 synchronized 一起用3) sleep 在睡眠的同时,不会释放对象锁的,但 wait 在等待的时候会释放对象锁4) 它们状态 TIMED_WAITING...

2020-03-13 15:23:26 704

原创 模式之两阶段终止

打断 sleep,wait,join 的线程这几个方法都会让线程进入阻塞状态打断 sleep 的线程, 会清空打断状态,以 sleep 为例 public static void test1() throws InterruptedException { Thread t1 = new Thread(() -> { try { Thread.sleep(10...

2020-03-09 16:08:25 216

原创 线程的状态

1. 五种状态这是从 操作系统 层面来描述的【初始状态】仅是在语言层面创建了线程对象,还未与操作系统线程关联【可运行状态】(就绪状态)指该线程已经被创建(与操作系统线程关联),可以由 CPU 调度执行【运行状态】指获取了 CPU 时间片运行中的状态当 CPU 时间片用完,会从【运行状态】转换至【可运行状态】,会导致线程的上下文切换【阻塞状态】如果调用了阻塞 API,如 BIO ...

2020-03-05 16:11:32 104

原创 OAuth2.0介绍

OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不 需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0是OAuth协议的延续版本,但不向 后兼容OAuth 1.0即完全废止了OAuth1.0。很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服 务,这些都足以说明OAUTH标准逐渐成为开放...

2020-02-20 19:09:34 990

原创 用命令行管理aws s3

AWS官方文档:http://docs.amazonaws.cn/cli/latest/userguide/using-s3-commands.html管理存储桶创建桶;$ aws s3 mb s3://bucket-name删除桶:$ aws s3 rb s3://bucket-name删除非空桶:$ aws s3 rb s3://bucket-name --forc...

2020-02-12 14:28:37 327

原创 【消息中间件之ActiveMQ】高级特性之消费重试机制

具体哪些情况会引起消息重发1. Client用了transactions且在session中调用了rollback()2. Client用了transactions且在调用commit()之前关闭或者没有commit3. Client在CLIENT_ACKNOWLEDGE的传递模式下,在session中调用了recover()...

2019-11-28 18:04:30 242

原创 【Java】【LeetCode】200. Number of Islands

Given a 2d grid map of'1's (land) and'0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume...

2019-11-16 12:00:08 115

原创 请谈谈你对OOM的认识

java.lang.StackOverflowErrorpublic class StackOverflowErrorDemo{ public static void main(String[] args) { stackOverflowError(); } private static void stackOverflowErro...

2019-11-01 14:13:24 295

原创 最长连续降序数字子串

import java.util.ArrayList;import java.util.List;public class LongestConsecutiveDescendingNumberSubstring{ public static void main(String[] args) { System.out.println(longestCons...

2019-10-31 20:20:23 220

原创 线程池配置合理线程数

CPU密集型CPU密集的意思是该任务需要大量的运算,而没有阻塞,CPU一直全速运行。CPU密集任务只有字真正的多核CPU上才能得到加速(通过多线程)。而在单核CPU上,无论你开几个模拟的多线程该任务都不可能得到加速,因为CPU总的运算能力就那些。CPU密集型任务配置尽可能少的线程数量:一般公式:CPU核数+1个线程的线程池IO密集型1. 由于IO密集型任务线程并不是一直...

2019-10-16 22:05:40 224

原创 线程池底层工作原理

1. 在创建了线程池后,等待提交过来的任务请求。2. 当调用execute方法添加一个请求任务时,线程池会做如下判断: 2.1 如果正在运行的线程数量小于corePoolSize,那么马上创建线程运行这个任务; 2.2 如果正在运行的线程数量大于或等于corePoolSize,那么将这个任务放入队列; 2.3 如果这时候队列满了且正在运行的线程数量还小于maxim...

2019-10-16 16:56:56 341

原创 线程池7大参数深入介绍

1. corePoolSize:线程池中的常驻核心线程数 1)在创建了线程池后,当有请求任务来之后,就会安排池中的线程去执行请求任务,近似理解为今日当值线程 2)当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中;2. maximumPoolSize:线程池能够容纳同时执行的最大线程数,此值必须大于等于13. keepAliveTime...

2019-10-16 16:38:13 514

原创 单例模式

1. 手写单例模式2. 线程安全的单例模式什么是单例单例类在整个程序中只能有一个实例,这个类负责创建自己的对象,并确保只有一个对象被创建。代码实现要点a) 私有构造器b) 持有该类的属性c) 对外提供获取实例的静态方法饿汉式:线程安全、反射不安全、反序列化不安全登记式:线程安全、防止反射攻击、反序列化不安全...

2019-10-15 18:14:17 65

原创 强引用、弱引用、软引用、虚引用分别是什么?

强引用当内存不足,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收,死都不收。强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,垃圾收集器不会碰这种对象。在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制会受到,即使该...

2019-10-12 17:03:22 205

原创 Java中可以作为GC Roots的对象

1. 虚拟机栈(栈帧中的局部变量区,也叫做局部变量表)中引用的对象。2. 方法去中的类静态属性引用的对象。3. 方法去中常量引用的对象。4. 本地方法栈中JNI(Native方法)引用的对象。...

2019-10-11 15:30:22 472

原创 【Database】【LeetCode】182. Duplicate Emails

SQL Schema >Create table If Not Exists Person (Id int, Email varchar(255));Truncate table Person;insert into Person (Id, Email) values ('1', '[email protected]');insert into Person (Id, Email) values (...

2019-09-24 15:54:11 177

空空如也

空空如也

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

TA关注的人

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