自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 JVM-对象内存分配与回收细节问题

对象内存分配与回收细节问题1. 禁用System.gc()System.gc():会显示直接触发Full GC,同时触发老年代和新生代进行回收。而一般情况是我们认为,垃圾回收时自动进行的,无需手动触发。频繁的垃圾回收对系统性能造成较大影响。可以使用-XX:+DisableExplicitGC,则禁用显示GC,使得System.gc()等价于一个空函数。2. System.gc()使用并发回收默认情况

2018-04-30 11:32:51 343 1

原创 算法-快速排序及相关问题

快速排序及相关问题1. 快速排序基础版package com.liuyao.sort;import com.liuyao.utils.SortHelper;/** * Created By liuyao on 2018/4/13 22:09. */public class QuickSort { private QuickSort(){} private static int p

2018-04-30 11:31:39 191

原创 算法-并查集

并查集(Union Find) 并查集可以很高效的解决连接问题 (Connectivity Problem) 网络中节点间的连接状态 网络是个抽象的概念: 用户之间形成的网络 数学中的集合1. 实现方式一首先设置每个元素在id数组中的值就是自己,find操作就是直接返回当前元素所对应的id数组中的值,如果在同一个集合的话,那么他们的值应该相同的。合并操

2018-04-30 10:16:55 482

原创 算法-二叉搜索树(BST)

二叉搜索树 Binary Search Tree 高效,不仅可以查找数据;还可以高效的插入,删除数据-动态维护数据。 还可以很方便的回答很多数据之间的关系问题: min,max,floor,ceil,rank,select 二叉搜索树可以不用是完全的二叉搜索树。下面这个也是二叉搜索树:由于二叉搜索树可以不是完全的二叉树,所以用数组表示不方便,我们采用的是用 Nod

2018-04-30 10:16:33 284

原创 算法-堆

堆1. 堆的基本实现堆的时间复杂度为O(NlogN),利用二叉堆实现最大堆特性:堆中的某个节点值总是不大于其父节点的值,堆总是一棵完全二叉树用数组存放二叉堆,元素从1开始存放1.1 Shift Up操作上面执行的是先插入操作:先count++,然后把插入的元素放在最后面,然后比较该元素和父节点的大小,如果比父节点大,则此时不满足堆的性质,交换,直到该元素的值比父节点的值小为止。 public vo

2018-04-30 10:16:07 431

转载 Java基础-Hash算法

文章转载自: 全网把Map中的hash()分析的最透彻的文章,别无二家。 你知道HashMap中hash方法的具体实现吗?你知道HashTable、ConcurrentHashMap中hash方法的实现以及原因吗?你知道为什么要这么实现吗?你知道为什么JDK 7和JDK 8中hash方法实现的不同以及区别吗?如果你不...

2018-04-30 10:14:38 1672

原创 Java并发-HashMap和ConcurrentHashMap

HashMap和ConcurrentHashMap1. HashMap1.1 HashMap 结构 HashMap 底层是一个数组结构,而每一个数组元素后面又是一个链表,HashMap有两个参数影响他的性能,一个是初始容量和加载因子,当HashMap中的条目数量达到了初始容量与加载因子的乘积之后就会发生rehash(扩容),默认的初始容量是16,加载因子是0.75f,即条目...

2018-04-30 10:13:32 270

原创 Java并发-线程池

线程池1. 对比new Thead 弊端每次 new Thread 新建对象,性能差线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或OOM缺乏更多功能,如更多执行,定期执行,线程中断线程池的好处重用存在的线程,减少对象创建,消亡的开销,性能佳可有效控制最大并发线程数,提供系统资源利用率,同时可以避免过多资源竞争,避免阻塞。可以...

2018-04-30 10:13:14 141

原创 Java并发-J.U.C组件拓展

J.U.C组件拓展1. FutureCallable 与 Runnable 接口对比Future 接口FutureTask 类import lombok.extern.slf4j.Slf4j;import java.util.concurrent.*;/** * Created By liuyao on 2018/4/22 17:30. */@Slf4j...

2018-04-30 10:12:49 271

原创 Java并发-J.U.C之AQS

AbstractQueuedSynchronizer - AQS使用Node实现FIFO队列,可以用于构建或者其他同步装置的基础框架。利用了一个int类型表示状态使用方法是继承,使用者要继承AQS,并复写其中的方法子类通过继承并通过实现它的方法管理其状态(acquire 和 release )的方法操纵状态可以同时实现排他锁和共享锁模式(独占,共享),子类要么实现独占,要么实现共...

2018-04-30 10:12:24 192

原创 算法-海量数据处理

海量数据处理1. 散列分治 对于海量数据,由于没办法将其一次性装入内存进行处理,不得不将其通过散列映射的方法分割成相应的小块数据,然后再对各个小块数据通过hash_map进行统计或其他操作。1.1 寻找 Top K 问题 提取出某日访问百度次数最多的那个IP解决问题三个步骤:分而治之/散列映射。现将该日访问的IP全部提取出来,逐个写入到一个大文件中,然...

2018-04-30 10:12:03 221

原创 JVM-JDK自带命令行工具

JDK自带命令行工具1. jps-查看Java进程 jps命令相当于Linux下的ps命令,只不过它只列出Java进程。jps :列出Java程序进程ID和Main函数名称jps -q :只输出进程IDjps -m :输出传递给Java进程(主函数)的参数jps -l :输出主函数的完整路径jps -v :显示传递给Java虚拟的参数2. jstat-...

2018-04-30 10:11:01 3563

原创 算法-排序算法整理(算法第四版)

选择排序运行时间和输入无关,选择排序不善于利用数组的初始状态,故一个有序的数组或者主键全部相等的数组和一个元素随机排列的数组所用的时间是一样的。数据移动是最少的N次交换,每次交换两个元素的值,故选择排序用类N次交换,交换次数和大小和数组的大小是线性关系。每趟都可以让一个元素回到最后正确的位置//选择排序public class Selection{ // 将a按照升序排列...

2018-04-18 19:36:24 323

转载 分布式-网站高并发大流量访问的处理及解决方法

转载来自:网站高并发大流量访问的处理及解决方法 网站高并发大流量访问的处理及解决方法1. 硬件升级普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻底解决性能问题。2. 负载均衡它是根据某种负载策略把请求分发到集群中的每一台服务器上,让整个服务器群来...

2018-04-17 18:00:23 708

转载 分布式-理解大型分布式网站你必须知道这些概念

转载来自:理解大型分布式网站你必须知道这些概念理解大型分布式网站你必须知道这些概念1. I/O优化增加缓存,减少磁盘的访问次数。优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访...

2018-04-17 17:59:57 243

原创 算法-快速排序及相关问题

快速排序及相关问题1. 快速排序基础版package com.liuyao.sort;import com.liuyao.utils.SortHelper;/** * Created By liuyao on 2018/4/13 22:09. */public class QuickSort { private QuickSort(){} priva...

2018-04-17 17:57:29 195

原创 Java并发-线程安全性

线程安全性 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么这个类就是线程安全的1. 三个特性原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作可见性:一个线程对主内存的修改可以被其他线程观察到有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排...

2018-04-14 16:57:36 179

原创 JVM-四种引用

四种引用当内存空间还足够的时,则能保留在内存之中,如果内存空间在进行垃圾收集后还是非常紧张,则可以抛弃这些对象。故从JDK1.2对引用概念进行了扩充:1. 强引用程序代码中普遍存在的,类似Object obj=new Object()这类引用 1. 强引用可以直接访问对象 2. 强引用可能导致内存泄露 3. 强引用所指向的对象在任何时候都不会被回收的...

2018-04-12 20:53:50 261

转载 Java中值传递和引用传递

值传递和引用传递值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。一:搞清楚 基本类型 和 引用类型的不同之处int num = 10;Stri...

2018-04-08 17:27:24 119

原创 关键字final,static使用方式总结

final final关键字有这是无法改变的或者终态的含义,可以修饰非抽象类,非抽象类成员方法和变量final类不能继承,没有子类,final类中的方法默认是final的final方法不能被子类方法覆盖,但可以被继承final成员变量表示常量,只能被赋值一次,赋值后值不再改变final不能用于修饰构造方法注意:父类的private成员方法是不能被子类方法覆盖的,因此pr...

2018-04-08 16:40:01 461

原创 Java并发-Java内存模型

Java内存模型为了屏蔽掉各种硬件和操作系统间访问内存的差异,以实现让Java程序在各种平台下都达到一致的并发效果,Java定义Java内存模型。JMM是一种规范,规范了JVM与计算机内存是如何协同工作的。它规定了一个线程如何和何时可以看到其他线程修改过后共享变量的值,以及在必须时如何同步的访问共享变量。堆是运行时动态分配内存的,存取速度较慢,栈存取速度比堆快。计算机内存架构:...

2018-04-07 15:27:36 177

转载 Java并发-Cache一致性协议之MESI

原文链接:《大话处理器》Cache一致性协议之MESI  Cache一致性协议之MESI          处理器上有一套完整的协议,来保证Cache一致性。比较经典的Cache一致性协议当属MESI协议,奔腾处理器有使用它,很多其他...

2018-04-07 12:50:09 882

原创 JVM-常见虚拟机配置

最大堆和初始堆的设置package com.liuyao;/** * Created By liuyao on 2018/4/6 10:39. */public class HeapAlloc { public static void main(String[] args) { System.out.print("MaxMemory="); S...

2018-04-06 18:24:45 536

原创 JVM-常用Java虚拟机GC参数

1. 常用Java虚拟机GC基础参数-XX:+PrintGC 使用该参数启动JVM后,只要遇到GC,就会打印日志。-XX:+PrintGCDetails 更加详细的GC信息、-XX:+PrintHeapAtGC 在GC日志输出前后,输出详细的堆信息。-XX:+PrintGCTimeStamps 在每次GC发生时,额外输出GC发生的时间,该时间为虚拟机启动后的时间偏移量。-XX:+Pr...

2018-04-05 23:51:16 523

原创 剑指Offer-二叉树的镜像

二叉树的镜像题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...

2018-04-01 23:58:58 120

原创 剑指Offer-树的子结构

树的子结构题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)分析主要思想是分别递归遍历左边和右边 代码public static class TreeNode { int val = 0; TreeNode left = null; TreeNode right =...

2018-04-01 23:45:41 133

空空如也

空空如也

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

TA关注的人

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