自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (6)
  • 收藏
  • 关注

原创 【Java之多线程(二)】(***重要***)Java多线程中常见方法的区别,如object.wait()和Thread.sleep()的区别等

1、Java中Thread和Runnable的区别???区别:在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处:避免点继承的局限,一个类可以继承多个接口。适合于资源的共享联系:public class Thread extends Object implements Ru

2015-04-22 17:34:43 1904

转载 【Java之多线程(一)】java中的多线程总结

java中的多线程在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。对于直接继承Thread的类来说,代码大致框架是:123456789101112class 类名 extends Thread{方法1;方法2;…public void

2015-04-22 17:29:33 578

原创 【Java之并发】ReentrantLock和synchronized区别

1、ReentrantLock和synchronized区别:相同:ReentrantLock提供了synchronized类似的功能和内存语义。 不同:1.ReentrantLock功能性方面更全面,比如时间锁等候,可中断锁等候,锁投票等,因此更有扩展性。在多个条件变量和高度竞争锁的地方,用ReentrantLock更合适,ReentrantLock还提供了Conditi

2015-04-22 17:19:06 1182

原创 【Java之Servlet(二)】servlet是单例多线程,以及多线程下如何保证线程安全

Servlet 单例多线程1、Servlet如何处理多个请求访问?答:Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在一个Servlet实例); 2.容器初始化化Servlet主要就是读取配置文件(例如tomcat,可以通过servlet.xml的设置线程池中线程数目,初始

2015-04-22 16:45:26 4470 2

转载 【Java之Servlet(一)】Servlet生命周期与工作原理

一、Servlet生命周期1、Servlet生命周期分为三个阶段:  (1)初始化阶段  调用init()方法在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象。初始化的目的是为了让Servlet对象在处理客户端请求前完成一些初始化的工作,如建立数据库的连接,获取配置信息等。对于每一个Servlet实例,init()方法只被调用一次。在初始

2015-04-22 16:22:52 1996

转载 【算法之数组(一)】求子数组最大和的解决方法详解

题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。第一种方法:很容易想到的,就是使用双重循环:

2015-04-14 17:48:01 2453

转载 【算法之动态规划(五)】DP规划思想学习:从《算法导论》到《算法设计》

像所有的新手一样,对一种算法思想的理解需要经历从肤浅(流于表面形式)到逐渐触摸到本质的过程。为什么说逐渐触摸到本质,是因为很多时候你并不确定一个解释是不是最本质的,有时候会有好几个等价的解释,各自在不同的场景下具有。  动态规划经典题集转]动态规划与排列组合,比如对动态规划(DP)的理解,一开始我理解为递推,但实际上这是最肤浅的理解,对于如何在特定的问题中找到递推关系毫无帮助和。换言之,这

2015-04-14 17:46:35 1060

转载 【算法之动态规划(三)】动态规划算法之:最长公共子序列 & 最长公共子串(LCS),字符串相似度算法

