自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 Java虚拟机JVM总结(一)JVM运行原理及JVM中的Stack和Heap的实现过程

Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行,而JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。一、JVM原理1、JVM简介:JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层...

2019-06-06 18:29:55 122

转载 java 线上问题定位工具

在JDK的bin目录下有很多命令行工具:  我们可以看到各个工具的体积基本上都稳定在27kb左右,这个不是JDK开发团队刻意为之的,而是因为这些工具大多数是jdk\lib\tools.jar类库的一层薄包装而已,他们的主要功能代码是在tools类库中实现的。命令行工具的好处是:当应用程序部署到生产环境后,无论是直接接触物理服务器还是远程telnet到服务器上都会受...

2019-03-22 17:16:49 112

转载 你应该知道的RPC原理

你应该知道的RPC原理  在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。  而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服...

2019-02-01 16:12:43 89

转载 BATJ都爱问的多线程面试题

https://juejin.im/post/5bdbbc3d6fb9a0224a5e486f

2018-11-09 11:54:26 161

转载 MySQL批量更新死锁案例分析

问题描述在做项目的过程中,由于写SQL太过随意,一不小心就抛了一个死锁异常,如下: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction at sun.reflect....

2018-10-13 22:48:46 124

转载 聊一聊Java中的lock锁

在Java多线程中,可以使用关键字Synchronized实现线程之间互斥。在JDK1.5之后,提供了线程并发库java.util.concurrent用于操作多线程,其中包含了java.util.concurrent.atomic和java.util.concurrent.lock。atomic可以实现数据或变量的原子性操作,而lock可以实现线程互斥,可以实现读写锁,跟Synchronized...

2018-06-24 13:05:35 122

转载 SpringCloud底层服务之间是怎么相互调用的-微服务流程介绍

https://blog.csdn.net/rfidgroup/article/details/89519577

2020-07-02 11:36:48 272

转载 synchronized四种锁状态的升级

在 Java 语言中,使用 Synchronized 是能够实现线程同步的,即加锁。并且实现的是悲观锁,在操作同步资源的时候直接先加锁。加锁可以使一段代码在同一时间只有一个线程可以访问,在增加安全性的同时,牺牲掉的是程序的执行性能,所以为了在一定程度上减少获得锁和释放锁带来的性能消耗,在 jdk6 之后便引入了“偏向锁”和“轻量级锁”,所以总共有4种锁状态,级别由低到高依次为:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态。这几个状态会随着竞争情况逐渐升级。注意:锁可以升级但不能降级。.

2020-06-06 00:35:13 781

转载 Spring 如何解决循环依赖的问题

https://blog.csdn.net/qq_36381855/article/details/79752689

2020-05-31 20:42:52 270

原创 如何设置线程池参数?美团给出了一个让面试官虎躯一震的回答。

https://www.toutiao.com/i6815052795415101959/?tt_from=copy_link&utm_campaign=client_share&timestamp=1586926518&app=news_article_social&utm_source=copy_link&utm_medium=toutiao_ios&a...

2020-04-15 13:41:22 338

转载 Java 并发编程笔记:如何使用 ForkJoinPool 以及原理

