摘要: 在网上看到一些关于在try{}catch{}finally{}中加入return后的执行顺序的讨论,不衷一是,于是自己写了个例子测试,过程和结论如下。 在try{}catch{}finally{}程序中,无论是否发生异常且无论try或catch语句块中包含什么代码("System.exit();"除外),finally语句块中的代码都会被执行。但当try语句块中包含return语句时执行顺序有点不一样。 场景一: publicclassTestFinally{publicstaticvoidmain(String[]args){System.out.print(return 阅读全文
posted @ 2013-12-26 09:11 红宝石 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 面试题分析:我的Twitter技术面试失败了确认我返回亚马逊实习的截止期限是10月28日,但是我的朋友Daniel说服我如果我被Twitter录取,我就不用参加任何面试了。所以我去Twitter面试了。首先他们让我在一个小时内完成两道编程能力的问题。问题很有意思:“这是回文(译注:正着读和倒着读是一样的)吗?”以及“计算二维数组的平衡点”。我不是很有自信,但是Twitter的一个招聘人员Judy给我发了email并安排了周三5:30的电话甄选。我不知道你怎么样,反正我在面试前是很紧张的。我觉得这主要是因为我不想让面试官认为我很蠢。所以你可以想象,5:20我清空了桌子,记事本上标注了“Twitt 阅读全文
posted @ 2013-11-01 15:09 红宝石 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 泛型简介: 泛型(Generic Type)是.NET Framework2.0最强大的功能之一。泛型的主要思想是将算法与数据结构完全分离开,使得一次定义的算法能作用于多种数据结构,从而实现高度可重用的开发。通过泛型可以定义类型安全的数据结构,而没有必要使用实际的数据类型,这将显著提高系统性能并得到高质量的代码(因为可以重用数据处理算法,没有必要复制类型特定的代码)。泛型工作原理: 通过泛型可以定义类型安全并且对性能或工作效率无损害的类。表面上,C#泛型的语法和C++模板类似,但编译器在实现和支持他们的方式存在重要的差异。与C++模板相比,C#泛型可以提供增强的安全性,但在功能方面也受到某.. 阅读全文
posted @ 2013-10-28 12:00 红宝石 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 有三种: (1)继承Thread类,重写run函数 创建: class xx extends Thread{ public void run(){ Thread.sleep(1000) //线程休眠1000毫秒,sleep使线程进入Block状态,并释放资源 }} 开启线程: 对象.start() //启动线程,run函数运行 (2)实现Runnable接口,重写run函数 开启线程: Thread t = new Thread(对象) //创建线程对象 t.start() (3)实现Callable接口,重写call函数 Callable是类似于Runnable的... 阅读全文
posted @ 2013-10-25 13:06 红宝石 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 如果我们的程序需要动态内存的话,则迟早会调用Win32函数VirtualAlloc。但是程序也可以不调用VirtualAlloc,而是直接调用Windows堆函数或者CRT堆函数。不过,知道VirtualAlloc如何工作,可以帮助我们更好地理解这些调用函数。 首先,必须知道保留(Reserved)内存和占用(Committed)内存的含义。当内存放保留时,一段连续虚拟地址空间被留出。例如,假如我们的程序要使用5 -MB内存块(称为区域),但并不是要马上全部使用,则我们可以调用VirtualAlloc函数,使用MEM_RESERVE分配类型参数。Windows会以64 KB为边界计算该区域的起 阅读全文
posted @ 2013-10-24 19:45 红宝石 阅读(3875) 评论(0) 推荐(1) 编辑
摘要: 程序中用来存放数据的内存分为四块,其实另有一块用于存放代码,这里我们不讨论,这四块分别是:1、全局区(静态区)(static):全局变量和静态变量都存储在这块区域,与其他变量的明显区别就是生命周期不同,在程序结束时,系统会释放这块资源2、文字常量区:常量字符串就是放在这块区域,即是我们常说起的常量池。这块也是在程序结束时由系统释放。3、栈区(stack):存放函数的参数值,局部变量的值等。这块的数据大家就很熟悉了,在进入作用域时分配占用内存,离开作用域时释放占用内存4、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由系统回收。由于这个原因,在C和C++中就有能产生大量程 阅读全文
posted @ 2013-10-24 19:39 红宝石 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 本来想一上来就先复习SQL,然后再是数据库优化之类的东西,但是翻了翻之前上《数据库概念基础》的课件,发现有几个东西还是了解一下比较好。 第一章:数据库基础中几个需要注意的概念 第一节:什么是关系型数据库呢?关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。——摘自《百度百科》(更多深入的理解还是看资料比较好,涉及的内容比较多,如果全部都贴出来会很冗长。例如,什么是关系模型,集合代数又是什么,都是要了解的。我之所以单单贴出来这句话,是为了之后在看到的时候可以根据这句话想起相关的内容。有的时候,一句话的概念并不是要我们去背,而是去理解,自然而然就会记 阅读全文
posted @ 2013-10-24 10:21 红宝石 阅读(334) 评论(0) 推荐(0) 编辑
摘要: java一般用线程就够了,多进程优势在于每个进程互不干扰,劣势在于太耗费内存,任何事情都不是绝对的,在编写Java程序时,有时候需要在Java程序中执行另外一个程序。1、启动程序Java提供了两种方法用来启动其它程序:(1)使用Runtime的exec()方法(2)使用ProcessBuilder的start()方法不管在哪种操作系统下,程序具有基本类似的一些属性。一个程序启动后就程序操作系统的一个进程,进程在执行的时候有自己的环境变量、有自己的工作目录。Runtime和ProcessBuilder提供了不同的方式来启动程序,设置启动参数、环境变量和工作目录。能够在Java中执行的外部程序,必 阅读全文
posted @ 2013-10-22 09:41 红宝石 阅读(977) 评论(0) 推荐(0) 编辑
摘要: 最近一段时间去武汉参加了N多笔试,在几次试题中都出现了排序。偏偏出现了我没怎么看的插入排序,弄得我好是纠结。趁回学校的机会把这几个不是很复杂的排序重新复习了一下,借此比较了一下他们的效率。让我有点以外的是在数据量达到1W~10W之间,希尔排序竟然比快速排序效率还要高。贴上完整代码!冒泡排序 1 //冒泡排序 2 ////////////////////////////////////////////////////////////////////////// 3 void BubleSort(int a[],int n) 4 { 5 int temp; 6 bool flag=... 阅读全文
posted @ 2013-10-22 08:43 红宝石 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 欣赏另一种Orm的设计风格----大道至简Moon.Orm 5.0(MQL版)使用指南(二)一、使用sql及存储过程1)使用List>1.使用sql ,体验原生态的感觉stringsql="select * from Class where ClassName = @";stringsql2="select * from Class where DateTimem = @";List>mylist=db.ExecuteSqlToDictionaryList(sql,"boy'");List>mylist2=d 阅读全文
posted @ 2013-10-22 08:41 红宝石 阅读(438) 评论(0) 推荐(0) 编辑