摘要: 停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。 在java中有以下3种方法可以终止正在运行的线程: 使用退出标志,使线 阅读全文
posted @ 2018-08-02 17:08 卡布奇诺与奶茶丶 阅读(253) 评论(0) 推荐(0) 编辑
摘要: jvm 总体梳理 jvm体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优 当然这些知识点在之前的文章中都有详细的介绍,这里只做主干的梳理 这里画了一个思维导图,将所有的知识点进行了陈列,因为图比较大可以点击右键下载了放大查看。 类的加载机制 主要关注点: 什么 阅读全文
posted @ 2018-07-31 15:18 卡布奇诺与奶茶丶 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 1、什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么 阅读全文
posted @ 2018-06-21 17:11 卡布奇诺与奶茶丶 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 常见GC算法 在C/C++中是由程序员自己去申请、管理和释放内存的,因此没有GC的概念。而在Java中,专门有一个用于垃圾回收的后台线程来进行监控、扫描,自动将一些无用的内存进行释放。下面介绍几种常见的GC算法。 引用计数法 Reference Counting 给对象添加一个引用计数器,每过一个引 阅读全文
posted @ 2018-06-21 17:11 卡布奇诺与奶茶丶 阅读(8241) 评论(0) 推荐(0) 编辑
摘要: 逃逸分析(Escape Analysis)是目前Java虚拟机中比较前沿的优化技术。 逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他地方中,称为方法逃逸。 例如: 1 2 3 4 5 6 public static Strin 阅读全文
posted @ 2018-06-21 16:21 卡布奇诺与奶茶丶 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 转自: http://www.open-open.com/lib/view/open1432200119489.html 这两天看了一下深入浅出JVM这本书,推荐给高级的java程序员去看,对你了解JAVA的底层和运行机制有比较大的帮助。废话不想讲了.入主题:先了解具体的概念:JAVA的JVM的内存 阅读全文
posted @ 2018-06-21 15:33 卡布奇诺与奶茶丶 阅读(183) 评论(0) 推荐(0) 编辑
摘要: JVM的本地方法栈 对于一个运行中的Java程序而言,它还可能会用到一些跟本地方法相关的数据区。当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。本地方法可以通过本地方法接口来访问虚拟机的运行时数据区,但不止如此,它还可以做任何它想做的事情。 本地方法本质上时依赖于实现的 阅读全文
posted @ 2018-06-14 16:45 卡布奇诺与奶茶丶 阅读(2579) 评论(0) 推荐(0) 编辑
摘要: 这里概要介绍一下JVM在启动后,作为操作系统的一个进程的基本结构,以及从操作系统角度看,JVM如何管理它从操作系统里申请来的内存的,也就是JVM的内存结构或者叫JVM内存模型。 1、JVM的基本结构 JVM启动后,对操作系统来说,JVM是一个的进程,这个进程的基本结构如上图所示。它包括:类加载器子系 阅读全文
posted @ 2018-06-14 16:08 卡布奇诺与奶茶丶 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 一、概述 在分布式环境下,开发者通常会遇到一些分布存储的场景,例如数据库的分库分表(比如用户id尾号为1的放入数据库1,id尾号为2的放入数据库2);又如分布式缓存数据的获取(比如根据ip地址进行缓存数据的分布存放)。在这种情况下,如何快速的将数据放入指定的位置,又如何快速获取是个最基本的要求,对于 阅读全文
posted @ 2018-06-14 16:06 卡布奇诺与奶茶丶 阅读(1166) 评论(0) 推荐(0) 编辑
摘要: 1 * 插入排序 2 * 时间复杂度O(n2) 3 * @param array原地排序算法 4 */ 5 public void insertSort(int[] array) { 6 for (int i = 1; i 0 &;&; array[position - 1] > present) {// 右移 10 array[position] =... 阅读全文
posted @ 2018-06-14 16:01 卡布奇诺与奶茶丶 阅读(544) 评论(0) 推荐(0) 编辑