- 博客(23)
- 收藏
- 关注
原创 详细图解解决 CentOS7 yum出现“Could not retrieve mirrorlist”的问题
目录•写在前面•错误•解决方案验证配置resolv.conf是否配置验证网卡配置•写在前面yum很强大,借助于YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依懒关系,而无须管理员逐个、手工地安装每个rpm包,使管理员在维护大量Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器可以...
2019-12-30 19:58:31 46857 12
原创 了解并发编程中对象的共享
目录•写在前面•可见性volatile变量•发布与逸出•线程封闭Ad-hoc线程栈封闭ThreadLocal类•不变性•安全发布•写在前面我们不仅希望防止某个线程正在使用对象状态而另一个线程在同时修改该状态,而且希望确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化。如果没有同步,那么这种情况就无法实现,所以我们可以通过显示的同步或者类库...
2019-12-30 11:59:56 11044 1
原创 理解什么是线程安全性、原子性
目录•写在前面•原子性加锁机制•写在前面进程想要执行任务需要依赖线程,换句话说就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。提到多线程这里要说两个概念,就是串行和并行,搞清楚这个我们才能更好的理解多线程。所谓串行其实是相对于单条线程来执行多个任务来说的,我们就拿下载文件来举个例子,我们下载多个文件,在串行中它是按照一定的顺序去进行下载的,也就是说必须等下载完A...
2019-12-29 11:56:30 12388
原创 由JVM深入了解Java的线程安全与锁优化
目录•写在前面•线程安全Java语言中的线程安全线程安全的实现方法•锁优化自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁•写在前面讲道理,在谈及线程安全以及锁优化之前,需要先搞清楚啥是线程,像那些硬概念这里我就不多说,什么线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源,又可以独立调度(...
2019-12-25 15:12:17 11180
原创 深入理解Java内存模型(JMM和volatile关键词)
目录•写在前面•物理机三级缓存•乱序执行优化•Java内存模型•内存间交互操作•volatile型变量•先行发生原则•写在前面在正式讲解之前呢,我们先来讨论讨论硬件的效率与一致性。这里我们讲讲物理机对并发的处理方案,因为物理机遇到的并发问题与虚拟机中的情况有不少相似之处,所以它的方案对于虚拟机的实现也有相当大的参考意义。如何让计算机并发执行若干个运算任务以及如何...
2019-12-25 11:35:22 11141
原创 彻底搞清楚Java的位运算(位实现加减乘除)
目录•写在前面•机器数和机器数的真值•原码、反码和补码的基础概念和计算方法原码反码补码•java中的运算符•不用乘除算乘除加法减法乘法除法•写在前面二进制位运算是最贴近计算机真实运算操作,通过位运算,我们可以高效的完成各种基础运算(加减乘除取余等),我们还可以使用位运算巧妙的完成原本很复杂的工作,真正理解计算机,我们才能更好的使用计算机。在这...
2019-12-23 20:27:19 16520 6
原创 Java虚拟机类加载机制-双亲委派模型
目录•写在前面•类加载的时机•类加载的过程加载验证准备解析初始化•类加载器•写在前面其实类加载机制并不是很神秘,可以说我们无时无刻不在是由类加载,只是很多时候我们不需要关注类加载机制会给我们带来啥影响,不过如果你深入了解类加载机制的原理,你就会发现,原来我们日常代码是这样运行的,甚至对代码编写的各类继承、本地库方法、网络间方法,来点以前没敢尝试过的骚操作...
2019-12-20 20:09:19 11067
原创 通俗易懂且详细的了解Class类文件结构
目录•写在前面•无符号数和表•魔数和Class文件的版本•常量池•访问标志•类索引、父类索引与接口索引集合•字段表集合•方法表集合•写在前面提到java,我们可能第一时间想起的就是那句口号,“一次编写,到处运行”,这体现了java与平台无关的优势,而实现这种特性的的基础,是通过将java编译成字节码文件,虚拟机可以载入和执行同一种平台无关的字节码,从而实现这...
2019-12-19 19:37:31 12245
原创 JDK的命令行工具、故障处理分析工具
目录•写在前面•jps虚拟机进程状况工具•jstat虚拟机统计信息监视工具•jinfo配置信息工具•jmap内存映像工具•jhat虚拟机堆转储快照分析工具•jstack堆栈跟踪器•JConsole 监视与管理控制台•VisualVM多合一故障处理工具•写在前面我们平时使用java时,基本都是将下载下来的JDK包用来当基础环境用,一般程序运行包括测试监控都...
2019-12-18 23:44:30 12395 1
原创 JVM的GC回收算法、GC收集器以及内存分配策略
目录•写在前面•标记-清除算法•复制算法•标记-整理算法•HotSpot上的算法实现保障•GC收集器•内存分配策略•写在前面JVM的垃圾回收算法、收集器以及内存分配策略放在一起了解和理解,我觉得有助于我们加深印象,这一篇文章我就不再讲述对象为什么要回收以及何时回收了,想要了解相关知识可以看我的另一篇文章JVM如何判断对象是否要回收。几个点放在一起内容会有些多,不...
2019-12-17 11:18:40 11029 5
原创 JVM如何判断对象能否被回收
目录•写在前面•对象的创建•引用计数算法•可达性分析算法•引用•不可达必须“死”?•最后•写在前面说起Java和C++,很容易想到让人疯狂的指针,Java使用了内存动态分配和垃圾回收技术,让我们从C++的各种指针问题中摆脱出来,更加专心于业务逻辑,不过如果我们需要深入了解java的JVM相关原理,我们必须要面对这些东西,深入了解JVM在内存动态分配和垃圾回收技术...
2019-12-16 16:11:57 12690 5
原创 由浅入深的分析HashMap原理
目录•写在前面•HashMap简介•Hash函数•初始容量和负载因子•通过put和get看底层结构•高并发下的HashMap•写在前面对于大多数人HashMap是一个熟悉又陌生的的类,我们经常在需要使用键值对的地方使用HashMap,但是要你说上HashMap相关实现细节,估计就支支吾吾了,这里我对HashMap进行由浅入深的分析,文章涉及到的HashMap底层源码...
2019-12-13 19:45:27 10555
原创 Java虚拟机运行时数据区
目录•写在前面•程序计数器•java虚拟机栈和本地方法栈•java堆•方法区•写在前面Java虚拟机运行时数据区是我们深入了解JVM的必经之路,那这是什么样的一个区域呢?Java虚拟机在执行Java程序的过程中,会把它所管理的内存划分若干个不同的数据区域,这些区域被赋予不同的用途,它们有着各自创建和销毁时间,有的区域是随着虚拟机进程启动而存在的,有的区域则是依赖用户线程...
2019-12-13 14:55:00 10803
原创 正则表达式匹配(详细多解法)
目录•写在前面•题目•解法一•解法二•解法三•写在前面所谓真的勇士,敢于直面不用API的手撕,我最开始看到这道题的时候,觉得简直就是到秒杀题,不过我还是按捺住了内心用java正则表达式API的冲动,手撕匹配代码,算法使用的思想就是递归,我最开始是使用直接递归解决了这道题,后面看别人的解法的时候,发现在递归上进行了改进,使用了动态规划的思路,降低了子串创建的时间成本,觉得...
2019-12-11 18:50:01 1570
原创 Git常用指令合集
目录•写在前面•新建•配置•增删文件•提交•分支•标签•查看•远程同步•撤销•最后-搭建Git•写在前面首先要熟悉Git的几个名词吧,不然哪叫会用Git,其中Workspace:工作区,Index / Stage:暂存区,Repository:仓库区(或本地仓库),Remote:远程仓库。•新建# 在当前目录新建一个Git代码库$ g...
2019-12-10 18:58:26 10560
原创 Git系列:进一步讲讲Git的分支管理
目录•写在前面•解决冲突•分支创建策略•bug分支•Rebase指令整理分支•最后•写在前面Git分支管理在前面说了,非常方便我们开发,没看过前面的可以到前面看这篇文章,接下来,我们讲讲关于分支管理的其他指令,帮助我们进一步了解分支管理给我们带来了什么方便。•解决冲突冲突是什么?很多时候,当你在分支上进行修改,或者进行多人协同开发的时候,你会需要使用git进...
2019-12-09 20:25:26 540
原创 最大数问题(自定义排序)
目录•写在前面•题目•解法•写在前面最大数问题,不是选中最大的那个数,而是组合成最大的那个数,不是说这个问题有多难,而是说提供了一种很棒的思路,就是自定义排序,我觉得很值得收录,因为使用这种思路可以解决很多问题。话不多说,直接上题。•题目给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例2:输...
2019-12-08 21:27:14 658
原创 最长回文子串(多种解法,附马拉车算法)
目录•写在前面•题目•解法一 暴力破解•解法二 暴力优化•解法三 最长公共子串(动态规划整体)•解法四 中心扩展法•解法五 马拉车算法•结束•写在前面这种类型的题目算是比较常见的,有很多种解决方案,但我想着重说一下马拉车算法,第一因为之前我没有接触了解这个算法,第二就是,这个算法的时间复杂度降到了O(n),我自己在写的时候是使用中心扩展法进行解决的...
2019-12-08 17:59:20 730
原创 寻找两个有序数组的中位数(附上三种解法)
目录•写在前面•题目•解法一•解法二•解法三•结束•写在前面这道题比较经典,我当时在做的时候,想出了两种解决方案,不过总感觉算法不够优美,所以找到了另一种我觉得非常精妙的解法,利用了K最小数的思想去解决这道题,很值得讲一下,不知道K最小数的,可以参考我另一篇文章,点击这里跳转就可以了。下面我废话不多说,直接开始讲解。•题目首先先把题目呈上来,具体题目如下:...
2019-12-06 18:23:32 15335 6
原创 Git系列:如何重命名仓库,并同步远程仓库
目录•写在前面•修改远程仓库名•修改本地仓库名•同步远程和本地仓库•结束•写在前面Git是极其灵活的,它提供了非常多的指令方便我们系统开发,这篇文章要写的就是如何使用指令,修改仓库名,并同步远程仓库。这当我们需要对项目进行修改的时候,非常有用。•修改远程仓库名首先我们需要修改远程仓库的项目名称,这里我们使用GitHub为例进行说明,在GitHub修改已有的...
2019-12-06 14:59:30 9664
原创 Git系列:分支管理
目录•写在前面•理解分支管理•使用分支指令•分支切换switch•下一步•写在前面讲到Git的分支管理还是比较激动的,因为Git的分支管理简直太好用了,效率又高,虽然SVN也有分支管理,但是这些版本控制系统创建和切换分支相当的慢,基本都不去用,而Git不管版本库中的文件数量有多大,都能在短短的一秒内完成操作,简直就是团队协作开发的利器。•理解分支管理在讲相关的指...
2019-12-01 21:16:28 497
原创 Git系列:如何使用远程仓库
目录•写在前面•准备远程仓库,设置SSH•添加远程仓库•克隆远程仓库•下一步•写在前面早在很早之前就说了,Git是分布式版本控制系统,它的优势之一就是非常方便团队进行多人协作开发,之前讲的内容都没有体现出多人协作的特点,这一篇文章就是为了讲解Git在多人协作中的重要功能,就是远程仓库。远程仓库顾名思义就是将一个git仓库放在某个云端机器中,然后使用其余机器对这个远程仓库...
2019-12-01 15:49:56 475
原创 Git系列:管理、撤销以及删除
目录•写在前面•撤销修改git checkout•删除修改rm•下一步在前面提到了对文件的添加更新等操作,使用了git add,git commit等操作,接下来对撤销等相关操作进行说明。•写在前面前面提到过版本回退,我们可以使用git reset指令进行版本回退。但是有时候我们只是想要单纯的对已经修改的内容进行撤销,并不想通过回退操作怎么办?Git有git check...
2019-12-01 11:35:42 10339
1000道 互联网大厂Java工程师面试题(1)(1)(1).pdf
2020-04-03
Eclipse的Properties插件
2018-01-29
JSTL包和standrad包
2018-01-29
java API 1.8
2017-09-19
关于vs2010的使用问题,求助
2017-01-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人