- 博客(15)
- 问答 (1)
- 收藏
- 关注
原创 GC参数
一.串行收集器特点:最古老 最稳定 效率高缺点:可能会发生较长时间的停顿参数:-XX:+UseSerialGC新生代.老生代使用穿行回收老生代复制算法.新生代标记压缩算法二.并行收集器参数-XX:+UseParNewGC影响:新生代串行.老年代并行(只影响新生代)复制算法,因为是多线程的需要多核支持,多线程并行的复制算法可以使用-XX:ParallelGCT...
2019-03-22 17:47:00
171
原创 JAVA-JUC-ReentrantLock
ReentrantLock 与synchronized区别1.可重入性 两者的区别不大 都是同一个线程进入一次锁的计数器自增1要等到锁的计数器下降为0时才能释放锁2.锁的实现synchronized关键字是通过JVM实现的,ReentrantLock是通过JDK实现的3.性能区别synchronize优化后区别不大,官方推荐使用synchronized 因为使用方便3.功能区别...
2019-02-27 22:01:57
196
原创 JAVA-JUC-CountDownLatch使用方式
写之前呢也看过别的技术博客大都是大讲CountDownLatch的概念 看完之后一头雾水不知道到底什么是重点,所以打算写一篇超简单不带概念的东西,看完就能用的玩意!其实 CountDownLatch很简单就是你创建的时候给一个数量X 然后使用的时候每次调用方法X-1当X=0执行下一步代码逻辑!就是这么简单package com.common.example.JavaCore.ju...
2019-02-26 23:56:33
268
原创 linux虚拟机搭建hadoop集群(超简单)
1.下载:1.1 下载centos7:黑羊君是在官网下载的centos 因为是外网 如果没有VPN的话可能比较慢,当然也可以百度一下国内的镜像站 例如:阿里云镜像 网易云镜像 清华镜像等等...官网地址:https://www.centos.org/download/点击下图红色圈圈处 可选择历史版本 一般下载DVD ISO版本安装 可以选择桌面版 或者最小mini安装.这是黑...
2018-10-18 23:48:46
13872
4
原创 docker 安装redis
1.下载最新版redis docker pull redis:latest2.查看下载好的镜像 docker images3.,使用Reids镜像,创建并启动Redis容器 docker run -p 6379:6379 -v $PWD/data:/data -d redis:latest redis-server --appendonly yes-p 6379:6...
2018-08-22 18:37:34
175
原创 docker安装 mysql
1. 安装docker (建议上官网下载安装包安装。) $ brew install docker 2. 下载mysql镜像 $ docker pull mysql 3. 启动mysql实例 $ docker run --name mingxie-mysql -p 32xxx:3306 -e MYSQL_ROOT_PASSWORD=1234 -d my...
2018-08-21 11:00:40
155
原创 JAVA NIO(三) 三种文件的复制方法与效率对比
文件的复制最能体现io效率了.因为既需要读取数据还需要写出到硬盘中,下面提供了三种文件复制的方法 可以对比一下 直接缓冲区与非直接缓冲区的效率对比.public class Nio { public static void main(String[] args) throws IOException { nioCopyTest1(); nioCopyTes...
2018-03-24 11:21:31
3542
原创 Java NIO(二) 直接缓冲区与非直接缓冲区的区别
这是非直接缓冲区当我们的程序想要从硬盘中读取数据 需要1.先从物理硬盘把数据读取到物理内存中2再将内容复制到JVM的内存中3然后读取应用程序才可以读取到内容读写都是这样需要复制这一个动作 当遇到大文本的文件时 效率及其低下.直接缓冲区的是图中红线所标识的 直接在应用程序和物理磁盘中直接在内存中建立一个缓冲区在物理内存中,这样省略了复制的步骤 效率由此提高.其中传统的io和 nio的accocate...
2018-03-22 20:31:49
2650
1
原创 Java NIO(一) NIO的基本概念与使用
public class TestBuffer { /** * 一. 缓冲区 (Buffer):Java Nio中负责数据的 存取+缓冲就是数组.用于存储不同类型的数据 * * 根据类型不同(boolean 除外) 都提供了对应的缓冲区 * ByteBuffer * CharBuffer * ShortBuffer *...
2018-03-22 20:09:09
525
翻译 Java用于生成唯一ID
/** * 用于生成唯一 ID * 关于如何在系统中生成唯一性 ID 的问题(如订单号、批次号等),一直困扰了许久。因为还要考虑并发的问题,所以时间戳 + 随机数的组合并不可取,Java 中的 UUID 是一种可取的方法,但它的缺点是序列号太长了,而且没有可读性,对用户来说这么一堆乱码是极不友好的。 推特的工程师 snowflake 也提出了一个在分布式系统中生成唯一序列的方法。Sno...
2018-03-04 15:35:43
9150
原创 GC垃圾回收算法
1.引用计数法引用计数法的算法很简单,对于一个对象A,任何一个对象引用了A,A引用的计数器就会+1,当引用失效时计数器就会-1.只要A的引用计数器为0时,则对象A就不能再被使用了.这个垃圾回收法因为无法解决循环引用的问题,已不被jvm使用.2.标记清除法标记-清除算法是现代垃圾回收算法的思想基础.标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段.在标记阶段,首先通过根节点标记所以从根节点开...
2018-02-12 15:02:01
211
原创 JVM 参数调优笔记
栈大小分配:栈大小通常只有几百k,因为每个线程启动都会有自己的栈空间如果你想你的程序多跑一些线程的话.那么你的栈空间应该是减小.而不是增大.当你的函数调用太深就出现 栈溢出java.lang.StackOverflowError例如一个永远没有结束的递归必然会出现 栈溢出:...
2018-02-11 16:26:53
228
原创 Java实现数据库的groupby (list转map 百度面试题)
Java实现数据库的groupby之前去百度面试的时候遇到过这个问题,因为以前没想过这个问题 当时就懵逼了。 其实实现起来很简单就是个list转map看代码代码块代码块语法遵循标准markdown代码,例如:/** * List转map工具类 * @author Gz * */public class ListToMapUtils { public static Map<Inte
2017-01-20 15:42:22
1410
1
原创 手写实现Java ArrayList实现
手写实现Java ArrayList实现只是实现了一些常用的方法 例如 add() get() set() remove()方法。 都有注释 方便同学们理解代码。“`Javas package collection; /** * 手写实现ArrayList方法 * @author Gz * */ public class ArrayListDemo {private Obj
2016-11-15 23:35:17
1269
空空如也
一个关于Java缓存的问题
2016-12-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人