自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

_xiaolin_

只有不断的学习与探索,你就会不断的发现还有很多东西都还不会!

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

原创 再学单例模式:著名的延迟加载实现方式

单例模式的实现,那几种常用大部分人都滚瓜烂熟了,其中就:synchronize + 双重检测 + volatile 这种延迟加载(懒加载)方式有点不好理解,涉及到的东西有点深,但是网上也有非常多的文章进行过详细的讲解了,这里就不赘述啦,如果还不够熟悉的话可以找下相关的文章,这篇文章就讲比较少见的、跟类初始化有关的延迟加载实现方式,这种方式其实在我之前多次学单例模式的时候都有见过,但是都没有从根本上明白,这次是因为自己相关学习的积累,再次看到的时候突然就想明白了,我想有很多人应该也还是半知半...

2021-02-24 16:55:28 304 3

原创 如何使用sz命令下载较大文件到本地

今天排查生产机器内存使用率持续升高的问题时,准备使用jmapdump命令生成堆内存快照文件,然后下载到本地使用MAT工具分析,查看到底是哪些对象非常大,并且持续增多,我大概描述下问题:因为机器的内存使用率持续升高,导致java服务时隔一段时间又被重新启动。这篇文章不会详细讲解如何分析这个问题,主要是讲讲我在使用jmap dump遇到的一个问题:在生产机器上生成的dump快照文件比较大(七八百M),使用sz命令下载的时候会失败。我也会描述我在整个操作过程中遇到的一个个的小问题。一、简单...

2021-02-20 07:30:06 5548

原创 聊聊对程序的局部性原理的新认知

这篇文章涉及到的内容不多,所以篇幅也不会很长,主要是学习程序的局部性原理,涉及到java对象和数组相关的内容,让对数组这种分配连续的内存空间存储数据的数据结构和java对象以及对象的引用有更清晰明确的理解。写这篇文章也是今天在坐地铁上班路上看技术文章的时候学习到的,所以记录下来,看完之后不知道有没有共鸣的朋友。前言 正文之前先说点闲话吧,最近没有更新写文章,主要...

2020-06-14 15:24:39 432

原创 数据结构与算法:学习堆相关算法

堆这种数据结构相信大家肯定学过,但是因为在实际工作当中用的比较少而渐渐淡忘了?其实堆用在一些非常经典的场景,这篇文章就来学习一下堆相关内容,最开始我们从堆的底层实现和实际应用举例开始来了解堆这种数据结构的用途,只有知道了某个东西的实际用途再来深入学习这样东西才会更有方向感,然后介绍堆的基本实现,最后用堆来实现找出一篇英文文章中单词出现次数最多的前k个单词的这样的简单功能。一、...

2020-03-03 19:34:49 3076 10

原创 四、我们来聊聊Redis主从结构

大家多少听说过主从复制相关内容,最常见的是数据库的主从结构,主从结构的出现主要是解决什么问题大家知道吗?单机服务部署架构在目前的互联网时代应该很少见了,单机服务有一个非常大的隐患就是当服务机器出现故障的时候,如果短时间不能修复就意味着线上会持续无法正常提供服务,那主从结构的出现最直接的目的就是为了解决这样的问题,提高服务的高可用性,除此之外其实主从结构的设计还可以起到负载均衡的作用...

2020-02-02 18:10:18 603

原创 数据结构与算法:学习并查集

并查集一般都不怎么用到,甚至听都没怎么听到过这么一个数据结构,写这篇文章是源自于我在刷力扣第130. 被围绕的区域这道题的时候涉及到并查集的使用,大家如果没做过可以去做一下,程序员闲的时候刷刷算法题是非常有意义的事情。原本这道题使用深度优先遍历(DFS)和广度优先遍历(BFS)就可以解决,但是执行时间才超过百分之五十多,这让我有点不服,我想看下使用并查集看下执行时间需要多久,所以想...

2020-02-01 18:48:35 2420 8

原创 三、Redis数据持久化详解

