自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

深页

深页的学习和思考

  • 博客(207)
  • 收藏
  • 关注

原创 JDK、JRE、JVM三者之间的关系?

Java基础面试题001

2023-04-28 12:05:04 179

原创 IDEA Debug 模式项目启动慢

上网查了一下,发现也有其他朋友遇到过类似问题,解决办法也类似,就是因为在项目中有断点打在了方法上,因此导致的debug变慢。解决方法也简单,将打在方法上的断点去掉即可,于是查了一下自己代码中的断点是不是也有类似的情况,果然,发现了两个打在方法上的断点:https://www.cnblogs.com/han-1034683568/p/8603588.html...

2022-01-09 00:20:20 455

原创 线程池的5种状态

线程池状态RUNNING:接受新任务并处理排队任务SHUTDOWN:不接受新任务,但处理排队任务STOP:不接受新任务、不处理排队任务、中断正在进行的任务TIDING:所有任务都已终止、workerCount为0时,线程会切换到TIDING、并运行 terminate() 钩子方法TERMINATED:terminate() 运行完成...

2020-05-05 08:27:06 412

原创 Nginx 是怎么工作的?

当我们用 tomcat 做为服务器,假设一台 tomcat 每秒能处理 1 万个请求,那如果现在每秒有 10 万个请求怎么办?再具体一点说,就是我有一个支付服务,每秒只能处理 1 万个请求,现在用户量大起来了,高峰期每秒有 10 万个请求。我们可以换更高配置的服务器,能抗住 10 万 QPS 的那种。另一种方式就是做水平扩展,或者说搭建一个支付服务的集群。我在图中用两台 tomcat 表示一...

2020-04-05 21:47:34 406 1

原创 ThreadLocal 线程本地存储

如果想让同一个线程,不同的方法共享变量就可以使用 ThreadLocal,Java 提供的线程本地存储方案。ThreadLocal 可以保证同一个变量,该线程中的方法看到的值是一样,不同线程之间却是隔离。

2020-04-05 21:17:50 327

原创 Redis哨兵机制

Redis哨兵比主从复制多了 sentinel 节点,当主节点出现故障的时候,有 sentinel 自动完成故障发现和转移,并通知应用方,实现高可用。哨兵如何监控节点?哨兵有三个定时监控任务完成对各节点的发现和监控。每隔10秒,发一次info每隔2秒发一次,publish/subscribe每隔1秒发一次ping(主要靠这种方式)故障转移哨兵什么时候可以判断一个节点挂了呢?...

2020-02-08 21:18:03 217

原创 Redis全局命令,可执行文件

redis 全局命令1,查看所有键:keys * set school enjoy set hello world2,键总数 :dbsize //2个键,如果存在大量键,线上禁止使用此指令3,检查键是否存在:exists key //存在返回1,不存在返回04,删除键:del key //del hello school, 返回删除键个数,删除不存在...

2020-02-08 19:26:38 341

原创 Redis 都有哪些数据类型?分别在哪些场景下使用比较合适?

数据类型使用场景string字符串(XML/Json)、数组、二进制,最简单的 k:v 场景hash可以使用 hash 类型进行全局去重list有序列表,可以用来保存粉丝列表,文章评论表之类的。用lrange命令还可以分页读取列表。set无序集合,可以用来做全局去重,或者做交并操作sorted set有序的 set,即可以去重还可以排序,比如...

2020-02-08 19:07:20 273

原创 Redis主从复制

redis的主从架构:一主一从,一主多从,树状主从。复制

2020-02-07 20:42:07 201

原创 Redis如何持久化数据?

Redis 有两种持久化的方式。一种是使用 RDB 持久化,是对数据的全量备份;一种是使用 AOF 做增量备份。

2020-02-07 19:56:20 213

原创 图解JVM内存区域划分

图解JVM类加载机制和双亲委派模型一文中讲述了 Java 类加载的过程,它包含加载、验证、准备、解析、初始化、使用、卸载这 7 个步骤。在准备阶段,JVM会将类加载到内存中,为类变量分配内存并赋予初值;在初始化阶段则会正式执行初始化代码。那么在准备阶段和初始化阶段,JVM 具体是怎么为类分配内存的呢?JVM 把字节码文件加载进来之后放在哪里?代码运行的时候,方法和局部变量放在哪里?创建的对象...

2020-02-05 13:48:19 213

原创 图解JVM类加载机制和双亲委派模型

类加载机制总共有这样7个步骤:加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 -> 卸载。接下来先把每个阶段在做什么讲一下,再着重对比一下准备阶段和初始化阶段。

2020-02-04 10:22:15 355

原创 什么情况下JVM内存中的一个对象会被垃圾回收?