前言Java 1.7 引入了一种新的并发框架—— Fork/Join Framework。本文的主要目的是介绍 ForkJoinPool 的适用场景,实现原理,以及示例代码。TLDR;如果觉得文章太长的话,以下就是结论:ForkJoinPool不是为了替代ExecutorService,而是它的补充,在某些应用场景下性能比ExecutorService更好。(见Java...

2020-03-27 15:38:39 199

转载 WebSocket、Socket、TCP、HTTP区别

1. 概述WebSocket 是为了满足基于 Web 的日益增长的实时通信需求而产生的。在传统的 Web 中,要实现实时通信,通用的方式是采用 HTTP 协议不断发送请求。但这种方式即浪费带宽(HTTP HEAD 是比较大的),又消耗服务器 CPU 占用(没有信息也要接受请求)。(下图来自WebSocket.org)而是用 WebSocket 技术,则会大幅降低上面提到的消耗:(下图...

2020-02-21 18:24:44 162

转载 SpringBoot高级篇Redis之ZSet数据结构使用姿势

Redis的五大数据结构,目前就剩下最后的ZSET,可以简单的理解为带权重的集合;与前面的set最大的区别,就是每个元素可以设置一个score,从而可以实现各种排行榜的功能I. 基本使用在开始之前,序列化的指定需要额外处理,前面List这一篇已经提及,相关内容可以参考:181109-SpringBoot高级篇Redis之List数据结构使用姿势1. 新增元素新增元素时,用起来和s...

2020-01-17 15:23:46 1130 1

转载 那些年用过的Redis集群架构(含面试解析)

https://zhuanlan.zhihu.com/p/59062163

2019-12-10 11:11:45 71

转载 记一次feign的问题排查(短路、线程池、队列)

昨天开了一百个线程采用feign去请求第三方项目,结果报错,出现了短路,大概是下面这样的。(feign整合了hystrix并且自动打开了熔断器)Hystrix circuit short-circuited and is OPEN。。。。。百度了一下,几乎没人碰到这个问题,于是去谷歌了,发现还真有人碰到这个问题。引起这个问题的原因是在一个滚动窗口内,失败了二十个(默认),就会发生短路,...

2019-11-24 14:14:29 476

转载 彻底理解ThreadLocal(看这篇文章就够了)

https://zhuanlan.zhihu.com/p/61587053

2019-09-25 22:43:36 142

转载 Java多线程任务超时结束的5种实现方法

https://blog.csdn.net/wonking666/article/details/76552019

2019-09-23 21:24:52 367

转载 java线上服务问题排查

1、业务日志相关如果应用系统出现异常,一般都会在业务日志中体现统计当天业务日志中ERROR出现数量:egrep ERROR --color logname | wc -l ,如果错误数量过大,一般都是有问题的查看日志中ERROR后10行具体报错:egrep -A 10 ERROR logname | less ,或 -C 10 查看ERROR前后10行日志Java中,...

2019-09-21 18:26:12 138

转载 Spring中@Transactional与读写分离

本文主要介绍如何使用Spring @Transactional基于JDBC Replication协议便捷的实现数据库的读写分离。 项目环境准备: 1)Spring 4.x + 环境 2)mysql connector-j 5.1.38+ 3)tomcat-jdbc-pool连接池 4)spring @Transaction使用与JDBC Replcatio...

2019-09-10 10:55:35 1083

转载 聚集索引、辅助索引、覆盖索引、联合索引

https://blog.csdn.net/u012006689/article/details/73195837

2019-09-09 14:56:13 125

转载 内部类和静态内部类的区别

这个问题由使用非静态内部类导致内存泄漏的问题引出。内部类和外围类的真实关系内部类是个编译时的概念,一旦编译成功后,它就与外围类属于两个完全不同的类(当然它们之间还是有联系的)。对于一个名为Outer的外围类和一个名为Inner的内部类,在编译成功后,会出现这样两个class文件:Outer.class 和 Outer$Inner.class。外部类隐式引用的主要作用静态内部类与非静...

2019-08-28 16:26:38 202

转载 SpringBoot多数据源及MyBatis配置详解

https://my.oschina.net/angerbaby/blog/715281

2019-08-26 10:01:48 90

转载 可能是把Docker的概念讲的最清楚的一篇文章

转载自:http://dockone.io/article/6051【编者的话】本文只是对Docker的概念做了较为详细的介绍,并不涉及一些像Docker环境的安装以及Docker的一些常见操作和命令。Docker是世界领先的软件容器平台,所以想要搞懂Docker的概念我们必须先从容器开始说起。如果你想和更多Docker技术专家交流,可以加我微信liyingjiese,备注『加群』。群里每周都...

2019-06-23 10:00:37 80

翻译 微服务架构

微服务架构资料来源:有架构给我的一些资料,以及自己百度和论坛、社区找来的一些资料,权当做一个总结式的简介。。。目录如下:一、微服务架构介绍二、出现和发展三、传统开发模式和微服务的区别四、微服务的具体特征五、SOA和微服务的区别六、如何具体实践微服务七、常见的微服务设计模式和应用八、微服务的优点和缺点九、思考:意识的转变十、参考资料和推荐阅读...

2019-06-20 23:08:38 144

转载 服务的熔断和降级的区别