本篇文章我们来讲讲redis数据持久化相关内容,大家已经知道redis是在内存中操作数据的,但是内存有数据丢失的风险,比如在redis服务器运行的过程中突然宕机,那重新启动redis后,之前在内存的数据就会丢失,这也是redis为什么提供数据持久化功能的原因,持久化就是将内存中的数据保存到磁盘当中,下面来详细看看。目录前言正文一、redis持久化方式RDB持久...

2020-01-29 12:50:53 248

原创 一、Redis基础:一文学会从安装到使用

关于redis学习专栏的第一篇文章介绍redis基础初识,主要介绍什么是redis、redis特性、redis的安装启动和连接以及Redis在Java客户端中使用等基础知识目录前言正文一、什么是Redis二、Redis的特性三、Redis应用场景四、Redis的安装、启动和链接1. redis的安装2. redis的三种启动方法3. ...

2020-01-23 22:36:00 238

原创 二、Redis常用数据类型以及底层数据结构分析

目录前言正文一、Redis几种数据类型的底层数据结构二、压缩列表和跳表详解压缩列表(ziplist):跳表(skipList)三、文中思考题四、总结五、参考文献前言 施主,既然来了,就静下心来,仔细阅读好好思考! 老衲才疏学浅,如有错误,还请各位大侠在评论区不吝赐教。正文一、Redis几种数据类型的底层数据结构 ...

2020-01-18 21:33:16 1201 1

原创 读《码出高效:Java开发手册》笔录

本篇文章是用来记录我在阅读《码出高效:Java开发手册》这本书时所做的笔记,笔记内容为书中讲到的一些关键的知识点摘抄,包括我在学习和工作当中容易忽略的知识点和注意事项,摘抄下来主要是为了提炼自己还不太熟悉的知识点然后归纳在一块,便于再次学习,希望对大家也有帮助!有兴趣的同学可以阅读书本,学习更全面的书本内容。(本文章的章节是和书本上对应的,有些章节没有摘抄内容就直接跳过了)...

2019-10-24 08:35:49 380

原创 读《MySQL技术内幕:InnoDB存储引擎》笔录

本篇文章是用来记录我在阅读《MySQL技术内幕:InnoDB存储引擎》这本书时所做的笔记。数据库是我们在学习和工作中都必须熟悉的一块内容,但是实际我们更多的是停留在写SQL语句层面,最多还涉及到优化SQL这一层面,对MySQL底层的结构和底层的知识了解不多,可能大家普遍认为开发人员知道写SQL和优化SQL就差不多了,至于数据库的问题排查、日志和数据库运行状态跟踪、数据修复这些是D...

2019-08-19 11:49:17 331

原创 java.sql.SQLException: Access denied for user 'root'@'localhost错误

大家是不是在用springBoot项目尝试链接数据库时,在yml文件里面明明配置了数据的链接信息,而且密码啥的都是正确的,但是还是一直提示java.sql.SQLException: Access denied for user 'root'@'localhost错误!看了网上的文章千篇一律:从以下几点查找:1.查看用户是否有权限。2.查看配置文件的编码方式是否正确3.查看编译后...

2019-08-10 12:24:10 10964 11

原创 Java多线程与并发(4):安全发布对象和线程安全策略

我的上一篇文章线程安全性详解在讲解线程安全性的同时,也剖析了Java的atomic所体现的原子性、CAS原理和对应的源码解读,另外讲述了synchronized、volatile关键字,本篇文章将要介绍的是安全发布对象和线程安全策略,大家初次看到这两个名词可能会有点懵,我刚开始接触这两个概念的时候也是不知道是干嘛的,和并发的情况有什么关联。本篇文章就是详细介绍这两块内容,网上也有很...

2019-07-11 17:35:06 317

转载 优秀工程师必备的一项技能,你解锁了吗?

本文是转载于微信公众号:阿里技术 的一篇文章,好好体会大师的心得体会,非常有感触:“思考力”是程序员需要具备的一种至关重要的素质,其实不单单对程序员来说,对于任何一个学者来说,思考力都是至关重要的素质!原文链接:https://mp.weixin.qq.com/s/q05Df_TKWUSlhK6V6KTrfw阿里妹导读:很多程序员在工作一段时间后会遇到迷茫期,虽有技术...

2019-06-18 10:46:16 158

