2013年11月14日

Restore IP Addresses

摘要: Given a string containing only digits, restore it by returning all possible valid IP address combinations.For example:Given"25525511135",return["255.255.11.135", "255.255.111.35"]. (Order does not matter)Solution:注意这里if(tmp result = null; 3 public ArrayList restoreIpAdd 阅读全文

posted @ 2013-11-14 17:44 Step-BY-Step 阅读(200) 评论(0) 推荐(0) 编辑

Reverse Linked List II

摘要: Reverse a linked list from positionmton. Do it in-place and in one-pass.For example:Given1->2->3->4->5->NULL,m= 2 andn= 4,return1->4->3->2->5->NULL.No... 阅读全文

posted @ 2013-11-14 17:18 Step-BY-Step 阅读(138) 评论(0) 推荐(0) 编辑

Insertion Sort List

摘要: Sort a linked list using insertion sort. 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { 7 * val = x; 8 * next = null; 9 * }10 * }11 */12 public class Solution {13 public List... 阅读全文

posted @ 2013-11-14 16:51 Step-BY-Step 阅读(135) 评论(0) 推荐(0) 编辑

Java中finalize()

摘要: 垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法(你可以 写程序验证这个结论),一般的纯Java编写的Class不需要重新覆盖这个方法,因为Object已经实现了一个默认的,除非我们要实现特殊的功能(这 里面涉及到很多东西,比如对象空间树等内容)。不过用Java以外的代码编写的Class(比如JNI,C++的new方法分配的内存),垃圾回收器并不能对这些部分进行正确的回收,这时就需要我们覆盖默认的方法来实现对这部分内存的正确释放和回收(比如C++需要delete)。总之,finalize相当于析构函数,他是垃圾回收器回收一个对象的时候第一个要调用的方法。不过由于Java的垃圾 阅读全文

posted @ 2013-11-14 14:55 Step-BY-Step 阅读(244) 评论(0) 推荐(0) 编辑

Volatile 说明

摘要: Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的synchronized”;与synchronized块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种 阅读全文

posted @ 2013-11-14 14:28 Step-BY-Step 阅读(183) 评论(0) 推荐(0) 编辑

学习新技术的10个建议

摘要: 英文原文:10 Tips for Learning a New Technology,编译:@玉面小飞鱼 我们生活在一个振奋人心的时代。我们可以越来越方便廉价地获得大量学习资源。这些资源的传播载体由最初的教室被变成了博客,技术论坛等。坐拥如此众多的学习资源,我们没有任何理由不去好好利用。随之而来的问题便是如何在这知识的海洋中选择自己的前进方向。在这篇文章中,我将简要概括一些技术学习的建议,希望可以给你带来一些启发。尽管我的建议主要涉及的是软件开发方面,但是这些原则在其他领域也同样适用。 1. 克服惯性(Overcoming Inertia) 万事开头难,克服惯性是学习新技术的第一步。... 阅读全文

posted @ 2013-11-14 13:13 Step-BY-Step 阅读(195) 评论(0) 推荐(0) 编辑

一个IT人士的个人经历,给迷失方向的朋友

摘要: 这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没有方向 ,所以把我的经历写出来与大家共勉,希望能给刚如行的朋友们一点点帮助。 一转眼我在IT行业学习工作已经七年多了,这期间我做过网页,写过MIS、数据库,应用程序,做过通信软件、硬件驱动、协议栈,到现在做操作系统内核和IC相关开发,这中间走了很多弯路,也吃了不少苦。 我上的是一个三流的高校,就连同一个城市的人多数都不知道。因为学校不好也就没有指望能靠学校名气找一个好工作。所有的希望都寄托在自己的努力上了,大一开学前的假期我就开始了学习。记.. 阅读全文

posted @ 2013-11-14 13:07 Step-BY-Step 阅读(188) 评论(0) 推荐(0) 编辑

java中的多线程

摘要: 转自:http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。对于直接继承Thread的类来说,代码大致框架是:?123456789101112class 类名 extends Thread{方法1;方法2;…public void run(){// other code…}属性1;属性2;…}先看一个简单的例子:?12345678910111213141516171819202122232425262728/*** @a 阅读全文

posted @ 2013-11-14 13:00 Step-BY-Step 阅读(194) 评论(0) 推荐(0) 编辑

Java的synchronized关键字:同步机制总结

摘要: JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。搞清楚synchronized锁定的是哪个对象,就能帮助我们设计更安全的多线程程式。不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对前段时间工作的总结和自我技术的条理话。JAVA的synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常 阅读全文

posted @ 2013-11-14 12:41 Step-BY-Step 阅读(182) 评论(0) 推荐(0) 编辑

Synchronized Methods

摘要: Synchronized MethodsThe Java programming language provides two basic synchronization idioms:synchronized methodsandsynchronized statements. The more complex of the two, synchronized statements, are described in the next section. This section is about synchronized methods.To make a method synchronize 阅读全文

posted @ 2013-11-14 12:39 Step-BY-Step 阅读(427) 评论(0) 推荐(0) 编辑

java synchronized详解

摘要: 记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。 三、尤其关键的是,当一个线程访问object的一个synchronized(this 阅读全文

posted @ 2013-11-14 12:22 Step-BY-Step 阅读(179) 评论(0) 推荐(0) 编辑

深拷贝与浅拷贝探析

摘要: 转自:http://www.cnblogs.com/phoenix-rock/archive/2006/11/07/shallowcopy_deepcopy.html1.深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。举个例子,一个人名叫张三,后来用他克隆(假设法律允许)了另外一个人,叫李四,不管是张三缺胳膊少腿还是李四缺胳膊少腿都不会影响另外一个人。比较典型的就是Value(值)对象,如预定义类型Int32,Double,以及结构(struct),枚举(Enum)等。考虑以下写法intsource =int.MaxValue;//(1)初始化源对象为整 阅读全文

posted @ 2013-11-14 11:18 Step-BY-Step 阅读(146) 评论(0) 推荐(0) 编辑

StringBuffer 和 StringBuilder

摘要: 如果你读过《Think in Java》,而且对里面描述HashTable和HashMap区别的那部分章节比较熟悉的话,你一定也明白了原因所在。对,就是支持线程同步保证线程安全而导致性能下降的问题。HashTable是线程安全的,很多方法都是synchronized方法,而HashMap不是线程安全的,但其在单线程程序中的性能比HashTable要高。StringBuffer和StringBuilder类的区别也在于此,新引入的StringBuilder类不是线程安全的,但其在单线程中的性能比StringBuffer高。如果我们的程序是在单线程下运行,或者是不必考虑到线程同步问题,我们应该优先 阅读全文

posted @ 2013-11-14 11:09 Step-BY-Step 阅读(243) 评论(0) 推荐(0) 编辑

Java Notes

摘要: 1.java是解释型语言。java虚拟机能实现一次编译多次运行。2.JDK(javasoftwareDevelopmentkit软件开发包),JRE(javaRuntimeEnvironmentjava运行环境)。3.javac编译java程序,java运行java程序。4.一个文件最多有一个publicclass。5.java中switch语句只能探测int类型值(JDK1.6以前)。6.在java中一个字节是八位,一个字符占两个字节(16位unicode字符串)。7.内存中byte占1个字节,int占4个字节,long类型占8个字节;float占4个字节,double占8个字节;boole 阅读全文

posted @ 2013-11-14 11:07 Step-BY-Step 阅读(210) 评论(0) 推荐(0) 编辑

abstract class和interface的区别

摘要: 在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。Abstract classInterface实例化不能不能类一种继承关系,一个类只能使用一次继承关系。可以通 阅读全文

posted @ 2013-11-14 11:01 Step-BY-Step 阅读(257) 评论(0) 推荐(0) 编辑

Java中super的几种用法并与this的区别

摘要: 1.子类的构造函数如果要引用super的话,必须把super放在函数的首位.classBase {Base() {System.out.println("Base");}}publicclassChecketextendsBase {Checket() {super();//调用父类的构造方法,一定要放在方法的首个语句System.out.println("Checket");}publicstaticvoidmain(String argv[]) {Checketc=newChecket();}}如果想用super继承父类构造的方法,但是没有放在第一行 阅读全文

posted @ 2013-11-14 08:48 Step-BY-Step 阅读(192) 评论(0) 推荐(0) 编辑

Java垃圾收集器

摘要: 概述 说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史远远比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考: GC需要完成的三件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 经过半个世纪的发展,内存的动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么我们还要去了解GC和内存分配呢?答案很简单:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的... 阅读全文

posted @ 2013-11-14 08:16 Step-BY-Step 阅读(297) 评论(0) 推荐(0) 编辑

LRU Cache

摘要: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations:getandset.get(key)- Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1.set(key, value)- Set or insert the value if the key is not 阅读全文

posted @ 2013-11-14 08:05 Step-BY-Step 阅读(214) 评论(0) 推荐(0) 编辑

google interview

该文被密码保护。 阅读全文

posted @ 2013-11-14 05:54 Step-BY-Step 阅读(2) 评论(0) 推荐(0) 编辑

Java Memory Basic

摘要: 转自:http://www.blogjava.net/justinchen/archive/2009/justinchen/archive/2009/01/08/248738.htmlGC and Full GCThe garbage collector (GC) detects garbage, defined as objects that are no longer reachable, then reclaims it and makes space available to the running program. The GC typically works in a stop-t 阅读全文

posted @ 2013-11-14 03:23 Step-BY-Step 阅读(229) 评论(0) 推荐(0) 编辑

导航