自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JDK源码学习(6)-ConcurrentHashMap代码学习

在JDK源码学习(1)-HashMap源码分析,HashMap与HashTable的差别的时候我们就学习过HashMap和Hashtable,知道Hashtable是线程安全的,而HashMap在多线程的情况下是不安全的。我们在多线程的情况下除了用Hashtable代替HashMap以外,也可以用collections.synchronizedmap(),还可以使用uitl.concurrent包下

2016-05-21 17:08:42 708

转载 关系型数据与非关系型数据库NoSql

最近经常听到NoSql,不知道什么意思,百度之,发现NoSql就是泛指的非关系型数据库。所以学习了一下,发现非关系型数据库最近非常的火,特别适用于某些应用如SNS网站,所以学习了NoSql与我们常用的关系型数据库之间的差别。总的来说1.非关系型数据库不需要表与表之间有联系。2.非关系型数据库对事务没有需求,不需要严格的保证数据的一致性。3.非关系型数据库追求的是高并发,高扩展性

2016-05-20 14:52:29 6001

转载 JDK源码学习(3)-LinkedHashMap源码学习

LinkedHashMap继承HashMap,是对HashMap的扩展。LinkHashMap内部维持一个双向链表,维护节点的插入或者LRU次序:迭代遍历它时,取得“键值对”的顺序是插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一点;而在迭代访问时反而更快。可以把LinkedHashMap理解成包含两个数据结构,一个是HashMap当中的 Entry[] table哈希表,

2016-05-16 22:42:01 1007

转载 mysql数据库-MyISAM与InnoDB两个存储引擎的索引实现方式

1.MyISAM索引实现:主键索引:MyISAM数据存储文件和索引文件是分开的。MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM主键索引的原理图:这里设表一共有三列,假设我们以Col1为主键,图myisam1是一个MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文件仅仅保存数据记录的地址。辅助索引(Secon

2016-05-12 16:42:27 2924

原创 JDK源码学习(4)-HashMap的遍历方式,两种迭代器源码分析

对HashMap本身没有迭代器,如果要对HashMap遍历有两种方式。keySet()方法获取Set对象,调用该对象的迭代器对key值遍历。entrySet()方法获取SetMap map = new HashMap();map.put("a1", "a11");map.put("a2", "a22");Set set = map.keySet();for(Iterator iter=

2016-05-11 15:54:08 1256

转载 JDK源码学习(5)-Map的性能比较,HashMap和TreeMap,ConcurrentSkipListMap

在之前已经学习过: JDK源码学习(1)-HashMap源码分析,HashMap与HashTable的差别 JDK源码学习(2)-TreeMap源码分析 这篇文章对jdk提供的Map实现类的性能进行比较:- 问题:比较Java原生的 3种Map的效率。 1.TreeMap 2.HashMap 3.ConcurrentSkipListMap- 结果插入和删除操

2016-05-04 14:33:18 886

原创 JfreeChart窗口关闭问题

使用到JFreeChart来统计信息时,当单击某个分析数据按钮后,图片显示在ApplicationFrame中,但是关闭ApplicationFrame后直接把整个应用给关闭了。 可以将extends后面的ApplicationFrame改成JFrame ,然后在构造函数中加入setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)就可以实现只

2016-05-03 15:46:19 1085

转载 常用树类数据结构总结-二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)的性能分析

http://www.iteye.com/topic/614070此少侠总结的特棒,直接收藏了。我们这个专题介绍的动态查找树主要有: 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)。这四种树都具备下面几个优势:(1) 都是动态结构。在删除,插入操作的时候,都不需要彻底重建原始的索引树。最多就是执行一定量的旋转,变色操作来有

2016-05-02 23:17:11 1658

转载 JDK源码学习(2)-TreeMap源码分析

之前介绍了Map集合中的具体实现类的HashMap,HashTable。(JDK源码码学习(1)-HashMap源码分析,HashMap与HashTable的差别)这两个类都是基于哈希表实现的,今天我们介绍另一种Map集合,TreeMap。TreeMap是基于红黑树实现的。     TreeMap基于红黑树(点击查看树、红黑树相关内容)实现。查看“键”或“键值对”时,它们会

2016-05-02 16:56:55 1303 1

