自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(303)
  • 资源 (1)
  • 收藏
  • 关注

转载 AbstractQueuedSynchronizer原理及代码分析

一、AQS简介AbstractQueuedSynchronizer( 二、AQS实现AQS包含两种方法,一种是acquire,另一种是release。acquire操作阻塞调用的线程,直到或除非同步状态允许其继续执行。而release操作则是通过某种方式改变同步状态,使得一或多个被acquire阻塞的线程继续执行。同步器背后的基本思想非常简单。acquire操作如下:while

2014-08-14 10:36:37 908 1

原创 java实现将数组的大小写字母分开

可以利用快排的一次排序思想  要时刻记得快排的思想

2014-07-04 16:44:15 3406

原创 java实现 Set matrix zeros

Set matrix zerosGiven a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.如果矩阵中某一元素为零,则将其所在列与行置为零

2014-07-04 10:51:22 1300

原创 java实现Merge Intervals

Given a collection of intervals, merge all overlapping intervals.For example,Given [1,3],[2,6],[8,10],[15,18],return [1,6],[8,10],[15,18].

2014-07-02 20:04:45 1932

原创 表达式与二叉树之间的转换

自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式。 举例说明将自然表达式转换成二叉树: a×(b+c)-d ① 根据表达式的优先级顺序,首先计算(b+c),形成二叉树 ②然后是a×(b+c),在写时注意左右的位置关系 ③最后在右边加上 -d 然后最这个构造好的二叉

2014-07-02 11:14:37 11112

原创 java实现最长匹配括号的长度

下面是leetcode的Longest Valid Parentheses的一个解法   时间复杂度为O(n)

2014-06-30 10:36:55 2700

原创 java实现如何在字符串中找到第一个不重复的字符

/** * @author zhang yin ye * @date 2014 6 20 * @topic 如何在字符串中找到第一个不重复的字符 * 三种方法实现 */package ustc.zyy.ArrayList;import java.util.ArrayList;import java.util.HashMap;import java.ut

2014-06-20 22:16:56 4764

原创 java实现二叉查找树

package ustc.zyy.ArrayList;/** * @author zhang yin ye * @date 2014 6 17 * */import java.util.DuplicateFormatFlagsException;public class BinarySearchTree> { // 树根 private Bina

2014-06-17 20:24:16 616

原创 java实现循环队列

package ustc.zyy.ArrayList;public class ArrayQueue { private E[] theArray; // 目前队列里数据的项目 private int currentSize; // 队列的头 private int front; // 队列的尾 private int back; private static

2014-06-14 09:56:19 1825

转载 关于Spring的69个面试问答

这篇文章总结了一些关于Spring框架的重要问题,这些问题都是你在面试或笔试过程中可能会被问到的。下次你再也不用担心你的面试了,Java Code Geeks这就帮你解答。大多数你可能被问到的问题都列举在下面的列表中了。所有的核心模块,从基础的Spring功能(如Spring Beans)到上层的Spring MVC框架,文章中都会进行简短的讲解。看完这些面试问题,你应该看看我们的Spring

2014-06-03 14:15:53 686

转载 java常见总结

程序员经常可以通过搜索或者记忆来完成代码,但是许多时候并不真正理解为什么那样写。也就是说,有一定经验的程序员不会犯一些低级的语法错误,但是因为不深入理解有可能造成一些高级错误,比如说运行无效率,代码难Debug,等等。下面是一些常见的理解性问题,每一个问题尽量用图或代码去描述。带着问题去看有图的内容是一种娱乐和消遣。内容全部来自“码河网”(programcreek.com),包括基本语法、数组、集

2014-05-27 17:25:43 650

原创 Cannot create a session after the response has been committed

2014-5-26 9:11:21 com.sun.faces.renderkit.RenderKitUtils renderHtmlErrorPage严重: javax.faces.FacesException: Cannot create a session after the response has been committedjavax.faces.FacesException:

2014-05-26 09:12:58 2542

转载 Java集合框架面试问题集锦

Java集合框架(例如基本的数据结构)里包含了最常见的Java常见面试问题。很好地理解集合框架,可以帮助你理解和利用Java的一些高级特性。下面是面试Java核心技术的一些很实用的问题。Q:最常见的数据结构有哪些,在哪些场景下应用它们?A. 大部分人都会遗漏树和图这两种数据结构。树和图都是很有用的数据结构。如果你在回答中提及到它们的话,面试者可能会对你进行进一步进行的考核。Q:你如何自

2014-05-07 16:10:46 702

翻译 java集合框架实现略解

Java平台包含了许多数据集接口的实现,主要分为通用实现和专业实现两类。Java平台提供的通用实现如下表所示: InterfacesHash tableResizable arrayTreeLinked listHash table + Linked listSetHashS

2014-05-07 14:41:27 775

转载 Java集合类及内部部分实现浅析

Java集合类的简单结构图:事实上Collection的父接口为Iterable目的:简单的了解一下Java常用集合的特性以及内部实现。参考博客:http://blog.sina.com.cn/s/blog_3fba24680100y2yr.html常用List集合:特性:有顺序的,元素可以重复;遍历:for,迭代;排序:Comparable Com

2014-05-07 10:37:51 1919

转载 HashMap实现原理

1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表

2014-05-07 10:28:00 542

转载 POI读写Excel文件

POI读写Excel文件(转)- - 一、Excel基础二、HSSF概况 三、通过usermodel读取文件 四、通过usermodel写入文件 五、通过eventusermodel读取文件 六、HSSF电子表格结构 七、通过HPSF读取文档属性 八、文档摘要信息 九、附录 ━━━━━━ 正文: ━━━━━━   在上一篇文章中,我们介绍了POI项目的基本概念,了解了如何用POI来读写OLE 2复

2014-05-06 22:07:26 907

翻译 java排列组合算法

全排列算法

2014-04-29 19:07:00 949

转载 常见的计算机网络面试题目

1、OSI(Open System Interconnect):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP(Transmission Control Protocol/Internet Protocol):传输控制协议/因特网互联协议,是一个四层的计算机网络模型,分别为:网络接口层、网络层、传输层和应用层。结合OS

2014-04-27 14:32:01 4635 1

原创 腾讯面试总结

4.20在合肥贝斯特韦斯特酒店的面试 面试官很和谐

2014-04-25 23:22:28 801

原创 阿里巴巴电面经历

傍晚十分   一个杭州的座机号码  陌生号码

2014-04-25 11:28:56 1657

原创 在Excel2003中,用A表示第1列,B表示第2列。。。Z表示第26列,AA表示第27列,AB表示第28列。。。以此类推。请写出一个函数,输入用字母表示的列号编码,输出它是第几列

这道题其实就是26进制字符串转十进制的题,由于A到Z在ASCii中是连续的

2014-04-21 16:50:36 8082

原创 大数据查询的常见优化技巧

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id

2014-04-18 14:36:05 787

原创 服务器两次fork()的目的

下面总结下两次fork()的作用。首先,要了解什么叫僵尸进程,什么叫孤儿进程,以及服务器进程运行所需要的一些条件。两次fork()就是为了解决这些相关的问题而出现的一种编程方法。孤儿进程        孤儿进程是指父进程在子进程结束之前死亡(return 或exit)。如下图1所示:2013-8-15 14:15:06 上传下载附件(9.72 KB)

2014-04-17 19:41:07 737

转载 一些企业的面试题(笔试),数学&逻辑

Microsoft:微软笔试题:利用天平砝码,三次将140克的盐 分成50、90克两份?有一个天平,2克和7克砝码各一个。如何利用天平砝码在三次内将140克盐分成50,90克两份。第一种方法:第一次:先称 7+2克盐 (相当于有三个法码2,7,9)第二次:称2+7+9=18克盐 (相当于有2,7,9,18四个法码)第三次:称7+18=x+2,得出x是23,23+9+18=5

2014-04-16 15:50:05 10489

原创 java实现求最大回文长度

以每个位置为中心,向两端扩展,计算以每个位置为中心的最大的palindrome。时间O(n^2),空间O(1); public class Solution {    public static String longestPalindrome(String s) {        if (s.length()         String result = "";  

2014-04-15 22:51:46 2052

转载 代码面试最常用的10大算法

面试也是一门学问,在面试之前做好充分的准备则是成功的必须条件,而程序员在代码面试时,常会遇到编写算法的相关问题,比如排序、二叉树遍历等等。在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。1.

2014-04-15 14:26:36 662

原创 Mysql索引是如何实现的

在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。  MyISAM索引实现  MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM索引的原理图:这里设表一共有三列,假设我们以Col1为主键,则图8是一个MyISAM表的主

2014-04-15 10:09:30 1128 1

原创 java实现逆序数对

依据分治法,如果我们将数组分解成两个子序列,分别求出两个子序列的逆序数,再求出两个子序列之间元素的逆序数,就可以得出整个数组的逆序数了。可以做以下考虑:            分解:将问题分成前后两个规模为n/2的数组            解决:分别求解各自的逆序对数。如果子问题规模为2或1,可直接求解。            合并:此时虽然知道两个子序列各自的逆序对数,但两个子序列

2014-04-14 22:39:25 4081 1

原创 catalan数(卡特兰数)

一,问题:n个拿着1元,n个人拿着2元去买票。票价一元,且售票元只能用n个人购票的一元给2元的找零。问有几种排列方法        分析:卡特兰数方法                     递推公式:F(2*n) =F(0)*F(2(n-1)) +F(1)*F(2(n-2))+……+F(2(n-1))*F(0)                                     

2014-04-13 15:42:04 659

原创 最短摘要生成

Alibaba笔试题:给定一段产品的英文描述,包含M个英文字母,每个英文单词以空格分隔,无其他标点符号;再给定N个英文单词关键字,请说明思路并编程实现方法String extractSummary(String description,String[] key words),目标是找出此产品描述中包含N个关键字(每个关键词至少出现一次)的长度最短的子串,作为产品简介输出。(不限编程语言)20分。

2014-04-12 16:57:42 1119

转载 百度面试题:POJ 2192

百度二面的时候有一道题目没有答上来,回来一查,原来是POJ上的原题,是一个DP问题,当时有向这方面想,但始终没有找出重叠子问题,网上看到别人定义的子问题,感觉真心简单,关键看是否能找出子问题了,这个积累不是一时半日的,自己还是太菜。刚刚到POJ上AC了这道题,附题目链接:POJ 2192: http://poj.org/problem?id=2192题意:就是给定三个字符串A,B,C;

2014-04-11 17:05:28 598

原创 从一列数中筛除尽可能少的数使得从左往右看,这些数是从小到大再从大到小的

问题描述:    从一列数中筛除尽可能少的数使得从左往右看,这些数是从小到大再从大到小的。解题思路:    假设一个数组arr[n],它的分段点是i(0-i递增,i到n-1递减),假设我们用方法LIS(i)(最长递增子序列)找到从0到i的递增子序列,LDS找到从i到n-1的最长递减子序列,那么它的总长度为LIS(i) + LDS(i) - 1,所以我们扫描整个数组,即让i从0到n-

2014-04-10 23:10:41 1598

转载 Spark:一个高效的分布式计算系统

概述什么是SparkSpark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭

2014-04-10 20:05:49 692

原创 快速指数相乘法

对于a的n次幂求解这个问题,不少人看到后都觉得没有什么内容吧!我第一次想到这个问题也觉得没有什么内容,但是后来仔细想想,里面还真是有学问哦!想想看如果我们求 a8,有以下两种方法:1)a8 = a * a * a * a * a * a * a * a 需要计算 7次乘法2)a 8  = (a * a) * A * A  (其中A = a * a) 需要计算3次乘法对于这么

2014-04-10 17:16:07 2589

原创 HTTP协议通信过程

当我们在浏览器的地址栏输入“www.baidu.com”然后按回车,这之后发生了什么事,我们直接看到的是打开了对应的网页,那么内部客户端和服务端是如何通信的呢?1、    1、URL自动解析      HTTP URL包含了用于查找某个资源的足够信息,基本格式如下:HTTP://host[“:”port][abs_path],其中HTTP表示桶盖HTTP协议来定位网络资源;ho

2014-04-10 10:59:43 1348

原创 tcp/ip四次挥手协议

四次分手:由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(报文段4)。(2)服务器B

2014-04-10 10:56:05 553

原创 TCP /ip三次握手协议分析

TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急

2014-04-10 10:54:31 598

原创 get和post的区别

表单提交中Get和Post方式的区别有   1. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。   2. 对于get方式,服务器端用Request.QueryStr

2014-04-10 10:45:27 516

翻译 spark安装

环境:CentOS 6.4, Hadoop 1.1.2, JDK 1.7, Spark 0.8.0, Scala 2.9.3Spark 0.7.2 的安装请看之前的一篇博客,安装Spark集群(在CentOS上) 。Spark的安装很简单,总结起来一句话:下载,解压,然后拷贝到所有机器,完毕,无需任何配置。1. 安装 JDK 1.7yum search openjdk-devel

2014-04-10 10:11:22 683

高级数据库课后答案

这是课后答案,没有必要在上课讲这些东西了,作为助教也就是抄答案的,所以大家下载了以后直接自己看,效果会更好,欢迎下载

2013-11-26

空空如也

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

TA关注的人

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