1、先科普下最长公共子序列 & 最长公共子串的区别:找两个字符串的最长公共子串,这个子串要求在原字符串中是连续的。而最长公共子序列则并不要求连续。2、最长公共子串其实这是一个序贯决策问题,可以用动态规划来求解。我们采用一个二维矩阵来记录中间的结果。这个二维矩阵怎么构造呢?直接举个例子吧:"bab"和"caba"(当然我们现在一眼就可以看出来最长公共子串是"b

2015-04-14 17:40:24 1732

转载 【算法之动态规划(四)】动态规划笔试例题详解

转自:http://www.cnblogs.com/kkgreen/archive/2011/06/26/2090702.html终于来到了算法设计思想中最有趣的这部分,在去年的google笔试中,7道算法设计题有2道动态规划(Dynamic Programming)。看了这么久的算法,这部分也是唯一感觉到了比较难的地方,从这篇文章开始,将花连续的篇幅来讨论一些

2015-04-14 17:32:54 8169

转载 【算法之动态规划(二)】动态规划:从新手到专家

前言_我们遇到的问题中,有很大一部分可以用动态规划(简称DP)来解。解决这类问题可以很大地提升你的能力与技巧,我会试着帮助你理解如何使用DP来解题。这篇文章是基于实例展开来讲的,因为干巴巴的理论实在不好理解。注意:如果你对于其中某一节已经了解并且不想阅读它,没关系,直接跳过它即可。简介(入门)什么是动态规划,我们要如何描述它?动态规划算法通常基于一个递推公式及一个或多个初始状态

2015-04-14 17:31:17 2121

原创 【算法之动态规划(一)】动态规划(DP)详解

一、基本概念动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程

2015-04-14 17:09:20 38050 2

转载 【算法之字符串(一)】KMP算法详解之上:适合初学KMP算法的朋友

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。也可参考KMP讲解视频:    十分钟详解KMP

2015-04-14 15:53:44 616

转载 【算法之字符串(一)】KMP算法详解之下

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。也可参考KMP讲解视频:    十分钟详解KMP

2015-04-14 15:46:29 587

转载 【算法之链表(四)】在不使用额外节点存储空间的情况下,实现单链表逆序

下面来看一下很经典的“单链表逆序”问题。很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间,有的没有明确说明,但是如果面试者使用了额外的节点存储空间做中转,会得到一个比较低的分数。如何在不使用额外存储节点的情况下使一个单链表的所有节点逆序?我们先用迭代循环的思想来分析这个问题,链表的初始状态如图(1)所示:图(1)初始状态 初始状态,prev是N

2015-04-14 12:24:49 4217

转载 【算法之链表(三)】单链表中,在仅允许使用一个指针的情况下,在指定的节点前面插入以及删除一个节点

题目:在给定头结点的单链表中插入以及删除指定节点这个题目我们遇到这个问题的时候可能会想这个该怎么解,我们知道如果在一个已知的节点之后添加和删除一个节点的话很容易的,那么如何在给定的节点之前插入一个节点以及删除指定节点?因为如果想删除和插入一个节点的话,肯定是需要获取前面的一个节点的,但是根据题目所给的条件中,我们可以看到我们是不可能获取到前面的一个节点的,所以得另外去想

2015-04-14 12:10:03 1638

转载 【算法之链表(二)】判断两个链表是否相交并找出交点

题目:一个比较经典的问题,判断两个链表是否相交,如果相交找出他们的交点。首先来看一下如何判断两个链表是否存在相交的节点:思路:1、碰到这个问题,第一印象是采用hash来判断,将两个链表的节点进行hash,然后判断出节点,这种想法当然是可以的。2、当然采用暴力的方法也是可以的,遍历两个链表,在遍历的过程中进行比较,看节点是否相同。3

2015-04-14 12:04:50 3145 1

转载 【算法之链表(一)】判断单链表中是否有环、环的长度、环的入口节点,单链表的倒数第K个节点等

题目:给定一个单链表,只给出头指针head:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少? 解法:1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。解析:如果以其它

2015-04-14 11:30:31 1639

转载 【算法之高效求素数】浅析求素数算法

注意: 如果没有特殊说明, 以下讨论的都是针对n为素数时的时间复杂度1. 根据概念判断:如果一个正整数只有两个因子, 1和p,则称p为素数.代码:bool isPrime(int n){ if(n < 2) return false; for(int i = 2; i < n; ++i) if(n%i == 0) return

2015-04-14 11:08:05 1008

转载 【SQL之查询优化(二)】SQL Server数据库优化经验总结

优化数据库的注意事项:1、关键字段建立索引。2、使用存储过程,它使SQL变得更加灵活和高效。3、备份数据库和清除垃圾数据。4、SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号)5、清理删除日志。SQL语句优化的基本原则:1、使用索引来更快地遍历表。缺省情况下建立的索引是非群集索引

2015-04-11 14:47:50 526 1

转载 【SQL之查询优化(一)】高手详解SQL性能优化十条经验

1.查询的模糊匹配尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用.解决办法:其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下:a、修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商,这样在调用

2015-04-11 14:45:49 586

原创 【SQL之HAVING用法】SQL WHERE和HAVING用法区别和详解

HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。两者区别:(1)WHERE搜索条件在进行分组操作之前应用;而HAVING搜索条件在进行分组操作之后应用。(2)HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。 实例:

2015-04-11 14:26:35 1407

原创 【SQL之查询】MySQL查询今天、昨天、上周、近30天、去年等的数据的方法

一、MySQL查询今天、昨天、上周、近30天、去年等的数据的方法:今天  select * from 表名 where to_days(时间字段名) = to_days(now());  昨天  SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) 7天  SELECT * FROM 表名 where DA