原创 Java多线程与并发(3):线程安全性详解

上篇文章多线程基础和线程安全性介绍了在多线程并发的情况下的线程安全问题和出现的底层原因、Java内存模型以及八种同步操作和对应的同步规则,并且在文章结尾介绍了什么是线程安全性以及线程安全性体现的三个方面:原子性、可见性和有序性,本篇主要介绍Java工具类与之体现的线程安全性,之所以介绍这部分内容,就是想让大家了解并且能够熟练运用Java给我们封装好的适合在多线程并发运行的环境下工...

2019-05-04 21:03:41 438

原创 Java多线程与并发(2):多线程基础和线程安全性

在上一章我们介绍了线程基础相关的内容,知道了什么是线程、线程存在的状态以及Java如何创建线程等内容,线程是程序执行的基本单元,任何程序都离不开线程,本章我们就来讲讲多线程的基础内容,什么是多线程呢?从字面上来说就是多个线程嘛,我们在学校写的小项目甚至在一些中小型的公司项目中通常都不会涉及到多线程相关的内容,主要是因为这种项目的用户群体不大,像淘宝这种超大型项目来说解决基础的业务是...

2019-03-25 22:26:38 172

原创 Java多线程与并发(1):线程基础和Java线程的创建

进程和线程定义:进程:是具有一定独立功能的程序关于某个数据集合上的一次运行活动,他是系统进行资源分配和调度的一个独立单位,一个应用程序包含一个或多个进程。线程:是CPU调度和分派的基本单元,是进程中的一个实体,一个进程包含至少一个线程,关系:一个进程至少包含一个线程,同一个进程中的多个线程可以共享进程的所分配的资源,在应用程序运行的时候,实际是每个线程在执行,比进程更小...

2019-02-28 20:43:58 157 1

原创 深入Java虚拟机(3):GC(垃圾回收)算法和垃圾回收器

在上篇JVM内存结构有提到垃圾回收相关的内容,并且通过从内存的角度来分析为什么要进行垃圾回收,本文将详细讲解各种垃圾回收(Garbage Collection)算法以及垃圾回收器和实现原理。本文主要是概念性的东西,希望大家在看各种垃圾回收算法的时候,能够结合实际去考虑不同算法的优劣。 注:本文相关图片资源来源均在文尾给出参考文献来由在我们进入文章之前可以先想几个...

2019-02-23 15:49:05 651

原创 深入Java虚拟机(2):JVM内存结构详解

我的上一篇讲了关于Java类的生命周期和类加载机制中有涉及到JVM虚拟机内存,这篇文章就详细介绍关于JVM内存的结构、内存中不同区域的主要职责,在描述各区域的职责的同时,还会说到具体不同内存区域中的具体结构空间以及这些结构布局的目的及特性,了解这些基础的东西对在今后学习或者工作开发当中出现了有关内存的问题就可以很快的定位问题然后解决问题,另外结合内存结构再学习关于垃圾回收相关的知识...

2019-02-19 13:49:43 1476

原创 深入Java虚拟机(1):Java类的生命周期和加载机制

关于这块java基础知识内容在网上一大片,但是很多笔者是生搬基本的概念陈述出来,很少有自己的体会,让初学者甚至有一些工作经验的同学来说都不够深刻理解,我个人学习的方式就是:尽量用实际的例子去理解,而不是干巴巴记背基础的概念内容,这样对知识的学习永远只会停留在表面,无法深入理解更无法扩展应用到其他方面,另外我在看别人的博客的时候,也很少感觉到作者能通过文字把读者带入一起思考,一起深入...

2019-02-12 22:32:55 453 1

原创 数据库事务的复习笔记

什么是事务:专业术语:事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全的不执行。白话:事务就是指一个整体,这个整体里面的执行操作(就比如软件开发中对数据库的多条操作的代码)要么全部都要执行完,要不然其中一处没有成功执行那么这个整体里面的所有执行操作都不能成功执行。举个栗子:小明过生日,小明爸爸用微信给小明转了250,那么在微信服务器端就要对数...

2017-10-08 22:47:48 272

空空如也

空空如也

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

TA关注的人

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