自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Java 内存模型

JMM 即 Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、 CPU 指令优化等。 JMM 体现在以下几个方面 原子性 - 保证指令不会受到线程上下文切换的影响 可见性 - 保证指令不会受 cpu 缓存的影响 有序性 - 保证指令不会...

2020-03-20 15:22:05

阅读数 10

评论数 0

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

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

2020-03-13 15:23:26

阅读数 11

评论数 0

原创 模式之两阶段终止

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

2020-03-09 16:08:25

阅读数 13

评论数 0

原创 线程的状态

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

2020-03-05 16:11:32

阅读数 13

评论数 0

原创 OAuth2.0介绍

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

2020-02-20 19:09:34

阅读数 44

评论数 0

原创 用命令行管理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-...

2020-02-12 14:28:37

阅读数 14

评论数 0

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

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

2019-11-28 18:04:30

阅读数 10

评论数 0

原创 【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...

2019-11-16 12:00:08

阅读数 15

评论数 0

原创 请谈谈你对OOM的认识

java.lang.StackOverflowError public class StackOverflowErrorDemo { public static void main(String[] args) { stackOverflowError(); ...

2019-11-01 14:13:24

阅读数 40

评论数 0

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

import java.util.ArrayList; import java.util.List; public class LongestConsecutiveDescendingNumberSubstring { public static void main(String[] ...

2019-10-31 20:20:23

阅读数 15

评论数 0

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

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

2019-10-16 22:05:40

阅读数 10

评论数 0

原创 线程池底层工作原理

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

2019-10-16 16:56:56

阅读数 9

评论数 0

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

1. corePoolSize:线程池中的常驻核心线程数 1)在创建了线程池后,当有请求任务来之后,就会安排池中的线程去执行请求任务,近似理解为今日当值线程 2)当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中; 2. maximumPoolSiz...

2019-10-16 16:38:13

阅读数 11

评论数 0

原创 单例模式

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

2019-10-15 18:14:17

阅读数 10

评论数 0

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

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

2019-10-12 17:03:22

阅读数 13

评论数 0

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

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

2019-10-11 15:30:22

阅读数 11

评论数 0

原创 【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 ('...

2019-09-24 15:54:11

阅读数 6

评论数 0

原创 【Database】【LeetCode】181. Employees Earning More Than Their Managers

SQL Schema > Create table If Not Exists Employee (Id int, Name varchar(255), Salary int, ManagerId int); Truncate table Employee; insert into Em...

2019-09-24 15:48:34

阅读数 7

评论数 0

原创 【Database】【LeetCode】180. Consecutive Numbers

SQL Schema > Create table If Not Exists Logs (Id int, Num int); Truncate table Logs; insert into Logs (Id, Num) values ('1', '1&#...

2019-09-24 15:38:42

阅读数 8

评论数 0

原创 【Database】【LeetCode】178. Rank Scores

SQL Schema > Create table If Not Exists Scores (Id int, Score DECIMAL(3,2)) Truncate table Scores insert into Scores (Id, Score) values ('1...

2019-09-24 15:19:57

阅读数 19

评论数 0

原创 【Database】【LeetCode】176. Second Highest Salary

SQL Schema > Create table If Not Exists Employee (Id int, Salary int) Truncate table Employee insert into Employee (Id, Salary) values ('1&...

2019-09-24 15:18:20

阅读数 9

评论数 0

原创 【Database】【LeetCode】175. Combine Two Tables

SQL Schema > Create table Person (PersonId int, FirstName varchar(255), LastName varchar(255)) Create table Address (AddressId int, PersonId int...

2019-09-24 15:14:11

阅读数 10

评论数 0

原创 ArrayList和LinekdList的插入和访问的时间复杂度

总结: 1.ArrayList是线性表(动态数组),LinkedList是链表 2.get,set方法,方法参数有指定位置数值的,ArrayList要优于LinkedList,因为,ArrayList有下标,LinkedList要移动指针。 3.新增和删除操作add和remove,LinkedLi...

2019-09-20 15:54:30

阅读数 56

评论数 0

原创 Java:同步容器与并发容器有什么区别?

何为同步容器:可以简单地理解为通过synchronized来实现同步的容器,如果有多个线程调用同步容器的方法,它们将会串行执行。比如Vector,Hashtable,以及Collections.synchronizedSet,synchronizedList等方法返回的容器。 可以通过查看Vect...

2019-09-19 23:00:39

阅读数 7

评论数 0

原创 蚂蚁美团面试题

2019-09-19 22:36:50

阅读数 31

评论数 0

原创 线程的生命周期

创建、就绪、运行、阻塞、终止

2019-09-19 22:23:59

阅读数 14

评论数 0

原创 volatile

volatile: Java虚拟机提供的轻量级同步机制:可以做到原子性、不能做到复合操作的原子性、禁止指令重排 由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方成为栈空间),工作内存是每个线程的私有数据区域,而Java内存模型中规定所有变量都存储在主内存,...

2019-09-19 17:09:55

阅读数 8

评论数 0

原创 如何控制多线程执行顺序

1. 通过join方法去保证多线程的顺序行的特性 join: 让主线程等待子线程结束以后才能继续运行 2.ExecutorService executorService = Executors.newSingleThreadExecutor(); //FIFO import java....

2019-09-18 23:07:06

阅读数 12

评论数 0

原创 MySQL主从架构

主从同步带来的问题 问题: 1. 中间链路终端,主从不一致问题 2. 从库只有一个SQL Thread 解决办法: 1. MySQL半同步复制 2. 并行复制

2019-09-16 15:45:54

阅读数 12

评论数 0

原创 JVM虚拟机底层原理

调优 JVM调优主要就是调整下面两个指标 停顿时间:垃圾收集器做垃圾回收中断应用执行的时间。-XX:MaxGCPauseMillis 吞吐量:垃圾收集的时间和总时间的占比1/(1+n),吞吐量为1-1/(1+n)。-XX:GCTimeRadio=n ...

2019-09-11 22:35:59

阅读数 13

评论数 0

原创 MySQL事务

###读未提交(READ UNCOMMITTED) 一个事务可以读到其他事务还没有提交的数据,会出现脏读。>一个事务读到了另一个未提交事务修改过的数据,这就是脏读。 ###读已提交(READ COMMITTED) 一个事务只能读到另一个已经提交的事务修改过的数据,并且其他事务每对该数据进行...

2019-09-10 22:57:39

阅读数 10

评论数 0

原创 Eclipse工具里equals的重写

以eclipse为例,直接鼠标右键即可复写equals和hashCode,^_^ 问题:为什么用eclipse复写hashCode方法,有31这个数字? 计算机的乘法涉及到移位运算。当一个数乘以2时,就直接拿该数左移一位即可!选择31原因是因为31是一个素数!所谓素数:质数又称素数(在一个大于1的...

2019-09-09 22:34:52

阅读数 111

评论数 0

原创 equals的重写

以Person为例,何时需要重写equals()? 当一个类有自己特有的“逻辑相等”概念,当改写equals()的时候,总是要改写hashCode(),根据一个类的equals(改写后),两个截然不同的实例有可能在逻辑上是相等的,但是,根据Object.hashCode方法,它们仅仅是两个对象。 ...

2019-09-09 22:13:27

阅读数 9

评论数 0

原创 ==和equals的区别

1. ==既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型局势比较内存地址 2.equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过默认也是==;我们可以看到String类的equals方法是被重写过的,而且String类在日常开...

2019-09-09 21:58:32

阅读数 10

评论数 0

原创 34道经典SQL试题

创建部门表: DROP TABLE IF EXISTS `dept`; CREATE TABLE `dept` ( `deptno` int(2) NOT NULL COMMENT '部门编号', `dname` varchar(14) DEFAULT NULL C...

2019-09-04 16:32:35

阅读数 44

评论数 0

原创 【Java】【LeetCode】162. Find Peak Element

题目: A peak element is an element that is greater than its neighbors. Given an input arraynums, wherenums[i] ≠ nums[i+1], find a peak element and re...

2019-09-04 12:25:29

阅读数 14

评论数 0

原创 synchronized和Lock有什么区别

1. 原始构成 synchronized是关键字属于JVM层面, monitorenter(底层是通过Monitor对象来完成,其实wait/notify等方法也依赖于Monitor对象只有在同步块或方法中才能调用wait/notify等方法) Lock是具体类(ja...

2019-08-29 22:52:03

阅读数 20

评论数 0

原创 CPU或者内存占用过高的定位分析思路

首先jps查询出进程号 查询线程号: 1. top -Hp 进程号查询出最耗CPU或者内存的 2. ps -mp 进程号 -o THREAD, tid, time 然后printf "%x\n" 线程号 然后jstack 进程号| grep -A 3 线程号: 查看进...

2019-08-29 22:02:48

阅读数 84

评论数 0

原创 【Java】【LeetCode】64. Minimum Path Sum

题目: Given amxngrid filled with non-negative numbers, find a path from top left to bottom right whichminimizesthe sum of all numbers along its path. ...

2019-08-28 16:50:00

阅读数 30

评论数 0

原创 【Java】【LeetCode】63. Unique Paths II

题目: A robot is located at the top-left corner of amxngrid (marked 'Start' in the diagram below). The robot can only move either down or r...

2019-08-27 12:43:47

阅读数 21

评论数 0

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