自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 linux 中的一些小命令(持续更新...)

date 查看当前日期 > date 2. cal 日历 > cal > cal 2019 3. 在终端中使用计算器 bc > bc 4. 查看命令的操作手册 man > man date 向【上】查找某个字符串 /string 向【下】查找某个字...

2019-08-17 22:46:01

阅读数 25

评论数 0

原创 JVM 虚拟机监控性能监控和故障处理工具

在 jdk 中,其实已经包含了很多的使用工具。 处理常用的 java 、 jar 、 javac 等,还有 jps、jstat 等。 名称 作用 jps JVM Process Status Tool , 显示指定系统内所有的 HotSpot 虚拟机进程 jstat JVM ...

2019-08-28 22:48:34

阅读数 21

评论数 0

原创 JVM 垃圾回收算法和垃圾收集器(未完待续....)

标记-清除算法 复制算法 复制算法,将内存容量划分为大小相等的两块,每次使用其中的一。当一块的内存用完了,将还存活的对象复制到另外一块上面,然后把已使用过的内存空间一次清理掉。 现在的商业虚拟机使用这种算法来回收新生代 但是其将内存分为一块交大的 Eden 空间和凉快较小的 Survivor 空间...

2019-08-26 22:25:36

阅读数 21

评论数 0

原创 JVM 如何判断一个对象可被回收?

GC 要完成的三件事情? 哪些内存需要回收? 什么时候回收? 如何回收? 如何判断一个对象可以被回收? 引用计数算法 可达性分析算法

2019-08-22 22:35:22

阅读数 24

评论数 0

原创 JVM 运行时数据区

运行时数据区: 程序计数器 Java 虚拟机栈 本地方法栈 Java堆 方法区 Java 堆 Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。 所有的对象实例和数组都要在堆上分配。 Java 堆是垃圾收集器管理的主要区域,因此也被称为 “GC堆”。 Java 堆细分: 新生代...

2019-08-21 22:54:56

阅读数 9

评论数 0

原创 linux 压缩命令

常见的几种压缩文件扩展名: *.Z compress 程序压缩的文件 *.zip zip 程序压缩的文件 *.gz gzip 程序压缩的文件 *.bz2 bzip2 程序压缩的文件 *.xz xz 程序压缩的文件 *.tar ...

2019-08-19 23:34:29

阅读数 10

评论数 0

原创 linux 修改文件属性和权限

记录几个常用于用户组、拥有者、各种身份的权限之修改的命令: chgrp:修改文件所属用户组 chown: 修改文件拥有者 chmod:修改文件的权限, SUID、SGID、SBIT 等的特性 chgrp 修改的组名必须要在 /etc/group 文件中存在就行,否则就会报错 chown 修改...

2019-08-18 13:21:03

阅读数 21

评论数 0

原创 java.util.concurrent 同步类器中的AQS

在 java.util.concurrent 中包含许多的阻塞类: ReentrantLock Semaphore ReentrantReadWriteLock CountDownLatch SynchronousQueue FutureTask 它们都是基于 AQS 构建的。 java8 a...

2019-08-17 11:40:35

阅读数 16

评论数 0

原创 基于数组的有界缓存实现

public class BaseBoundBuffer { public String[] buf; private int tail; private int count; private int head; public BaseBoundBuff...

2019-08-15 23:39:26

阅读数 76

评论数 0

原创 VirtualBox 最小化安装 CentOS7

在学习Linux的过程中,使用虚拟机安装一个最小 Linux 系统是最方便的了。 在安装完成后发现 ping www.baidu.com 没有响应,后来查询是没有启动服务。 修改如下: vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 ONBOOT =...

2019-08-12 22:11:47

阅读数 78

评论数 0

原创 Executor 饱和策略

前言 在使用线程池的时候,如果提交的任务超过了线程的大小,就会将任务放到一个队列中,这个队列可以使无界队列 LinkedBlockingQueue,也可是是有界队列 ArrayBlockingQueue。 当有界队列满了的时候,饱和策略就开始发挥作用。 ThreadPoolExecutor 的饱和...

2019-08-11 12:21:52

阅读数 22

评论数 0

原创 ExecutorService 四种使用方式

Java 通过 Executors 提供四种线程池, 例如: newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列...

2019-08-10 12:11:23

阅读数 8

评论数 0

原创 mysql 复制一条记录

新建一张表: create table t_coffee ( id int auto_increment primary key, name varchar(111) null, price double(5,2) null, create_time datetime null, u...

2019-08-07 22:16:18

阅读数 15

评论数 0

原创 springboot 整合 JdbcTemplate

前言 Spring 对数据库的操作在jdbc上面做了封装JdbcTemplate。 demo 以 springboot 整合 jdbcTemplate 的使用 pom.xml <parent> <groupId>org.springframework.boot</...

2019-08-07 22:01:28

阅读数 11

评论数 0

原创 kafka 查看 topic 消费情况

Kafka Kafka 查看消费情况 不同的kafka版本不一致,运行的命令也是不同的 首先找到 kafka 的运行路径 运行方式一: ./kafka-consumer-groups --zookeeper localhost:2181 --describe --group groupName ...

2019-08-06 23:42:44

阅读数 1006

评论数 0

原创 hadoop 单机版部署

Hadoop 学习 Mac Hadoop 单机版部署 确定以安装 brew 使用brew 安装 hadoop 下载有点慢,可以配置 brew 源,一般 brew 安装的软件默认安装在 /usr/local/Cellar 目录下 brew install hadoop 配置SSH ...

2019-08-06 23:41:26

阅读数 9

评论数 0

原创 java 集合set的用法

前言 在一些去重的场景中,经常会用到 Set 集合 Set HashSet HashSet 使用 hash算法来存储集合的元素,具有很好的存储和查找的性能。 特点: 不能保证元素的顺序 HashSet 非线程安全 可以包含null 当向 HashSet 中存储一个元素时,会调用该元素的 ha...

2019-08-04 19:24:16

阅读数 23

评论数 0

原创 Java 集合总结以及 java.util.ConcurrentModificationException 异常分析

前言 在开发中,经常使用的集合就是 ArrayList 和 HashMap,在一些需要排序的场景中,可能需要使用 TreeSet 和 TreeMap 等,其余的集合类有的由于长时间不适用,已经忘记了其特性和应用场景,所以在这里重新总结一下,方便以后复习。 Java 集合体系 ...

2019-08-04 17:32:35

阅读数 16

评论数 0

原创 深入理解 ThreadLocal

前言 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。 ThreadLocal 内部结构 Thread 源码: /* Th...

2019-08-03 22:10:26

阅读数 19

评论数 0

原创 非原子的 64位操作引发的并发问题

前言 我们知道在多线程中,对共享变量进行修改,有可能不能读到立即修改的值,但是其最多是一个失效值,而不是随机值 示例代码: public class AA { private int value; public int getValue() { return v...

2019-08-03 17:54:26

阅读数 19

评论数 0

原创 synchronize 重入锁

前言 重入锁 重入的一种实现方式: 为每一个锁关联一个获取计数值和一个所有者线程。当计数值为0时,这个锁被认为是没有被任何线程持有。当一个线程持有一个未持有的锁的时候,JVM 将记下锁的持有者,并且将获取计数值将其置1。如果这个线程再次获取这个锁,计数值+1,当线程退出同步代码块时,计数值-1。当...

2019-08-03 17:19:51

阅读数 40

评论数 0

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