自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (3)
  • 收藏
  • 关注

原创 HashMap存入相同key的两种不同的存储方式

今天在看《编程思想》关于HashMap章节的keySet()方法的时候,突然想到一个问题,既然key的存储方式是Set不可重复的,那么如果相同的Key下存储了多个值,源码中对于这样的逻辑是怎样考虑的呢?import java.util.HashMap;import java.util.Map;/*** @author Bingo * E-mail:[email protected]* @

2017-07-03 11:35:34 36852 4

转载 Java动态代理的两种实现方法

最近在学习Spring框架的使用,其中AOP的概念理解里面是借助于动态代理的拦截器的概念,所以找了点文章,把相关内容再温故一遍。AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如Befo

2017-06-21 10:02:24 455

转载 浅谈算法和数据结构: 平衡查找树之红黑树

原文链接:http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数据

2017-06-15 15:17:29 404

转载 常用的版本控制工具对比

Git 、CVS、SVN比较 项目源代码的版本管理工具中,比较常用的主要有:CVS、SVN、Git 和 Mercurial  (其中,关于SVN,请参见我先前的博客:SVN常用命令 和 SVN服务器配置)目前Google Code支持SVN、Git、Mercurial三种方式,例如:我上传的linux-kernel-source(Git 方式)、sdk-java(SVN方式

2017-06-07 19:15:12 21993

转载 CountDownLatch的使用方法和应用场景分析

正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点:目录CountDownLatch是什么

2017-05-30 09:12:32 811

转载 数据结构与算法:红黑树的原理分析

原文链接:http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数据

2017-05-20 21:21:54 1157

转载 Android开发时经常用的LogUtil

在开发过程中经常用到Log,我们常写的一种方式就是自定义一个LogUtil工具类 private static boolean LOGV = true; private static boolean LOGD = true; private static boolean LOGI = true; private static boolean LOGW = true

2017-04-15 21:39:27 386

原创 Container With Most Watert

题意:有n个相当于水桶的隔板,求使用两个隔板和底部x轴所能组成的水桶可以装载的最大容量。第一种方法:两层遍历,第一层从0遍历到n-2,第二层从i+1遍历到n-1,每次求得(j-i)*(Math.min(height【i】,height【j】))与max比较,使max总是保存最大值。缺点:需要n*n时间第二种方法:线性时间,两个指针分别从0、n-1开始向中间靠拢,直到左指针不小于

2017-04-05 10:34:32 264

转载 java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题

参考:java核心技术一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类

2017-03-30 14:17:53 333

转载 java泛型(一)、泛型的基本介绍和使用

现在开始深入学习Java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用。泛型在java中,是一个十分重要的特性,所以要好好的研究下。一、泛型的基本概念 泛型的定义:泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在指定具体的类型。这种参数类

2017-03-30 14:15:58 305

原创 Java:关于Integer整数与byte、byte数组之间的转换

在本地找到一个很好的文件,里面包含工程应用中常用的整数与字节、字节数组之间的转换,保存下来,方便使用。ps:今天在应用Modbus RTU协议时,在接收到的数据帧校验时就用到了CRC计算与接收的CRC的校验,其中用到了整数和字节数组之间的转换,尽管很简单,但是小工具很方便。public class NumberUtil { /** * int整数转换为4字节的byt

2017-03-23 19:59:39 26917 2

转载 Java笔试面试题整理

1、实现多线程的两种方法实现多线程有两种方法:继承Thread和实现Runnable接口。继承Thread:以卖票为例:[java] view plainopy public class MyThread extends Thread {      private static int COUNT = 5;      

2017-03-06 15:46:11 292

转载 程序猿如何快速掌握一门新框架、技术、语言

看到的一篇对于职业生涯很有帮助的文章,讲得很贴切,转载至此,勤看,共勉!原文:http://www.runoob.com/w3cnote/quick-start-new-programming.htmlIT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能密切相关。而如果你在企业中扮演的是工程师的角色的话,那么你的核心竞争力就是IT相关的知识与技能的储备

2017-03-06 13:57:12 623

原创 Largest Rectangle in Histogram

Find the largest rectangular area possible in a given histogram where the largest rectangle can be made of a number of contiguous bars. For simplicity, assume that all bars have same width and the wid

2017-03-06 11:24:56 367

转载 Spring 框架的设计理念与设计模式分析

Spring 作为现在最优秀的框架之一,已被广泛的使用,并且有很多对其分析的文章。本文将从另外一个视角试图剖析出 Spring 框架的作者设计 Spring 框架的骨骼架构的设计理念,有那几个核心组件?为什么需要这些组件?它们又是如何结合在一起构成 Spring 的骨骼架构? Spring 的 AOP 特性又是如何利用这些基础的骨骼架构来工作的? Spring 中又使用了那些设计模式来完成它的

2017-03-05 20:51:12 294

转载 Servlet工作原理解析

Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的?一个 Web 工程在 Servlet 容器中是

2017-03-05 20:36:12 452

转载 Http和Https的区别与分析

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据

2017-03-05 09:55:45 381

转载 Java设计模式之代理模式的分析

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。介绍意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某

2017-03-04 22:15:36 284

转载 关于Java变量名前缀m、s等的解释

为什么很多人写代码会在变量名前面加一个小写的m?上大学那会儿就对这个问题感到很好奇。于是网上到处搜,有人说是member的意思。于是后来一直就这么认为。最近在读Android源码,发现很多系统变量命名时都加了m,而有的变量又没有加m,这是什么情况?于是Google了一把,“letter m before variable ”,第一条结果是来自stackoverflow的答案

2017-03-03 16:16:18 7361

转载 Java设计模式之原型模式的分析

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减

2017-03-02 14:22:21 257

转载 Java设计模式之单例模式的分析

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的

2017-03-02 13:36:18 180

原创 149. Max Points on a Line

原文链接:https://leetcode.com/problems/max-points-on-a-line/?tab=DescriptionGiven n points on a 2D plane, find the maximum number of points that lie on the same straight line.要求:求出平面n个点中,最多共线的点数。

2017-03-02 13:15:37 321

原创 220. Contains Duplicate III

问题链接:点击打开链接Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference betweennums[i] and nums[j] is at most t and the ab

2017-03-01 20:44:39 437

原创 225. Implement Stack using Queues

Implement the following operations of a stack using queues.push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- Get the top element.empty() -- Return whet

2017-03-01 19:15:28 156

原创 归并算法的Java实现

归并算法是分治思想的经典应用,其基本思想就是将两个有序的表合并成为一个有序表。//实现将a、b两个数组合并到c数组 public void merge(int a[], int b[], int[] c) { int aIndex=0, bIndex=0, cIndex=0; int aEnd=a.length, bEnd=b.length; c=new int[aEnd+bEn

2017-03-01 12:24:27 319

转载 315. Count of Smaller Numbers After Self

问题链接:https://leetcode.com/problems/count-of-smaller-numbers-after-self/?tab=DescriptionYou are given an integer array nums and you have to return a new counts array. The counts array has the pro

2017-02-28 20:03:24 435

转载 Java对象的序列化和反序列化及其实现和使用

原文链接:http://blog.csdn.net/wangloveall/article/details/7992448/Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨。 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Jav

2017-02-27 20:20:59 522

转载 Java多线程之内存可见性和原子性:Synchronized和Volatile的比较

在刷题时,碰到一题:关于volatile关键字的说法错误的是:A. 能保证线程安全 B volatile关键字用在多线程同步中,可保证读取的可见性  C JVM保证从主内存加载到线程工做内存的值是最新的D volatile能禁止指令进行指令重排序答案:A 处于运行效率的考虑,Java编译器会把经常访问的变量放到缓存(严格讲是工做内存)中,读取变量则从工作内存中取,但是在多线程编程中,内

2017-02-24 11:14:29 790

转载 正则表达式、线程

原文链接:http://blog.csdn.net/aiynmimi/article/details/47102095正则表达式定义指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。 因此,

2017-02-23 10:16:12 528

转载 Java真数组与伪数组

在看书时,看到一句话:Java实现了真数组,避免了覆盖数据的可能。竟然数组都有假的,遂找点资料学习一下。提供一篇博客解释js中的伪数组js的伪数组我的理解:ADT(abstract data type)数据抽象类型:一个数据模型及定义在该模型上的一组运算。数组是一种抽象的数据类型,Java中数组是对象,它所包含的数据在内存中是连续排列的,并且你可以对数组进行一系列的操作

2017-02-22 18:56:27 4924

转载 JVM内存管理及垃圾回收

原文链接:http://blog.csdn.net/zhangerqing/article/details/8214365很多Java面试的时候,都会问到有关Java垃圾回收的问题,提到垃圾回收肯定要涉及到JVM内存管理机制,Java语言的执行效率一直被C、C++程序员所嘲笑,其实,事实就是这样,Java在执行效率方面确实很低,一方面,Java语言采用面向对象思想,这也决定了其必然是开

2017-02-22 11:15:27 222

原创 313. Super Ugly Number

问题链接:https://leetcode.com/problems/super-ugly-number/?tab=DescriptionWrite a program to find the nth super ugly number.Super ugly numbers are positive numbers whose all prime factors are in

2017-02-21 20:15:36 309

原创 264. Ugly Number II

问题链接:https://leetcode.com/problems/ugly-number-ii/?tab=DescriptionWrite a program to find the n-th ugly number.Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For

2017-02-21 19:37:53 255

原创 263. Ugly Number

问题链接:https://leetcode.com/problems/ugly-number/?tab=DescriptionWrite a program to check whether a given number is an ugly number.Ugly numbers are positive numbers whose prime factors only in

2017-02-21 18:50:16 246

转载 关于 Java 中 finally 语句块的深度辨析

原文链接:点击打开链接https://www.ibm.com/developerworks/cn/java/j-lo-finally/乍看这个题目,是不是有人会问,这个谁不知道啊,大凡熟悉 Java 编程的人都知道 finally 语句块的作用和用法。有什么可深度辨析的呢?事实并非如此,我发现即使写了很多年 Java 程序的人,也不一定能够透彻的理解 finally 语句块。本篇将

2017-02-21 12:59:23 248

转载 JVM 堆内存设置原理

堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation

2017-02-21 10:47:48 156

原创 287. Find the Duplicate Number

问题链接:点击打开链接Given 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 there is only one dup

2017-02-20 20:53:33 188

转载 AsyncTask和Handler的优缺点比较

原文链接:http://blog.csdn.net/onlyonecoder/article/details/8484200/AsyncTask实现的原理和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.

2017-02-20 16:42:08 226

转载 289: Game of Life

问题链接:点击打开链接According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970."Give

2017-02-20 11:37:09 253

原创 用Format给数字左边补0输出

实际应用中常常需要给数字的左边补0实现固定长度的输出,JDK中有两种方法可用,欢迎补充。方法一:用String.format()做格式转换public class TestStringFormat { public static void main(String[] args) { int youNumber = 1; //int num

2017-02-20 09:56:07 10989

《Android编程权威指南》第二版 挑战练习部分参考答案

《Android编程权威指南》第二版 挑战练习部分参考答案

2017-01-12

Android编程权威指南(第2版)2016年5月版 高清原版

Android编程权威指南(第2版)2016年5月版 高清原版

2017-01-09

《Android编程权威指南》 第二版PDF + Programming完整源代码

高清PDF+源代码下载!高清PDF+源代码下载!高清PDF+源代码下载! Android编程权威指南的全部36章源代码。MVC,Fragment,Service等各种概念,清清楚楚、明明白白。Android开发中的Java编程思想!源代码中有许多值得参考、学习、模仿甚至可以直接利用的价值。 本书根据美国大名鼎鼎的Big Nerd Ranch训练营的Android培训讲义编写而成,已经为微软、谷歌、Facebook等行业巨头培养了众多专业人才。作者巧妙地把Android开发所需的庞杂知识、行业实践、编程规范等融入一本书中,通过精心编排的应用示例、循序渐进的内容组织,以及循循善诱的语言,深入地讲解了Android开发的方方面面。如果学完一章之后仍然意犹未尽,那“挑战练习”一定会让你大呼过瘾。本书之所以能在移动应用开发类图书中脱颖而出,还在于它真的是在与读者“对话”。阅读本书就好像有一位私人导师在你身边随时为你答疑解惑。

2017-01-09

空空如也

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

TA关注的人

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