2015-04-10 13:46:45 61097 5

转载 【数据库之事务(一)】事务是什么,以及事务四个特性,以及事务并发问题和隔离级别

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

2015-04-10 13:29:19 4090

转载 【Java基础之线程同步(三)】使用ReentrantLock Condition实现线程同步

java的java.util.concurrent.locks包内有Condition接口,该接口的官方定义如下:Condition factors out the Object monitor methods (wait, notify and notifyAll) into distinct objects to give the effect of having multip

2015-04-10 13:12:48 380

转载 【Java基础之线程同步(二)】java线程同步:synchronized关键字,Lock接口以及可重入锁ReentrantLock

多线程环境下,必须考虑线程同步的问题,这是因为多个线程同时访问变量或者资源时会有线程争用,比如A线程读取了一个变量,B线程也读取了这个变量,然后他们同时对这个变量做了修改,写回到内存中,由于是同时做修改,就会导致修改的状态不一致.用一个实际的例子来说明线程同步的必要性:package cn.outofmemory.locks;public class LockDemo implemen

2015-04-10 13:09:51 440

转载 【Java基础之Object类(二)、线程同步(一)】Java中使用Object类的wait,notify,notifyAll做线程调度

我们知道java中的所有类的祖先都是Object,Object类有四个个方法wait(),wait(long timeout),notify(),notifyAll(),这四个方法可以用来做线程的调度或者说是线程的同步控制。wait() 方法用来控制当前线程停止执行,等待其他线程对此Object实例调用notify或者notifyAll方法之后再继续执行wait(long timeout)

2015-04-10 13:06:57 1297

原创 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解

一、Object中所有方法简介:在根类Object中包含一下方法: clone();equals();finalize();getClass();[align=left][/align]notify(),notifyAll();hashCode();toString();wait();我们知道所有的类都是继承于Object,所以我们编写的类默认都具有这些方法,究竟这些方法做什么用,

2015-04-10 12:33:32 4062

原创 【Java基础之内部类】Java内部类作用和详解

一、 定义放在一个类的内部的类我们就叫内部类。二、 作用1、内部类可以很好的实现隐藏,因为 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以。2、内部类拥有外围类的所有元素的访问权限3、可是实现多重继承4、可以避免修改接口而实现同一个类中两种同名方法的调用。三、实例1.实现隐藏

2015-04-10 11:49:40 567

转载 【算法之常用排序算法(二)】常用排序算法性能比较,及常见面试题

各种排序方法的性能比较:排序法平均时间最坏情况最好情况稳定度额外空间备注1.直接插入O(n2)O(n2)O(n)稳定O(1)大部分已排序时较好(简单)1.希尔O(nlogn)

2015-04-09 17:29:43 1289

转载 【Java基础之内存管理】Java中栈内存与堆内存的区别

Java把内存划分成两种:一种是栈内存,一种是堆内存。               在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。        堆内存用来存放由new创建的对象和数组。在堆