1. 可达性分析算法,判断是否被 GC Roots 引用2. 判断引用类型:强引用、软引用、弱引用、虚引用3. 是否调用`finialize()`方法自救

2020-02-02 16:37:59 430 1

原创 什么是被 GC Roots 直接引用的对象?

CMS 垃圾回收器进行垃圾回收的时候会分成 4 个阶段:初始标记、并发标记、重新标记、并发清理。其中初始标记阶段会「Stop the world」,并且回收被 GC Roots 直接引用的对象,这个过程很短,对系统正常运行的影响很小。这里所说的被 GC Roots 直接引用的对象是怎么样的对象呢?

2020-02-02 15:45:50 1107 1

原创 IDEA如何设置JVM参数

IDEA如何设置JVM参数

2020-02-02 13:40:04 738

原创 Java函数式编程

函数式编程函数式编程是一种编程范式,以简单粗暴的方式来理解,可以把它理解成匿名函数的一种代替,也有人把它叫做箭头函数->。它将对象的行为,或者说方法进行参数化传递。函数式编程初探什么是函数式编程思维?演进案例函数式编程是一种编程思想,用一个案例来描述这种思想是怎么演进的。有一个商品类Sku,它包含了商品种类,商品价格等多个属性。有一个购物车的类CartService,其中car...

2020-01-31 19:32:58 248

原创 ubuntu更换源

ubuntu的源文件是/etc/apt/sources.list这个文件。修改ubuntu的软件源,就是把这里面的地址换成国内访问更快的地址。编辑这个文件。sudo vi /etc/apt/sources.list把里面的内容换成阿里的源# 阿里镜像源deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted univer...

2020-01-29 15:47:13 297

原创 ubuntu 安装时没有设置root密码,如何登陆root

为root设置密码sudo passwd root结果Enter new UNIX password:Retype new UNIX password:passwd: password updated successfully

2020-01-29 15:28:32 1113

原创 ubuntu16.04镜像下载地址

中科大源http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/阿里云开源镜像站http://mirrors.aliyun.com/ubuntu-releases/16.04/兰州大学开源镜像站http://mirror.lzu.edu.cn/ubuntu-releases/16.04/北京理工大学开源http://mirror.bit.ed...

2020-01-28 20:59:00 742

原创 Elasticsearch Search APIs

Search APIs 官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/search.htmlSearch APIsSearch API 可以分成两类:URL Search 和 Request Body Search。URL Search 在 URL 中使用查询参数;Request Body Searc...

2020-01-27 18:45:08 470

原创 Elasticsearch Document APIs