原创 剑指offer:调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。这道题如果要求不用奇数和奇数,偶是和偶数位置相对稳定,用双指针,一前一后相互交换: public void reOrderArray(int [] array) { int low

2016-05-01 22:37:21 629

原创 Java 二叉树的前序、中序、后续遍历 递归和迭代实现

1.前序递归 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> list=new ArrayList<Integer>(); if(root!=null){ list.add(root.val); ...

2016-05-01 17:14:23 1310 1

原创 leetcode 101. Symmetric Tree 判断对称树,递归和迭代

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree is symmetric: 1 / \ 2 2 / \ / \3 4 4 3But the f

2016-04-30 21:23:13 2110

原创 剑指Offer:树的层次遍历,分层打印和按之字型打印

1.把二叉树打印成多行题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。如:12,33,4,5解题:层次遍历使用队列,这里维护两个队列进行的区分cur,next,分别存储当前行节点和下一行节点,遍历完当前行cur后,两个队列再进行交换。 ArrayList > Print(TreeNode pRoot) { Ar

2016-04-28 21:36:56 3260

原创 mysql 事务处理,事务操作,JDBC中事务的使用,事务的sql语句,

1.事务事务是将许多动作整合成一个逻辑执行单元,这个执行单元要么全部执行,要么一个都不执行不执行。事务操作具有4的特性在mysql中只有innoDB存储引擎支持事务处理,所以mysql当中innoDB也是默认的存储引擎。在实际的应用当中经常会使用到事务像转账操作,一个账户的金额减少和另一个账户的金额增加都必须保证都正确执行,否则必须回滚。在mysql有个属性叫做autocommit,表

2016-04-26 19:45:09 2929

原创 java 调试工具,命令行工具,性能工具,可视化工具

JDK的bin包下除了我们常用javac,java外,还提供了许多给开发人员使用的命令行工具,如图(JDK1.7):1.jps:虚拟机进程查看工具类似于linux下的ps命令,查看进程的信息,。-l: 输出主类的全名;-m: 输出程序的命令行输入参数;-v: 输出JVM参启动时显示设定的参数。-q:只输出id2.jstat:虚

2016-04-23 23:44:41 3684

原创 leetcode 342. Power of Four 判断一个数是否为4的幂

Given an integer (signed 32 bits), write a function to check whether it is a power of 4.Example:Given num = 16, return true. Given num = 5, return false.Follow up: Could you solve it without

2016-04-23 17:22:01 3311

原创 leetcode 231. Power of Two 判断是否为2的幂 Java

231. Power of TwoGiven an integer, write a function to determine if it is a power of two.Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

2016-04-23 16:38:25 3248

转载 jVM 常用参数

1.内存相关参数名称含义默认值 -Xms初始堆大小物理内存的1/64(默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制.-Xmx最大堆大小物理内存的1/4(默认(MaxHeapFreeRatio参数可以调整

2016-04-23 14:37:08 954

原创 leetcode 46,47. Permutations I/II 全排列问题 java

46.Permutations Total Accepted: 96713 Total Submissions: 271529 Difficulty: Medium Given a collection of distinct numbers, return all possible permutations.For example, [1,2,3] have the following pe

2016-04-19 23:00:36 3691 2

转载 面试智力题

有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?有两位盲人,他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜子都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?有一辆火车以每小时150公里的速度从北京开往广州,另一辆火车以每小时200公里的速度从广州开往北京。北京到广州铁路距离假设是3000

2016-04-18 22:04:11 742

原创 leetcode 59. Spiral Matrix II

59. Spiral Matrix IIGiven an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.For example,Given n = 3,You should return the following matrix:[ [ 1

2016-04-16 23:36:38 1008

转载 java equals和hashcode、==、的关系,使用区别详细

java中的==、equals()、hashCode()源码分析 在java编程或者面试中经常会遇到 == 、equals()的比较。自己看了看源码,结合实际的编程总结一下。1. ==   java中的==是比较两个对象在JVM中的地址。比较好理解。看下面的代码:1 public class ComAddr{2 public static void main(String[] args)

2016-04-16 18:49:21 721

转载 数据库事务的四个特性

一.什么是事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。 在mysql当中只有innoDB支持事务,可以通过 show eng

2016-04-14 21:43:01 18603

转载 两个整形数交换的算法,不使用其它变量

通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下: int a=10; b=15; int t; t=a; a=b; b=t; 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法)。上面的算

2016-04-14 00:08:56 1567

原创 leetcode 5. Longest Palindromic Substring 最长回文串

Longest Palindromic SubstringGiven a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substri

2016-04-13 22:02:28 683

转载 java stackoverflowerror与outofmemoryerror区别

1、stackoverflow:每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态;当线程调用一个方法是,jvm压入一个新的栈帧到这个线程的栈中,只要这个方法还没返回,这个栈帧就存在。 如果方法的嵌套调用层次太多(如递归调用),随着java栈中的帧的增多,最终导致这个线程的栈中的所有栈帧的大小的总和大于-Xss设置的值,而产生生StackOve

2016-04-13 16:00:54 10253

原创 leetcode 79. Word Search

Word Search Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally or v

2016-04-11 21:19:40 893

原创 java locks包下提供的锁。

Java 并发包concurrent包下主要提供lock和ReadWrite两种接口,提供两种类型的锁。1.ReentrantLock类 由于ReentrantLock是java.util.concurrent包下提供的一套互斥锁,相比Synchronized,ReentrantLock类提供了一些高级功能,主要有以下3项:等待可中断 持有锁的线程长期不释放的时候,正在等待的

2016-04-07 17:16:53 2170

原创 leetCode 108. Convert Sorted Array to Binary Search Tree JAVA

108. Convert Sorted Array to Binary Search TreeGiven an array where elements are sorted in ascending order, convert it to a height balanced BST.   这到题把有序数组转成平衡二叉搜索树,所以选取数组的中点num[mid]作为根,对左右两边分

2016-04-03 14:29:49 1245

原创 java的两种同步方式, Synchronized与ReentrantLock的区别

java在编写多线程程序时,为了保证线程安全,需要同步,经常用到两种同步方式就是Synchronized和重入锁ReentrantLock。相似点:这两种同步方式有很多相似之处,它们都是加锁方式同步,而且都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外面等待,而进行线程阻塞和唤醒的代价是比较高的(操作系统在用户态与内核态之间来回

2016-04-02 19:37:22 28840 3

原创 leetcode 300. Longest Increasing Subsequence 最长上升序列数

300. Longest Increasing SubsequenceGiven an unsorted array of integers, find the length of longest increasing subsequence.For example,Given [10, 9, 2, 5, 3, 7, 101, 18],The longest incre

2016-04-02 15:28:50 1184 1

原创 leetcode 34. Search for a Range

34. Search for a RangeGiven a sorted array of integers, find the starting and ending position of a given target value.Your algorithm's runtime complexity must be in the order of O(log n).

2016-04-02 10:25:44 631

转载 代理模式和装饰模式的差别

学了代理模式之后发现代理模式和装饰模式非常的相似,代理类和被代理的客户实现同一个接口,装饰者和被装饰者也是实现的同一个接口,实现方式也类似。搜索之,得到结论:代理模式主要是控制对某个特定对象访问,而装饰模式主要是为了给对象添加行为。所以两类的设计模式的代码还是有一些差别。下面代码来着网上,做了一些修改,原网址http://www.cnblogs.com/jaredlam/archive/201

2016-03-31 21:51:21 3683 2

原创 leetCode 41. First Missing Positive

41. First Missing PositiveGiven an unsorted integer array, find the first missing positive integer.For example,Given [1,2,0] return 3,and [3,4,-1,1] return 2.Your algorithm should ru

2016-03-27 22:04:31 680

原创 leetcode 287. Find the Duplicate Number,数组中找重复的数

287. Find the Duplicate NumberGiven an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), prove that at least one duplicate number must exist. Assume that th

2016-03-27 21:09:43 2751

原创 LeetCode 50. Pow(x, n),求幂算法

50. Pow(x, n)Implement pow(x, n).这道题求x的n次幂,用二分法,时间复杂度logn,注意区分n public double myPow(double x, int n) { if(n==0) return 1.0; else if(n<0) return 1/pow(x,-

2016-03-27 16:24:26 1131

原创 LeetCode 69. Sqrt(x),求根算法

69. Sqrt(x)Implement int sqrt(int x).Compute and return the square root of x.Subscribe to see which companies asked this question这道题要找x的平方根,x的平方根肯定小于x/2。要在[1,x/2]有序序列当中找一个数,用二分法:

2016-03-27 15:28:01 2209

原创 int转换成二进制字符串

1.位移运行     对于JAVA要想将整型转换成二进制数可以直接使用包装类的toBinaryString方法,如Integer.toBinaryString(int i),该方法利用的是位运算,JDK源码如下: public static String toBinaryString(int i) { return toUnsignedString(i, 1);

2016-03-26 18:29:41 11340

原创 Java String为什么是不可变类,StringBuffer与StringBuilder区别

熟悉Java的都知道String类是不可变,但String类为什么设计成不可变类,如何做到不可变没有仔细想过。String为什么设计成不可变类?1.Java字符串池的设计方式。    String s1="abc";String s2="abc";   Java通过字符串池的设计方式节省内存空间,如上面一段代码只会生成一个对象放在常量池当中。s1和s2都指向这个对象,如果Stri

2016-03-10 15:15:09 5077 1

原创 java assert断言的用法

assert关键字是在JDK1.4才被添加,用于程序的调试。用户有两种1.assert expressionexpression是逻辑运算表达式,如果expression为true,表示断言成功,程序继续执行。如果为false,会抛出AssertionError,AssertionError继承Error类,Error类与我们经常用到的Exception类都是集成于Throwable类。

2016-03-07 10:55:25 20092 2

空空如也

空空如也

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

TA关注的人

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