2015-04-09 17:15:46 1015

转载 【Java基础之String、StringBuilder、StringBuffer】Java中的String、StringBuilder以及StringBuffer的区别

相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方。精炼总结:(1)String对象值是不可追加的,StringBuilder和StringBuffer对象值是可追加的。(2)StringBuffer是线程安全的,StringBuilder是不安全的。(3)String、StringBuilder、StringBuff

2015-04-09 16:59:44 534

转载 【Java基础之集合(三)】集合对象比较大小和比较重复的区别和不同实现

Comparable接口:针对排序list 问题:上面的算法根据什么确定容器中对象的“大小”顺序?所有可以“排序”的类都实现了java.lang.Comparable接口,Comparable接口中只有一个方法Publicint compareTo(Object obj)返回0:表示this==obj返回正数:表示this>obj返回负数:表

2015-04-09 16:47:02 4306

转载 【Java基础之集合(二)】Java中HashMap详解

HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。 通过 HashMap、H

2015-04-09 16:37:39 330

转载 【Java基础之集合(一)】各种常用集合(Array、ArrayList、HashSet、HashMap、TreeMap等)分析对比

Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。   抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。   实现类:8个实现类(实线表示),对接口的具体实现。   在很大程度上,一旦您理解了

2015-04-09 15:49:27 1485

转载 【Java基础之多维数组访问】访问多维数组时潜在的性能问题

[c-sharp] view plaincopyprint?boolean[][] b = new boolean[8000][1000];    long s = System.currentTimeMillis();    for ( int i = 0; i     for ( int j = 0; j         b[j][i] 

2015-04-09 15:31:10 630

原创 【Java基础之多态中静态方法重写问题】java中静态方法的重写问题详解

多态:通过父类变量可以引用其子类对象,从而调用子类中那些继承自自己并被重写(覆盖)的方法。首先来看看以下程序将会打印出什么:class Dog { public static void bark() { System.out.print("Woof "); }}class Basenji extends Dog { public static

2015-04-09 15:08:25 1665

原创 【Java基础之数据类型转换】数据类型自动转换和强制转换、及相关常见面试题(如return (short)x / y* 2; 的返回类型)

类型转换Java 语言是一种强类型的语言。强类型的语言有以下几个要求:变量或常量必须有类型:要求声明变量或常量时必须声明类型,而且只能在声明以后才能使用。赋值时类型必须一致:值的类型必须和变量或常量的类型完全一致。运算时类型必须一致:参与运算的数据类型必须一致才能运算。但是在实际的使用中,经常需要在不同类型的值之间进行操作,这就需要一种新的语法来适应这种

2015-04-09 14:51:28 4230

转载 【Java基础之finally和return】有return的情况下try catch finally的执行顺序

结论:1、不管有没有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally

2015-04-09 14:20:10 485 1

转载 【设计模式之六:适配器模式】适配器模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述适配器(Adapter)模式的:  适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的用途  用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的

2015-04-08 23:38:36 429

转载 【设计模式之五:观察者模式】观察者模式浅析

在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的:  观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。  观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这

2015-04-08 23:34:39 429

Linux常见面试题.doc 吐血推荐,绝对重要

Linux常见面试题.doc

2014-08-06

EL表达式.PPT

EL表达式.PPT

2014-08-06

Java面试必备.从入门到精通---笔记

韩顺平.循序渐进学.java.从入门到精通---笔记 内容很详细,也很重要,Java面试必备

2014-08-06

优秀Android项目源码集合

项目很多 内容很全 也很基础 很适合新手学习

2014-08-06

高仿QQ 源码--绝对超值

高仿QQ 支持设置字体、 支持发送表情、 传送文件、 听音乐等功能、 绝对高仿

2014-08-06

SWFdecompiler

还行,操作简单,凑合能用!还行,操作简单,凑合能用!

2009-05-04

空空如也

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

TA关注的人

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