熔断:举个例子解释,生活中每家每户都在用电,小明家的电线因为故障导致了小明家停电了。而小李、小张家的电是正常使用的。电力公司没有因为小明家有故障线路而停掉其他人家的电,同时小明家没有使用有故障的电路的电。这时即为熔断。熔断的目的是当A服务模块中的某块程序出现故障后为了不影响其他客户端的请求而做出的及时回应。降级:举个例子解释,我们去银行排队办理业务,大部分的银行分为普通窗口、特殊窗口(...

2019-06-13 23:16:02 2090

转载 redis排行榜之日排行周排行设计

排行榜功能是一个很普遍的需求。使用 Redis 中有序集合的特性来实现排行榜是又好又快的选择。一般排行榜都是有实效性的,比如“用户积分榜”。如果没有实效性一直按照总榜来排,可能榜首总是几个老用户,对于新用户来说,那真是太令人沮丧了。首先,来个“今日积分榜”吧,排序规则是今日用户新增积分从多到少。那么用户增加积分时,都操作一下记录当天积分增加的有序集合。 假设今天是 2015 年 04 ...

2019-06-12 10:28:57 1513

翻译 java程序性能分析之thread dump和heap dump

一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,这就是我们常说的dump文件。常用的有heap dump和thread dump(也叫javacore,或java dump)。我们可以这么理解:heap dump记录内存信息的,thread du...

2019-06-11 16:59:05 315

转载 Redis高可用方案-哨兵与集群

https://blog.csdn.net/sunhuiliang85/article/details/78361211Redis高可用方案一.名词解释二.主从复制Redis主从复制模式可以将主节点的数据同步给从节点,从而保障当主节点不可达的情况下,从节点可以作为后备顶上来,并且可以保障数据尽量不丢失(主从复制可以保障最终一致性)。第二,从节点可以扩展主节点的读...

2019-06-03 11:38:58 188

原创 【Java线程】volatile的适用场景

https://blog.csdn.net/vking_wang/article/details/9982709把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过一个monitor object保护。从而防止多个线程在更新共享状态时相互冲...

2019-06-02 07:50:59 98

原创 spring data jpa 全面解析(实践 + 源码分析)

https://www.cnblogs.com/bodhitree/p/9468585.html前言本文将从示例、原理、应用3个方面介绍spring data jpa。以下分析基于spring boot 2.0 + spring 5.0.4版本源码概述JPA是什么?JPA (Java Persistence API)是 Sun 官方提出的 Java 持久化规范。它为 Ja...

2019-06-01 16:23:12 490

转载 Redis的五种对象类型及其底层实现

https://blog.csdn.net/caishenfans/article/details/44784131Redis对象类型简介Redis是一种key/value型数据库,其中,每个key和value都是使用对象表示的。比如,我们执行以下代码:redis>SET message "hello redis"其中的key是message,是一个包含了字符串"messag...

2019-05-31 15:34:45 104

转载 MySQL索引背后的数据结构及算法原理

http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTr...

2019-05-30 14:49:58 94

转载 MYSQL性能优化的最佳20+条经验

https://coolshell.cn/articles/1846.html

2019-05-28 17:29:16 96

转载 Java并发编程原理与实战六:主线程等待子线程解决方案

https://www.cnblogs.com/pony1223/p/9349239.html

2019-05-28 15:37:36 77

转载 MySQL 性能优化神器 Explain 使用分析

https://segmentfault.com/a/1190000008131735

2019-05-28 11:52:20 72

转载 volatile是否能保证数组中元素的可见性?

http://ifeve.com/volatile-array-visiblity/

2019-05-28 09:46:39 432

转载 Java面试题全集(上)(中)(下) (转)+自己总结

https://www.cnblogs.com/songanwei/p/9366427.html

2019-05-24 11:36:20 90

转载 深入理解 Spring 事务原理

Spring事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:获取连接 Connection con = DriverManager.getConnection()开启事务con.setAutoCommit(true/false);执行CRUD提交事务/回...

2019-04-22 09:54:46 98

原创 MySql按一个字段分组并且取另一个字段最大值的记录

要求:获得按table1_id分组,并且age最大的记录信息,即2、3、5条方法一:select * from (select * from table2 order by age desc) as a group by a.table1_id1方法二:select a.* from table2 as a where age = (select max(age) from ta...

2019-04-18 08:25:22 2011

转载 Git最佳实践:基本操作和分支管理

概述GIT是一个开源的分布式的版本控制系统,是由Linus 为了管理Linux内核开发而开发的一个开源的版本控制软件。相比SVN,它采用分布式版本库方式。工作区,暂存区和版本库左侧为工作区,编辑文件所在的目录,右侧为版本库,其中index区域是暂存区,标记为"master"代表master主分支。基本操作指令1.创建仓库a.当前目录创建仓库git...

2019-04-16 18:21:54 102

空空如也

空空如也

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

TA关注的人

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