Single document APIsIndex API创建文档,可以自定义 id。接收一个op_type参数,其值为create,等同于_create。如果文档的 id 存在将会报错。PUT users/_doc/1?op_type=create{ "user" : "Jack", "post_date" : "2019-05-15T14:12:12", "m...

2020-01-27 18:37:06 235

原创 Elasticsearch搜索

结构化搜索(Structured search),Query & Filtering 与多字符串多字段查询,单字符串多字段查询,

2020-01-27 18:34:23 170

原创 Elasticsearch 聚合分析(Aggregation)

桶聚合 Bucket Aggregation,指标聚合 Metric Aggregation,Pipline Aggregation ,Matrix Aggregation - 支持多个字段的操作并提供一个结果矩阵

2020-01-27 18:32:32 807

原创 说说 sleep() 方法和 wait() 方法区别和共同点?

Sleep()方法和wait()方法都用来**改变线程的状态**,能够让线程从运行状态,转变为休眠状态。但它们也存在一些需要注意的差别。

2020-01-26 22:32:09 1798 1

原创 Elasticsearch Analysis

Analyzer 的组成分词器是专门处理分词的组件,Analyzer 由三部分组成Character Filters - 针对原始文本处理,例如去除 htmlTokenizer - 按照规则切分为单词Token Filter - 将切分的单词进行加工,小写,删除 stopwords,增加同义词Elasticsearch 内置分析器分析器作用Standard ...

2020-01-26 14:07:31 227

原创 什么是ThreadLocal?如何正确使用ThreadLocal?

多个线程同时读写同一个共享变量会造成并发问题,一种解决方案就是避免变量共享。我们可以使用**线程封闭**技术,即使用局部变量,每个线程都有各自的调用栈,局部变量就存在栈帧中,不会与其他线程共享。我们还可以使用线程本地存储ThreadLocal。

2020-01-23 17:00:45 1772

原创 Java线程生命周期,及线程状态转换

Java 的生命周期模型和通用的线程生命周期模型有所不同,它有初识状态、运行/可运行状态、休眠状态和终止状态,其中休眠状态细分为 BLOCKED、WATING、TIMED_WATING,共 6 中状态。

2020-01-22 13:50:34 431

原创 死锁怎么产生?死锁了怎么办?

死锁是指一组相互竞争的线程互相等待,导致「永久阻塞的现象」。如果死锁已经产生,可以使用jstack指令查看当前线程的堆栈信息,通过分析线程的运行情况排查死锁问题。解决死锁最好的方案是预防死锁,产生死锁有4个必要条件,我们只需要破坏其中的任一一条都能避免产生死锁。

2020-01-22 11:20:05 605

原创 Java内存模型与Hppens-Before规则

什么是Java内存模型?什么事Happens-before规则?

2020-01-22 10:57:47 211

原创 Elasticsearch数据建模

elasticsearch数据建模过程,关系型数据库范式与反范式,elasticsearch处理关联关系,数据建模流程,数据建模最佳实践

2020-01-20 15:53:31 376

原创 使用 Elasticsearch 前应该知道的一些事情

倒排索引,elasticsearch用途,elasticsearch各个版本特性,ELK Stack

2020-01-20 15:41:50 368

原创 Elasticsearch Mapping索引映射

Elasticsearch Mapping,字段的数据类型,动态映射 Dynamic Mapping,静态映射(自定义映射)

2020-01-20 15:36:22 295

原创 理解Java中的运算符优先级

运算符对一个或者多个值进行运算,并得出一个运算结果。总的来说:等号优先级 < 布尔运算符优先级 < 比较运算符< 算数运算符。等号优先级最低。等号做的是赋值操作,所有运算做完,最后进行赋值操作是合理的布尔运算符优先级低于比较运算符。布尔运算操作的是 true、false,布尔值的结果是通过比较运算得到的比较运算符优先级低于算数运算符。比较运算比较的数字的大小,数字的结...

2020-01-16 23:47:24 508

原创 如何使用Anaconda

Anaconda 能让你轻松安装在数据科学工作中经常使用的包。你还将使用它创建虚拟环境,以便更轻松地处理多个项目。Anaconda 简化了我的工作流程,并且解决了我在处理包和多个 Python 版本时遇到的大量问题。Anaconda 实际上是一个软件发行版,它附带了 conda、Python 和 150 多个科学包及其依赖项。应用程序 conda 是包和环境管理器。Anaconda 的...

2020-01-16 11:03:47 423

原创 STL-set and multiset

set 的底层是红黑树。具有良好的查找效率。set 容器中不允许出现重复的元素,multiset 允许重复元素。set 构造函数set<T> st;//set 默认构造函数:mulitset<T> mst; //multiset 默认构造函数:set(const set &st);//拷贝构造函数set 赋值操作set& ope...

2020-01-16 11:03:34 132

原创 【Caffe】caffe的数据层次

Deep networks are compositional models that are naturally represented as a collection of inter-connected layers that work on chunks of data. Caffe defines a net layer-by-layer in its own model sch...

2020-01-16 11:03:24 289

原创 zookeeper配置文件详解

如题。目录结构目录名 作用 bin 存放系统脚本 conf 存放配置文件 contrib zk附加功能支持 dist-maven maven仓库文件 docs zk文档 lib 依赖的第三方库 recipes 经典场景样例代码 src zk源码 bin 目录bin 目录中是一些系统脚本,其...

2019-11-16 08:38:11 585

原创 Mybatis关联查询

在数据库的增删改查操作中,用的最多的就是查询操作了,查询操作又可以分成一对一查询、一对多查询和多对多查询。一个人属于一个部门,查询人的时候要查出他的部门,这是一对一查询;一辆车有四个轱辘,查询车的时候要查出这四个轱辘,这是一对多查询;一个学生选了多门课,一门课也是被多个学生选的,学生与课程之间用一张关联表来联系,这是多对多查询。本文介绍 Mybatis 是如何处理这几种查询方式的,包括以下三...

2019-11-16 08:35:03 179

原创 zookeeper常用客户端命令

服务端常用命令 客户端常用命令 ACL常用命令 zk 常用四字命令 zk 日志可视化服务端常用命令启动ZK服务 sh bin/zkServer.sh start 查看ZK服务状态 sh bin/zkServer.sh status 停止ZK服务 sh bin/zkServer.sh stop 重启ZK服务 sh bin/zkServer.sh restart客户端常用命...

2019-11-16 06:20:09 206

原创 Mybatis动态sql

元素 作用 备注 if 判断语句 单条件分支判断 choose、when、otherwise Java中的case..when.. 多条件分支判断 trim、where、set 辅助元素 用于处理 SQL 拼装问题 foreach 循环语句 在in语句等列举条件常用,常用于实现批量操作 if我们可以使用 &l...

2019-11-16 01:18:39 111

空空如也

空空如也

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

TA关注的人

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