摘要: 什么是线程同步?     当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题。 阅读全文
posted @ 2012-10-17 10:26 zero516cn 阅读(970) 评论(0) 推荐(0) 编辑
摘要: 巨人网络的三道坑爹改错题 看看你能中几枪。。。 阅读全文
posted @ 2012-10-17 08:56 zero516cn 阅读(13046) 评论(71) 推荐(3) 编辑
摘要: 实现Runnable接口相对于扩展Thread类来说,具有无可比拟的优势。这种方式不仅有利于程序的健壮性,使代码能够被多个线程共享,而且代码和数据资源相对独立,从而特别适合多个具有相同代码的线程去处理同一资源的情况。这样一来,线程、代码和数据资源三者有效分离,很好地体现了面向对象程序设计的思想。因此,几乎所有的多线程程序都是通过实现Runnable接口的方式来完成的。 阅读全文
posted @ 2012-10-15 18:46 zero516cn 阅读(30618) 评论(4) 推荐(4) 编辑
摘要: 每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代码创建一个新 Thread 对象时,该新线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时,新线程才是守护程序。 阅读全文
posted @ 2012-10-15 17:25 zero516cn 阅读(8672) 评论(0) 推荐(1) 编辑
摘要: 阿里巴巴一道笔试题题目:有两个有序整数集合a和b,写一个函数找出它们的交集? 如果你有好的算法,就来笔笔速度吧!!! 阅读全文
posted @ 2012-10-15 12:26 zero516cn 阅读(11963) 评论(5) 推荐(1) 编辑
摘要: Java运算符优先级 阅读全文
posted @ 2012-10-13 18:47 zero516cn 阅读(130161) 评论(8) 推荐(14) 编辑
摘要: 有N个传教士和N个野人来到河边渡河, 河岸有一条船, 每次至多可供k人乘渡。问传教士为了安全起见, 应如何规划摆渡方案, 使得任何时刻, 河两岸以及船上的野人数目总是不超过传教士的数目(否则不安全, 传教士有可能被野人吃掉)。即求解传教士和野人从左岸全部摆渡到右岸的过程中, 任何时刻满足M(传教士数)≥C(野人数)和M+C≤k的摆渡方案。 阅读全文
posted @ 2012-10-12 23:40 zero516cn 阅读(20641) 评论(0) 推荐(0) 编辑
摘要: 最早提出遍历问题的是对存储在计算机中的表达式求值。例如:(a+b×(c-d))-e/f。表达式用树形来表示,如图8-11-1所示。运算符在树中放在非终端结点的位置上,操作数放在叶子结点处。 当我们对此二叉树进行先序、中序和后序遍历后,便可得到表达式的前缀、中缀和后缀书写形式: 前缀:-+a*b-cd/ef 中缀:a+b*c-d-e/f 后缀:abcd-*+ef/- 其中,中缀形式是算术表达式的通常形式,只是没有括号。在计算机内,使用后缀表达式易于求值。 阅读全文
posted @ 2012-10-12 09:16 zero516cn 阅读(30050) 评论(0) 推荐(4) 编辑
摘要: 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url 阅读全文
posted @ 2012-10-11 00:11 zero516cn 阅读(1558) 评论(0) 推荐(0) 编辑
摘要: 题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式? 阅读全文
posted @ 2012-10-11 00:02 zero516cn 阅读(5914) 评论(0) 推荐(0) 编辑
摘要: 1.有三根杆子A,B,C。A杆上有若干碟子 2.每次移动一块碟子,小的只能叠在大的上面 3.把所有碟子从A杆全部移到C杆上 阅读全文
posted @ 2012-10-10 23:16 zero516cn 阅读(16886) 评论(0) 推荐(1) 编辑
摘要: 经典洗牌算法 阅读全文
posted @ 2012-10-10 22:44 zero516cn 阅读(4838) 评论(0) 推荐(0) 编辑
摘要: 将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面 阅读全文
posted @ 2012-10-10 20:57 zero516cn 阅读(1026) 评论(0) 推荐(0) 编辑
摘要: 类通过实现java.io.Serializable接口可以启用其序列化功能。未实现次接口的类无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。 阅读全文
posted @ 2012-10-10 15:50 zero516cn 阅读(46383) 评论(1) 推荐(8) 编辑
摘要: String: char[] + 方法(操作, API功能)   StringBuilder: char[] + 方法(操作char[] 的内容)   String:内部包含内容不可变的char[],表现为String对象不可变。String包含操作(API方法),是对char[]操作,但不改变原对象经常返回新的对象,很多String API提供了复杂的性能优化算法,如:静态字符串池。   StringBuilder:内部也是一个char[],但是这个数组内容是可变的,并且自动维护扩容算法,因为数据内容可变,所以叫:可变字符串。StringBuilder API方法,是动态维护char[]内容,都可以改变char[]内容。 阅读全文
posted @ 2012-10-07 18:24 zero516cn 阅读(44916) 评论(2) 推荐(4) 编辑
摘要: 浅层复制: 被复制的对象的所有成员属性都有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅层复制仅仅复制所考虑的对象,而不复制它所引用的对象。(概念不好理解,请结合下文的示例去理解)   深层复制:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不是原有的那些被引用的对象。换言之,深层复制要复制的对象引用的对象都复制一遍。 阅读全文
posted @ 2012-10-07 12:52 zero516cn 阅读(25065) 评论(10) 推荐(6) 编辑
摘要: Java Arrays中提供了对所有类型的排序。其中主要分为Primitive(原始的)和Object两大类,分别使用了快速排序与归并排序。本章以int[] 的排序,讲解Java对Primitive排序。 阅读全文
posted @ 2012-10-04 20:48 zero516cn 阅读(23381) 评论(2) 推荐(9) 编辑
摘要: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉模式单例、饿汉模式单例、登记模式的那里三种。   单例模式有一下特点:   1、单例类只能有一个实例。   2、单例类必须自己自己创建自己的唯一实例。   3、单例类必须给所有其他对象提供这一实例。 阅读全文
posted @ 2012-09-16 15:21 zero516cn 阅读(1201) 评论(0) 推荐(0) 编辑
摘要: &与&&的区别   1)&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。   2)&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!=null&&!str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33&++y>0)y会增长,If(x==33&&++y>0)不会增长   3)&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31&0x0f的结果为0x01。 阅读全文
posted @ 2012-09-13 23:47 zero516cn 阅读(2693) 评论(0) 推荐(0) 编辑
摘要: • 接口是一种规范,是一种规则,它只给出了方法的样子,规定你要实现哪些方法,而不给出方法的实现,让接口的实现类去实现这些方法,但是对于不同的实现类来说,对方法的实现可以完全不同。 • 接口的实现类如果实现了某一个接口,那么必须实现接口中定义的所有的待实现的方法。如果你不想要实现方法,那么实现类必须定义为抽象类,不想实现的方法必须定义为抽象方法。 • 接口中定义的属性和方法的默认访问级别都是public,所以方法肯定不被private所修饰,所有的方法前都默认包含了abstract ,表明它是一个抽象方法,但是可以省略,而且默认是省略的 • 接口实际上是一个抽干了的抽象类,它里面所有的方法都是抽象的,都是不能给出任何实现部分的----- 干尸类 • 因为接口是一种特殊的“抽象类”,而且因为抽象类可以继承别的类,所以接口也可以继承接口,也只可以继承接口。但是接口不可以实现接口。   • 一个类可以实现多个接口使用关键字implements ,一个接口可以继承多个接口使用关键字extends,一个类可以同时继承一个别的类,而且实现一个或多个接口,但是关键 阅读全文
posted @ 2012-09-12 13:47 zero516cn 阅读(1449) 评论(0) 推荐(0) 编辑
摘要: 什么事框架   框架式一组程序的集合,包含了一系列的最佳实践,作用是解决某个领域的问题。当我们使用某个框架时,其实是把一系列JAR包加载到CLASSPATH路径中,实际上是获得了JAR中所有对JDK的额外支持。也就是说:框架只是一些JAR包而已,其本质是对JDK的功能扩展,作用是为了解决某个领域的问题。   最佳实践:实际上是无数程序员在经过了无数次的尝试后,总结出来的处理特定问题的特定方法。 阅读全文
posted @ 2012-09-11 21:04 zero516cn 阅读(1281) 评论(0) 推荐(0) 编辑
摘要: String 类是最终类(final类)不能被继承。 Java中所有字符串的字面值都是String类的实例,即时一个String类的一个具体对象。 字符串是常量,一旦被创建,他们的值就不能改变。 阅读全文
posted @ 2012-09-10 00:19 zero516cn 阅读(4328) 评论(0) 推荐(1) 编辑
摘要: ①Names of class,method and variable:用于类名、方法名、变量名 ②Begin with character,"_" or "$":标识符不能以数字开头 ③Case sensitive:大小写敏感(区分大小写) ④No length limitation:长度无限制 ⑤标识符不能是Java关键字,汉字也可以做标识符,但是不建议使用(使用汉字涉及到编码问题,跨平台时回出现问题)。 ⑥String是Java的一个类,类名是标识符,所以String可以做标识符。 ⑦There is no sizeof operator.Java中没有sizeof运算符,所以sizeof可以作为标识符 ⑧关键字、保留字(const、goto、true、false、null)不能用作标识符。 阅读全文
posted @ 2012-09-09 15:16 zero516cn 阅读(22824) 评论(4) 推荐(0) 编辑
摘要: 接下来我们再比较下两种方式的差异:第一,C语言是编译执行的,编译器与平台相关,编译生成的可执行文件与平台相关;第二,Java是解释执行的,编译为中间码的编译器与平台无关,编译生成的中间码也与平台无关(一次编译,到处运行),中间码再由解释器解释执行,解释器是与平台相关的,也就是不同的平台需要不同的解释器. 阅读全文
posted @ 2012-09-09 13:26 zero516cn 阅读(14997) 评论(1) 推荐(9) 编辑
摘要: Collection是一个集合接口,Collections是一个包装类(或帮助类),这是二者最明显的区别。Collections提供了一 些static方法来对 Collection对象进行处理,比如:对Collection对象的复制、添加元素、修改元素、对元素进行排序、交换俩个元素的位置、取 Collection的子集等等操作。另外Collection是j2sdk中集合框架的根接口,所有的其他特殊类型的结合接口或者类都直接或间接的实现 了这个接口。 阅读全文
posted @ 2012-09-09 08:22 zero516cn 阅读(2932) 评论(1) 推荐(0) 编辑
摘要: 根据约定,在使用java编程的时候应尽可能的使用现有的类库,当然你也可以自己编写一个排序的方法,或者框架,但是有几个人能写得比JDK里的还要好呢?使用现有的类的另一个好处是代码易于阅读和维护,这篇文章主要讲的是如何使用现有的类库对数组和各种Collection容器进行排序。 阅读全文
posted @ 2012-09-09 06:54 zero516cn 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 关于Java内存原型相信大部分的初学者都知道一二,本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。 阅读全文
posted @ 2012-09-08 17:45 zero516cn 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 本文主要详解了Java语言的8大排序的基本思想以及实例解读,详细请看下文 阅读全文
posted @ 2012-09-08 16:52 zero516cn 阅读(894) 评论(1) 推荐(3) 编辑
摘要: 从上面图中我们可以看到,由于ThreadLocal所操作的是维持于整个Thread生命周期的副本(ThreadLocalMap),所以无论在 J2EE程序的哪个层次(表示层、业务逻辑层或者持久层),只要在一个Thread的生命周期之内,存储于ThreadLocalMap中的对象都是 线程安全的(因为ThreadLocalMap本身仅仅隶属于当前的执行线程,是执行线程内部的一个属性变量。我们用图中的阴影部分来表示这个变量的存储空间)。而这一点,正是被我们用于来解决多线程环境中的变量共享问题的核心技术。ThreadLocal的这一特性也使其能够被广泛地应用于J2EE开发 中的许多业务场景。 阅读全文
posted @ 2012-09-07 23:45 zero516cn 阅读(2842) 评论(0) 推荐(1) 编辑
摘要: 设计模式(Design pattern):是经过程序员反复实践后形成的一套代码设计经验的总结。 ThreadLocal模式:用来解决多线程程序中数据共享问题的一个方案。 阅读全文
posted @ 2012-09-07 19:29 zero516cn 阅读(7945) 评论(1) 推荐(1) 编辑