Wesley13 Wesley13
3年前
java——平衡二叉树 AVLTree、AVLMap、AVLSet
平衡二叉树:对于任意一个节点,左子树和右子树的高度差不能超过1packageDate_pacage;importjava.util.ArrayList;publicclassAVLTree<KextendsComparable<K,V{privateclassNod
Wesley13 Wesley13
3年前
java多线程环境下检查线程cpu消耗工具
  在写这篇blog之前,我都是用jstack,ps,top,sar等等命令来定位多线程环境下的一些性能问题,尤其是定位性能瓶颈。  jconsole之前也经常用,但是感觉只能看一些宏观的数据,比如产品有没有内存泄露。  今天发现有人开放了一个jconsole的插件。可以很方便的查看产品中每个线程的cpu消耗。  可以到插件作者的
Wesley13 Wesley13
3年前
Java中对jsonArray的排序,使用的是Gson
使用Gson对json解析字符串,转化为json对象.先上代码:下面是main方法里面的代码packagetestJava;importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;
Wesley13 Wesley13
3年前
Java并发基础05. 传统线程同步通信技术
先看一个问题:有两个线程,子线程先执行10次,然后主线程执行5次,然后再切换到子线程执行10,再主线程执行5次……如此往返执行50次。看完这个问题,很明显要用到线程间的通信了,先分析一下思路:首先肯定要有两个线程,然后每个线程中肯定有个50次的循环,因为每个线程都要往返执行任务50次,主线程的任务是执行5次,子线程的任务是执行10次。线程间通信
Wesley13 Wesley13
3年前
JAVA递归实现线索化二叉树
JAVA递归实现线索化二叉树基础理论首先,二叉树递归遍历分为先序遍历、中序遍历和后序遍历。先序遍历为:根节点左子树右子树中序遍历为:左子树根节点右子树后序遍历为:左子树右子树根节点(只要记住根节点在哪里就是什么遍历,且都是先左再右)线索化现在有这么一棵二叉树,它的数据结
Wesley13 Wesley13
3年前
Java 位运算(移位、位与、或、异或、非)
//1、左移(<<)//00000000000000000000000000000101然后左移2位后,低位补0:////00000000000000000000000000010100换算成10进制为20System.out.println(5<<2);//运行结果是20//2、右移
Wesley13 Wesley13
3年前
Java并发编程:多线程如何实现阻塞与唤醒
线程的阻塞和唤醒在多线程并发过程中是一个关键点,当线程数量达到很大的数量级时,并发可能带来很多隐蔽的问题。如何正确暂停一个线程,暂停后又如何在一个要求的时间点恢复,这些都需要仔细考虑的细节。Java为我们提供了多种API来对线程进行阻塞和唤醒操作,比如suspend与resume、sleep、wait与notify以及park与unpark等等。!(
Wesley13 Wesley13
3年前
Java程序内存分析:使用mat工具分析内存占用
MAT不是一个万能工具,它并不能处理所有类型的堆存储文件。但是比较主流的厂家和格式,例如Sun,HP,SAP所采用的HPROF二进制堆存储文件,以及IBM的PHD堆存储文件等都能被很好的解析。下面来看看要怎么做呢,也许对你有用。官方文档:http://help.eclipse.org/luna/index.jsp?topic/
Wesley13 Wesley13
3年前
Java 软件高级工程师笔试题
【智力部分】(30分)1\.烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分)两头同时烧2\.4,4,10,10,加减乘除,怎么出24点?四个数字分别只能用一次(5分)(10\104)/43\.如果你有无穷多的水,一个容积为3L的和5L的提桶,你如何准确称出4L的水?(5分)第一步:向5L的通中放两次3
Wesley13 Wesley13
3年前
.Net转Java自学之路—基础巩固篇十三(集合)
集合:集合是用于存储对象的一个工具。  集合与数组的特点    相同点:都是一个容器    不同点:      集合:可以存储对象,只能存储对象,集合长度可变。      数组:可以存储对象,也可以存储基本数据类型,数组长度固定。  容器对象有很多种,通过内部的数据结构来区分,数据结构就是一种数据存储方式。  在不断