随笔分类 -  01.深入java原理

深入java底层,Jsp、servlet、javascript、jdbc、ajax、ext-js,xml,uml, Struts1、hibernate、spring,jbpm,SOA,WebService,设计模式
摘要:转自:http://www.iteye.com/topic/1114458这是我三年前创业,为IT部门招聘时写的一份面试提纲,其实也就是我的面试风格。 因为当时是做普通的电子商务网站(前台和后台),偏业务开发而不是系统软件,所以下面的面试题一般都比较基础和普通。 因为我们团队不大,公司资金也有限,所以基本上只找有工作经验的,关于薪水,至少是达到应聘者的期望值。 下面的技术题,针对应聘者的情况,会删减,比如工作一年的只需要Java基础即可。 我始终觉得,只要开发人员对技术感兴趣,我就有信心把他的潜力挖掘出来,让他把全部心思放在技术的乐趣上。 我在这儿把它贴出来,可能适合求职的朋友,因为对于应届生 阅读全文
posted @ 2011-09-09 09:05 jasonteststudy 阅读(575) 评论(0) 推荐(0)
摘要:1.线程的基本概念线程是一个程序内部的顺序控制流线程和进程的区别 每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销 线程可以看成是轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。多进程:在操作系统中能同时运行多个任务(程序)多线程:在同一应用程序中有多个顺序流同时执行Java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法(public static void main(){})所定义的线程。可以通过创建Tread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所 阅读全文
posted @ 2011-08-04 10:11 jasonteststudy 阅读(310) 评论(0) 推荐(0)
摘要:大多数的计算机硬件系统,具有检测某些运行时错误情况的能力,例如浮点数上溢。在许多早期的程序设计语言所使用的设计和实现的方式,使得用户程序既不能发现也不能处理这样的错误。在这些早期语言中,发生一种错误仅仅是引起程序终止,并且将控制转移到操作系统。操作系统对于运行时错误的典型反应,是显示一条诊断信息;这条信息可能含义清楚而有用,或者是十分模糊地。在显示了出错信息后,系统就将此程序终止。 许多当代语言的设计人员,已经在语言中包括了某些机制,能够使程序按照一种标准的方式,对于某些运行时错误和其他程序所检测到的异常事件做出反应。当硬件或系统软件检查出某种事件的发生时,还能够通知程序以便能够做出必要地反. 阅读全文
posted @ 2011-08-03 09:56 jasonteststudy 阅读(4360) 评论(0) 推荐(0)
摘要:异常,又称例外,是指程序运行过程中出现的非正常现象。例如:用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等。由于异常情况总是不可避免的,良好的应用程序除了具备用户所需求的基本功能外,还应具有预见并处理可能发生的各种异常的功能。引入了异常处理。 用面向对象的方法处理异常,就必须建立类的层次。在Java中,Throwable是所有可以通过throw抛出或catch捕获错误的基类。Throwable 对象有两个直接子类对象:Error类和Exception类。Error类用来表示编译错误和系统错误,如虚拟机错误、装载错误、动态链接错误,这类异常主要与硬件、运行系统有关,与程序本身无关,. 阅读全文
posted @ 2011-08-01 12:03 jasonteststudy 阅读(1306) 评论(0) 推荐(0)
摘要:1.Java中finalize()的作用一主要是清理那些对象(并非使用new)获得了一块“特殊”的内存区域。程序员可以用finalize()来操作。程序员都了解初始化的重要性,但常常会忘记同样也重要的清理工作。毕竟,谁需要清理一个int呢?但在使用程序库时,把一个对象用完后就“弃之不顾”的做法并非总是安全的。当然,Java有垃圾回收器负责回收无用对象占据的内存资源。但也有特殊情况:假定你的对象(并非使用new)获得了一块“特殊”的内存区域,由于垃圾回收器只知道释放那些经由new分配的内存,所以它不知道该如何释放该对象的这块“特殊”内存区域,为了应对这种情况,java允许在类中定义一个名为fi. 阅读全文
posted @ 2011-08-01 12:01 jasonteststudy 阅读(30007) 评论(2) 推荐(1)
摘要:数据抽象,继承,多态,重载等是面向对象的四大特征。 数据抽象解决人们不要受限于机器,而是把思考问题的方式直接面向了问题本身, 继承:继承主要用来解决什么问题的呢?面向对象编程为什么要有继承这个重要的特性呢?如果情形是这样的:在创建了一个类之后,即使另一个新类与具有相似的功能,你还是得重新创建一个新类。如果我们能够以现有的类为基础,复制它,然后通过添加和修改这个新类就好多了。通过继承便可以达到这样的效果 多态:在处理类型的层次结构时,经常想把一个对象不当作它所属的特定类型来对待,而是将其当作其基类的对象来对待。这使得人们可以编写出不依赖特定类型的代码。在“几何形”的例子中,方法操作的都是泛化的形 阅读全文
posted @ 2011-08-01 12:00 jasonteststudy 阅读(1283) 评论(0) 推荐(0)
摘要:所有编程语言都提供抽象机制。可以认为,人们所能够解决的问题的复杂性直接取决于抽象的类型和质量。所谓的“类型”是指抽象的是什么?汇编语言是对底层机器的轻微抽象。接着出现了许多所谓“命令式”语言(如Foratran、basic,C等)都是对汇编语言的抽象。这些语言在汇编语言基础上有了大幅的改进,但是它们所作的主要抽象仍要求在解决问题时要基于计算机的结构,而不是基于所要解决的问题的结构来了考虑(考虑问题是面向机器的,而不是面向具体的问题的)。程序员必须建立起在机器模型(位于“解空间”内,这是你对问题建模的地方,例如计算机)和实际待解问题的模型(位于“问题空间”内,这是问题存在的地方,例如一项业务). 阅读全文
posted @ 2011-08-01 11:57 jasonteststudy 阅读(261) 评论(0) 推荐(0)
摘要:以Jsp为中心的开发模型,称为Model1(jsp+javabean),但这种模型有很多缺点,1.业务逻辑与表示逻辑混合,不利于维护与重用2.HTML中嵌套了大量java代码3.验证、流程控制、更新程序的状态全部在jsp中完成 基于MVC的开发,即Model2模型,这种模型解决了Model1的问题1.MVC将问题进行了分解2.模型包含应用程序的核心功能。模型封装了应用程序的状态。它对视图或控制器一无所知3.视图提供模型的表示。它是应用程序的外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。4.控制器对用户的输入作出反应。它创建设置模型 由于MVC这种思想的出现,之后. 阅读全文
posted @ 2011-08-01 09:22 jasonteststudy 阅读(314) 评论(0) 推荐(0)