- 博客(46)
- 收藏
- 关注
转载 转---FindViewById的替代
Android的代码中出现FindViewById方法的概率很高,特别是界面中有许多控件需要操作的时候。看到博客中有人写了一个泛型方法替代,窃以为十分有用,特在博客中记下来以供学习。 原方法的博客地址为:http://blog.csdn.net/pengkv/article/details/47747285实际上方法很简单,自定义一个方法:public <T> T $(int viewID)
2016-02-26 16:18:36
769
原创 Java在有继承情况下初始化函数的调用
废话不多说,看下面的代码:public class Son extends Father{ int a = fun(); public int fun(){ System.out.println("son fun"); return 1; } public static void main(String[] args) {
2015-10-10 16:38:28
566
原创 关于ConcurrentHashMap中并发Level数目的问题
ConcurrentHashMap采用了分段锁的机制,将一个HashMap分为若干个Segment,然后每个Segment有一个Entry的数组,作为内部的HashTable。而Level则是确定Segment数目的一个变量,在JDK中的解释是有多少线程并发地修改Map,这个值最好要设置为多少。如果设置的过高则会浪费空间和时间。浪费空间容易理解,但是时间呢?
2015-09-28 19:24:55
1288
转载 ConcurrentHashMap源码-转载
转载自:http://www.iteye.com/topic/344876写的确实不错,另外再加一句:Doug Lea 大师!!ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之
2015-08-25 20:34:40
491
转载 数据库的三大范式
看到一篇写范式的文章,比较好,记录下来备忘 引用自 :http://blog.csdn.net/famousdt/article/details/6921622范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹
2015-08-24 18:41:58
385
原创 找出重复3遍的数
题目描述在整型数组中,有一个数重复出现了3遍,其他数重复出现了2遍,找出这个重复3遍的数。要求用O(1)的空间和至多O(nlogn)的空间复杂度。思路1比较简单的思路就是用排序,符合题目要求的可以用堆排序,然后顺序扫描一遍就可以了,这里不再说明。思路2由于其他数都出现了偶数遍,我们需要的数出现了奇数遍,而出现偶数遍的数是我们不需要的,可以借助异或的性质,即两个相同的数异或为0某个数异或0仍为子集
2015-08-24 16:35:10
925
转载 原地归并排序
原地归并排序所利用的核心思想便是“反转内存”的变体,即“交换两段相邻内存块”,对于反转内存的相关文章,曾在文章“关于反转字符串(Reverse Words)的思考及三种解法”中对一道面试题做了分析。这一思想用到的地方很多,在《编程珠玑》中被称为“手摇算法”。通过手摇算法的交换内存的思想来进行原地归并又有不少变种,我们举例分析一种比较常见的情况,不同的方法还有基于二分查找的方法来确定交换的内存块
2015-08-23 21:22:16
521
转载 文章标题
对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题: 脏读: 对于两个事物 T1, T2, T1 读取了已经被 T2 更新但还没有被提交的字段. 之后, 若 T2 回滚, T1读取的内容就是临时且无效的. 不可重复读: 对于两个事物 T1, T2, T1 读取了一个字段, 然后 T2 更新了该字段. 之后, T1再次读取同一个字
2015-08-21 16:01:36
354
转载 接口和抽象类有什么区别
你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不
2015-08-20 16:02:32
681
原创 Java内存泄露例子
直接上例子:如果自己实现了一个栈,pop方法实现如下:public Object pop(){ if(size==0) throw new EmptyStackException(); return element[--size]; //短暂造成内存泄露 } 那么当前size对象虽然已经弹出了,但是element仍然持有这个对象的引用,
2015-08-19 15:56:18
527
转载 Java反射的几个方法区别
getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法 getMethods()与getDeclaredMethods()区别:getMet
2015-08-18 14:50:32
1187
转载 最长公共字串与公共子序列
这两个问题都可以用动态规划做,由于比较相似,所以经常混淆。在这里把思路写一写,防止以后出错。定义上的区别最长公共字串,字串是指连续的序列,也就是中间不能有隔开。而子序列则可以不是连续的,只要保持相对位置的正确即可。例如给两个字符串:abcde 和acde ,两个字符串的最长公共字串是cde , 而最长公共子序列是acde 。动态规划方法的区别仍然以两个字符串s1 = abcde 和 s2 = acd
2015-08-14 18:39:29
501
转载 转载-二分查找(附感悟)
/* binsearch 寻找key下标,不存在 return -1 */ /* binsearch 注意点【找不到 vs 死循环】 * 1. left <= right 如改为 left < right 可能找不到key * 例如 1 2 3 4 5;key=5; left==right时候才搜到key * 2. left = mid + 1; * 如上left改为=mid
2015-08-11 16:47:22
574
原创 设计模式-单例模式(饿汉式及懒汉式的Java实现)
单例模式单例模式在程序设计中使用的频率非常之高,其设计的目的是为了在程序中提供唯一一个对象(保证只被构造一次),例如写入日志的log对象,windows的任务管理器实现(只能打开一个)。这里主要介绍单例模式使用Java的实现(包括饿汉式及懒汉式)。实现这里使用Log类作为例子,Log对象需要在程序中只有一个对象且只初始化一次。饿汉式饿汉式的单例模式理解起来是比较容易的,就是在单例类加载的时候就初始化
2015-08-03 22:57:41
7954
1
原创 LeetCode-Binary Tree Postorder Traversal
题目不用多说,就是二叉树的后序遍历。如果是递归进行遍历,相信大家是都会的。这里说下用栈进行遍历的大体思路及代码:思路与前序遍历不同,如果用栈实现后序遍历,当遍历完某个子树后,需要判断之前遍历的是左子树还是右子树。如果是左子树,则要再遍历右子树。如果刚遍历的是右子树,则要访问根节点,并出栈。代码public class Solution { public List<Integer> posto
2015-07-27 10:16:12
410
原创 在排序的数组中交换两个元素
如题,在一串已经排序好的数中,交换了两个元素。例如:nums[] = {1,2,3,4,5,6,7,8,9,10}交换两个元素(例如交换数字5和9)后:nums[] = {1,2,3,4,9,6,7,8,5,10} 问题是怎么在数组中找到这两个元素?思路假设交换的两个元素为x和y,且x < y。其他的数为Ni。那么问题可以表示为:nums[] = {N1 , N2 , N3 , Ni , x
2015-07-23 09:31:23
2924
1
原创 LeetCode--Majority Element II & 多数投票算法
题目 Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space.相似题目及多数投票算法第一眼看到这个题,相信许多人都恩给你联想到另一个题目: 给
2015-07-17 10:49:27
1699
原创 Java-多态、方法重载
什么是多态、重载1. 多态对多态现象的理解多态是面向对象的一个重要特征。关于定义性的概念,相信网上有很多资料,不再多说。这里说说我自己的理解。多态是指在运行期间,调用某个类对象的方法会有不同的行为。举个最普遍的例子来说:基类:Shapeclass Shape{ public void draw(); public void clear();}子类: Circle 、Rectangl
2015-07-15 15:45:57
2813
原创 LeetCode-Combination Sum
问题Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.The same repeated number may be chosen from C unlimited number of
2015-07-14 22:01:06
693
转载 Bloom Filter
Bloom Filter概念和原理焦萌 2007年1月27日 Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter
2015-07-14 08:53:15
436
转载 Java类加载器(一)
Java和其他语言不同的是,Java是运行于Java虚拟机(JVM)。这就意味着编译后的代码是以 一种和平台无关的格式保存的,而不是某种特定的机器上运行的格式。这种格式和传统的可 执行代码格式有很多重要的区别。具体来说,不同于C或者C++程序,Java程序不是一个独 立的可执行文件,而是由很多分开的类文件组成,每个类文件对应一个Java类。 另外,这 些类文件并不是马上加载到内存,而是当程序
2015-07-11 16:15:13
438
转载 Unicode-UTF-8
一、UTF-8编码怎么编UTF-8编码是Unicode字符集的一种编码方式,其特点是使用变长字节数来存储数据。一般是1到4个byte,当然,也可以更长,实际上4个byte可以表示2的32次方个不同字符,即4294967296个(约43亿),已经足以编码人类现使用的绝大部分字符了。为什么要变长呢?你可以理解为按需分配,比如一个字节足以容纳所有的ASCII码字符,那何必补一堆0用更多的字节来存储呢?实际
2015-07-05 15:36:44
571
原创 源码阅读-HashTable
HashMap跟HashTable的区别大家都知道,都继承了Map接口,可以存储对,然后一个是线程安全的,另一个不是线程安全的。同样,现在即使是在多线程环境下也不推荐使用HashTable,推荐使用java.util.concurrent包中的ConcurrentHashMap,会得到更好的性能。
2015-07-03 15:18:14
361
原创 StringBuilder与StringBuffer联系与区别
StringBuffer是线程安全的面试被问到StringBuilder和StringBuffer的区别,心想终于问到个会的问题了(-,-原谅我太水。。。),信誓旦旦的说一个是线程安全的,一个不是线程安全的,面试大哥说既然StringBuffer是线程安全的,还没说完,我打断他说,StringBuilder是线程安全的。。。。(唉。。。嘴贱。。。),我竟然错了这么久。。。由于StringBuffer
2015-07-03 10:28:21
602
原创 Hadoop学习感悟(二)
对上次存在的疑问进行记录,这里引用一篇博文的一部分:下面我从逻辑实体的角度讲解mapreduce运行机制,这些按照时间顺序包括:输入分片(input split)、map阶段、combiner阶段、shuffle阶段和reduce阶段。输入分片(input split):在进行map计算之前,mapreduce会根据输入文件计算输入分片(input split),每个输入分片(input spli
2015-06-30 15:27:54
1262
原创 ['LeetCode']表达式求值
Eval Expression(栈)表达式求值是指给定一个表达式字符串,求得表达式最后的值。 例如给定表达式: 3 + 2 * (4 + 1) ,通过表达式求值后得到的值为13。这里之所以写LeetCode是因为做LC中题目时碰到类似题目,所以把这个通用问题写一写以作记录。解决方法(使用栈求值):这里只介绍使用栈的版本,其他方法还有待发掘。其实解决思路是挺明确的,大体是用两个栈分别存储操作符和操作
2015-06-30 14:55:56
3387
原创 关于Hadoop学习的感悟(一)
Hadoop学习感悟(一)Hadoop的安装Hadoop在Linux下安装相对较为简单。具体可参考网上的安装教程,也可直接到Apache网站上找到安装指南。这里需要注意的是找对Hadoop的版本和对应的安装教程例如Hadoop 2.5.2的Apache文档可以直接到地址找到安装教程(个人感觉Apache的安装教程较为清楚,所以如果有条件还是按照官网的来吧)。吐槽-,-可以说对Map-Reduce的理
2015-06-27 14:42:43
8587
原创 [LeetCode]Excel Sheet Column Title
原题:Given a positive integer, return its corresponding column title as appear in an Excel sheet.For example: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB 思路:
2014-12-22 19:36:56
655
原创 [LeetCode]Divide Two Integers
Divide two integers without using multiplication, division and mod operator.If it is overflow, return MAX_INT.题意明显,不让用乘除和取余操作符,完成除法操作。思路一:一个一个加除数,直到满足条件。-------------------明显TLE了。借鉴别人的
2014-12-12 16:45:20
529
原创 LeetCode----Sudoku Solver+精确覆盖问题解法(Dancing Links)
BackGround: 做完LeetCode上的数独题目好长时间了,今天将做题时参考的Algorithm X 以及 Dancing Links 整理出来。话说理解算法+写出程序一共用了三天,智商果然余额不足。。。介绍: 由于Dancing Links 是为了解决数独问题学习的,那就从数独问题下手,围绕数独问题展开对Algorithm X 和 Dancing Link
2014-12-10 16:09:27
3146
原创 LeetCode------Container With Most Water
原题是这样的:Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i
2014-11-29 11:30:42
574
原创 LeetCode--------Sort List
LeetCode上的Sort List题目:题目的意思很简单:将一个链表以O(nlogn)的时间复杂度排好序,并且使用常数空间。关于排序算法的选择:这里我犯了个错误,就是将快速排序的时间复杂度记成了O(nlogn)。。。。(由于对快速排序比较熟悉-,-!)。但是实际情况是如果主元选择不当,最坏的情况会达到O(n2)。而且LeetCode上好像也特意针对快排做了测试用例,所以用快排会
2014-11-29 00:39:31
574
原创 Java移位运算符 “<<” 作用及详解
左移运算符(基本用法将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。例:a = a 左移1位后a = a *2; 若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。举例以及困惑给出下面的程序,大家可以猜一猜结果是什么?public class MainClass { public static void main(String[
2014-07-08 19:04:17
6176
原创 Java中类的初始化过程
话不多说,先上段代码~~public class IniTest { public sample s = new sample("s"); static{ System.out.println("This is the static block"); } public static sample s1 = new sample("s1"); public IniTest(){
2014-06-03 21:04:25
753
转载 CAS操作
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错
2014-04-25 15:09:51
1068
1
原创 Mixing Milk---混合牛奶-USACO
★Mixing Milk 混合牛奶 牛奶包装是一个如此低利润的生意,所以尽可能低的控制初级产品(牛奶)的价格变的十分重要. 请帮助快乐的牛奶制造者(Merry Milk Makers)以可能的最廉价的方式取得他们所需的牛奶. 快乐的牛奶制造公司从一些农民那购买牛奶,每个农民卖给牛奶制造公司的价格不一定相同. 而且,如一只母牛一天只能生产一定量的牛奶,农民每一天只有一定量的牛奶可以卖. 每天
2014-04-22 21:01:18
1562
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人