北京一家JAVA开发公司面试题(留给后人)


1、jsp有哪些内置对象?作用分别是什么?

2、描述一下servlet的生命周期和基本架构。

3、多线程有几种实现方法,都是什么?

      同步有几种实现方法,都是什么?

4、作用域public   private   protected以及不写时的区别?

5、用JAVA实现数据库查询(写一段完整的程序)。

6、用正则表达式判断123456_78不是一个数字。

7、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。

---------------------------------------------------------------

以上是北京一家JAVA开发公司出的面试题,在这里贴出来是想留给刚出道且正在找工作的JAVA兄弟。

也希望这里的高高手给出正确答案,以给后人一些借鉴,造福于后人! 

 

out---Jsp.jspWriter的对象,在html上显示内容

request---HttpServlet的对象,包含请求信息

response---HttpServlet的对象,对请求所作出的响应

session---HttpSession的对象,每个客户与当前请求建立的唯一的会话

exception--throwable的子类,请求发生错误时抛出的异常

page--相当于this

 

servelt的生命自web服务器启动时开始至服务器关闭时结束,jvm第一次加载后驻留在内存中,所有请求共享同一个servlet,包括init(),service(),start(),stop(),destrop(),doGet(),doPost()等方法,第一次加载时首先call   init()方法,然后service()方法,不说了不说了,太罗嗦了, 

 

1。当一个线程进入moniter(也就是说站用一个object),另一个线程只有等待或返回,而我们把返回就称为一种模式,这种模式的英文是Balking。   

 

2。这两个线程可以是有序的执行,而不是让OS来调度,这时我们要用一个object来调度,这种模式称为Scheduler。(这个词及其含义其实OS中就有)。   

 

3。如果这两个线程同时读一个资源,我们可以让他们执行,但如果同时写的话,你闭着眼睛都会知道可能出现问题,这时我们就要用另一种模式(Read/Write   Lock)。   

 

4。如果一个线程是为另一个线程服务的话,比如IE中负责数据传输的线程和界面显示的线程,当一个图片没有传完时,另一个线程就无法显示,至少是部分没有传完。那么这时我们要用一个模式称为生产者和消费者,英文是Producer-Consumer。   

 

5。两个线程的消亡也可以不是完全又OS来控制的,这时我们需要给出一个条件,使得每个线程在符合条件是才消亡,也就是有序的消亡,我们称为Two-Phase   Termination。 

 

1.       JSP有哪些内置对象?作用分别是什么?

(1)   HttpServletRequest类的Request对象

作用:代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。

(2)   HttpServletResponse类的Respone对象

作用:代表响应对象,主要用于向客户端发送数据

(3)   JspWriter类的out对象

作用:主要用于向客户端输出数据;   

                Out的基类是JspWriter

(4)   HttpSession类的session对象

作用:主要用于来分别保存每个用户信息,与请求关联的会话;

                  会话状态维持是Web应用开发者必须面对的问题。

(5)   ServletContex类的application对象

作用:主要用于保存用户信息,代码片段的运行环境;

                它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享.

(6)   PageContext类的PageContext对象

作用:管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由容器来完成的。

(7)   ServletConfig类的Config对象

作用:代码片段配置对象,表示Servlet的配置。

(8)   Object类的Page(相当于this)对象

作用:处理JSP网页,是Object类的一个实例,指的是JSP实现类的实例,即它也是JSP本身,只有在JSP页面范围之内才是合法的。

(9)Exception

作用:处理JSP文件执行时发生的错误和异常

 

第8份JAVA面试题(出自北京一家JAVA公司,留给后人)

cnliutian (手起刀落,小日本鸡鸡被砍掉)     2004-11-12 16:06:30 在 Java / Web 开发 提问

1、要创建一个物理表,包括字段(id   整型   长度30   主键,title   字符型   长度200,content   大字段),请分别写出在Oracle和DB2环境下的建表SQL语句。

 

2、在Oracle数据库中有一张叫做content的表,该表结构如下

 

字段名       类型                     长度     主键

------         ------     ----       ------

  id BigDecimal           是

Title         Varchar2                     500

content         clob

 

假设该表中有50条数据,要求查出第1000至第1100条之间的数据,请给出查询SQL语句。

 

3、请描述HashMap和Hashtable的区别及各自用途。

 

4、如何保证在JAVA应用程序中,一个类class只有一个实例存在,并给出示例代码。

 

5、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

 

6、一个try{}后最多可以有多少个catch()语句

 

7、给出一个含有匿名内部类的JAVA类文件示例代码。

 

8、分析下面代码:

 

1   interface   Inter{}

2   class   A{}

3   class   B   extends   A   implements   Inter{}

4   class   C   extends   B{

5 public   static   void   main(String[]   args){

6 A   a   =   new   A();

7 B   b   =   new   B();

8 C   c   =   new   C();

9 if(a   instanceof   B)

10 System.out.println("Hello");

11 if(b   instanceof   A)

12 System.out.println("Hello");

13 if(c   instanceof   C)

14 System.out.println("Hello");

15 if(c   instanceof   Inter)

16 System.out.println("Hello");

}

    }

当运行class   C时,程序中第10.12.14.16地中哪一行代码将被执行。

 

 

④JAVA高级程序员面试题(留给后人)

cnliutian (手起刀落,小日本鸡鸡被砍掉)     2004-10-30 14:39:34 在 Java / Web 开发 提问

1、简单描述一下awt与swing区别。

2、简述java编程中事件处理模式。

3、你编写过applet吗?applet的安全权限如何?试列举java   application或者applet中与servlet/jsp通信可以采用的方式。

 

2.采用动态事件驱动(直接事件驱动)

1.applet的安全机制在java中有个称沙箱的安全机制这样也就限制了它:

        如:不允许它调   其他程序。

                文件读写(本地磁盘)。

          等等。

JAVA程序员面试题

cnliutian (手起刀落,小日本鸡鸡被砍掉)     2004-11-11 14:11:42 在 Java / 非技术区 提问

1、数据库

表a和表b具有完全相同的结构,主键为indexid。写出一个sql语句把表b中不存在而表a中存在的数据插入到表b中。

2、javascript部分

页面中有一个名称都为unitprice的type=text对象。要求输入的数据不能为空,写一个函数实现该功能,如果为空时给出提示。

3、JSP部分

①session中存储一个String变量,变量名称为studentname,写出在jsp中如何得到这个session变量的值的语句。

②在jsp中引用使用<jsp:useBean   id="   "   ...scope="   "/>来引用javabean.

Ⅰscope的值有哪些,这些值的区别是什么?

Ⅱ不同的jsp页面中引用javabean时,id能否相同,如果能相同,对scope的值有什么要求?

4、JAVA部分

①输入一个维数,输出以下形式的矩阵和数列,以维数n=4为例:

0000

0111

0122

0123

②写出下面这段程序的运行结果

int   a=2,b=3,c=1

a+=--b+c;

c-=b+a++;

System.out.println("a="+a+",b="+b+",c="+c);

5、有一个Vector对象,其中每一个元素都是一个String对象,请用for循环或while循环输出Vector中的元素,要求格式为:"第i个元素为:aaa"

6、有一个HashMap其中key为String对象,value为Integer对象,写一个方法打印出此Map中的所有键值   对形如   key--value

7、有一个String   str="001,A001;002,A002;003,A003"的串,写一个方法,把此串存入列   一个HashMap或Hashtable中,说明:如001为key,A001则为value。

8、面向对象概念:

①面向对象基本特征

②什么叫多态和重载,它们有什么区别?

③用你自己的话描述你理解的j2ee的本质特征是什么? 

 

第一题:  写一个方法,实现删除链表中某个节点的操作(其他条件自己假设,补充)

public void delete()

{

 if(front>=rear)

 { 

 s[front] =0;

 front--;

 System.out.println("\ndelete successful");

 }

 else

 {

  System.out.println("the link is empty ,can't delete");

 }

}

第二题:  写一个方法,实现堆栈的入栈操作 (其他条件自己假设,补充)

 

public class stack{

 private int[] s;

 int top,bottom;

 public stack(int size){

  s = new int[size];

  top = size-1;

  bottom = size-1;

  System.out.println("Size of the stack is:"+size);

 }

 public boolean isEmpty()

 {

  if(top==s.length-1)

  return true;

  else 

  return false;

 }

 public void push(int n)

 {

  if(top<0)

  {

  System.out.println("The stack is full now,you can't push your data!");

  return;

  }

  else

  {  

  s[top] = n;

  top--;

  return ;

  }

 }

 public void pop()

 {

  if(top>=s.length-1)

  {

   System.out.println("The stack is empty,Can't pop now!");

   return;

  }

  else

  {

   top++;

  }

 }

 public void print()

 {

  System.out.println("State of the stack:");

  for(int i=s.length-1;i>top;i--)

  {

   System.out.print(s[i]+"  ");

  }

 }

 public static void main(String[] a)

 {

  stack st = new stack(5);

  System.out.println("List of the action to the stack:");

  System.out.println("push(3):");

  st.push(3);

  st.print();

  System.out.println("  ");

  System.out.println("push(6)");

  st.push(6);

  st.print();

  System.out.println("  ");

  System.out.println("push(10)");

  st.push(10);

  st.print();

  System.out.println("  ");

  System.out.println("pop()");

  st.pop();

  st.print();

  System.out.println("  ");

  

 }

}

 

 

 

第三题: 使用任意排序算法,写一个排序示例程序

 

import java.io.*;

class SelectionSort{

 

 public static void main(String[] args){

  int[] a={4,54,8,7,6,98,42,};

  sort(a);

  for(int i=0;i<a.length;i++){

   System.out.print(a[i]+"   ");

   }

   System.out.println("");

}

 

   static void sort(int[] data){

  int next, indexOfNext=0,n;

    for (next=0;next<data.length-1;next++)

    {

    

        indexOfNext=min(data,next,(data.length)-1);

     swap(data,indexOfNext,next);

  }

  }

  

  static int min(int[] data,int start,int end){

   int indexOfMin=start;

   for (int i=start+1;i<=end;i++)

   if(data[i]<data[indexOfMin])

   indexOfMin=i;

   

   return indexOfMin;

  }

  static void swap(int[] data,int first,int second){

   int temp;

   temp=data[first];

   data[first]=data[second];

   data[second]=temp;

   }

 

}

 

第四题:

编写一个servlet,把servlet源码和此servlet在服务器上的配置文件web.xml作为附件发送到指定的邮箱

      servlet的功能要求:记录访问该servlet的客户端的ip和访问时间,把记录写入client_ip.log文件。 client_ip.log里的格式大致如下:

 

 9:36 2005-4-8 192.168.0.1

 9:36 2005-4-8 127.0.0.1

 

<BR>获取客户的IP地址

 

 

第五题 

 数据库中有两个表tableA和tableB,他们都有一个int型的字段id,请写出一个sql语句,实现查询id在tableA中有,而tableB中没有的记录

 例如tableA中有如下记录

 ----------------------------

 tableA.id tableA.name

 3  Mary

 4  Jack

 5  Lily

 ----------------------------

 tableB.id

 3

 5

 查询的结果应该是

 ----------------------------

 tableA.id tableA.name

 4  Jack

 

 

select *

from tableA

where not exists

(select *

from tableB

where tableA.id=tableB.id)

第六题   简述jsp和servlet的联系

 

Java Servlet是JSP技术的基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。现在许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器,也可以通过附件的应用服务器和模块来支持Servlet,这得益于Java的跨平台特性。另外,由于Servlet内部以线程方式提供提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Servlet的效率非常高。

 

第七题   什么是sql注入漏洞,采用什么方法来堵住sql注入漏洞

 

 

随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入

 

第八题:简述你对xml的认识,举例说明xml能干什么,应该怎么做

 

XML是Extensible Markup Language的缩写,意思是可扩展置标语言没有于置标电子文档,使起数据具有结构化的置标语言。在我目前浅显的认识里:,

XML 是用来传递数据的 ,

XML 让这些数据有了结构 -- 一个树型结构  ,

xml 有全套的操作这种结构的方法    

xml 规范(或者说的实际点,xml parser)帮你确定你创建的字符串是合法的     

xml 规范(或者说的实际点,xml parser)中有办法验证这个合法性   

对于XML能用来做什么,我觉得XML可以用来下面几个方面

--------------------------------------------------------------------------

1:有利于开发灵活的web应用软件

使用XML来描述数据,可以使数据具有同意的组织结构,其他应用软件,对象,中间层和服务器都可以对使用XML描述的数据做进一步的处理。并可以提交到浏览器中让读者阅读

2:可以轻松的实现数据在web上发布

因为XML本身是纯文本格式的,它可以不做任何修改就和HTML文档一样在网络中传输。

3:有利于信息的集成

因为使用XML,可以把不同来源的结构化数据很容易地组织到一起。应用软件可以在中间层的服务器上对来自于后段数据库和其他的数据进行集成。最后,数据以XML格式发送到客户端或者是在其他服务器做进一步处理。

4:可以使用丰富的样式来显示数据

XML采用结构化的方式来组织数据,描述的是数据本身,不涉及到数据的表现形式。通常来说,使用CSS和 XSL以及XSLT为数据的显示提供分布的机制,也就是说数据的显示方式可以根据客户的要求制定。

5:可大大增强服务器的可伸缩性

XML将数据本身和数据的显示完全分离,从而可以在结构化的数据中嵌套数据的显示方式描述。这样,能尽可能地减少客户端与服务器之间的数据交换,减少服务器的工作量才能大大提高服务器的性能。

6:采用统一的XML文档格式来描述多种应用的数据

7:支持本地数据处理

因为XML文档中的数据格式是统一的,当客户受到数据后,便可以使用客户自己的应用软件来解析数据,并对数据进行进一步的编辑和处理。

8:可以使搜索变得更加简单和富有成效

采用统一的XML标识来组织来自不同数据库的数据,就可以在不了解数据库数据组织形式的情况下进行数据的检索。

9:可以实现数据的独立更新

10:开放式的标准

虽然XML的初衷是为了使具有不同结构的数据文件采用统一的XML格式 在Internet上传输,

 

第九题

介绍你做的一个项目,包括实现了什么功能,通过什么方法来实现(算法,逻辑结构...),怎么来保证它的安全和健壮性等.

( )

 

 

选做

第十题:

 

如何察看linux当前系统正在运行什么服务?

 

第十一题:

 

linux系统的用户帐号保存在那一个或哪几个文件里?

 

第十二题

 

简述MVC是什么

 

MVC是 Model-View-Controller 的简称,也就是 模型-视图-控制器

MVC用来处理验证、流程控制和更新应用程序的状态等问题。

Model(模型)

模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。

View(视图)

视图提供模型的表示。它是应用程序的外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。

Controller(控制器)

控制器对用户的输入作出反应。它创建并设置模型。 

 

 

 

 

 

java面试题集

 

基础知识: 

1.C++或Java中的异常处理机制的简单原理和应用。 

 

当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。 

 

2. Java的接口和C++的虚类的相同和不同处。 

 

由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口。 

 

3. 垃圾回收的优点和原理。并考虑2种回收机制。 

 

Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。 

 

4. 请说出你所知道的线程同步的方法。 

 

wait():使一个线程处于等待状态,并且释放所持有的对象的lock。 

 

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。 

 

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。 

 

Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。 

 

5. 请讲一讲析构函数和虚函数的用法和作用。 

 

6. Error与Exception有什么区别? 

 

Error表示系统级的错误和程序不必处理的异常, 

 

Exception表示需要捕捉或者需要程序进行处理的异常。 

 

7. 在java中一个类被声明为final类型,表示了什么意思? 

 

表示该类不能被继承,是顶级类。 

 

8. 描述一下你最常用的编程风格。 

 

9. heap和stack有什么区别。 

 

栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。 

 

堆是栈的一个组成元素 

 

10. 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。 

 

public class BigInt() 

 

 

int[] ArrOne = new ArrOne[1000]; 

 

String intString=""; 

 

public int[] Arr(String s) 

 

 

intString = s; 

 

for(int i=0;i<ArrOne.leght;i++) 

 

 

11. 如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现 

 

12,谈谈final, finally, finalize的区别。 

 

  final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 

 

  finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 

 

  finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。 

 

13,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 

 

  匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。 

 

 

 

14,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。 

 

  Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //www.frontfree.net/articles/services/view.ASP?id=704&page=1 

 

  注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 

 

第四,&和&&的区别。 

 

  &是位运算符。&&是布尔逻辑运算符。 

 

15,HashMap和Hashtable的区别。 

 

 

 

  都属于Map接口的类,实现了将惟一键映射到特定的值上。 

 

 

 

  HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 

 

  Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。 

 

16,Collection 和 Collections的区别。 

 

  Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。 

 

  Collection是个java.util下的接口,它是各种集合结构的父接口。 

 

17,什么时候用assert。 

 

  断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 Assertionerror。它用于调试目的: 

 

assert(a > 0); // throws an Assertionerror if a <= 0 

 

断言可以有两种形式: 

 

assert Expression1 ; 

 

assert Expression1 : Expression2 ; 

 

  Expression1 应该总是产生一个布尔值。 

 

  Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。 

 

  断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记: 

 

  javac -source 1.4 Test.java 

 

  要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。 

 

  要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。 

 

  要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。 

 

  可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。 

 

18,GC是什么? 为什么要有GC? (基础)。 

 

  GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: 

 

System.gc() 

 

Runtime.getRuntime().gc() 

 

19,String s = new String("xyz");创建了几个String Object? 

 

  两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。 

 

20,Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 

 

  Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11; 

 

21,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 

 

  short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。 

 

22,sleep() 和 wait() 有什么区别? 搞线程的最爱 

 

  sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。 

 

  wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。 

 

23,Java有没有goto? 

 

  Goto?java中的保留字,现在没有在java中使用。 

 

 

 

24,数组有没有length()这个方法? String有没有length()这个方法? 

 

  数组没有length()这个方法,有length的属性。 

 

  String有有length()这个方法。 

 

25,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 

 

  方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 

 

26,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 

 

  Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。 

 

  equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

 

 

 

  说明,为了节省大家的时间和提高学习效率,一些过时知识点和被笔试概率极低的题目不再被收录和分析。

回 答问题的思路:先正面叙述一些基本的核心知识,然后描述一些特殊的东西,最后再来一些锦上添花的东西。要注意有些不是锦上添花,而是画蛇添足的东西,不要 随便写上。把答题像写书一样写。我要回答一个新技术的问题大概思路和步骤是:我们想干什么,怎么干,干的过程中遇到了什么问题,现在用什么方式来解决。其 实我们讲课也是这样一个思路。

例如,讲ajax时,我们希望不改变原来的整个网页,而只是改变网页中的局部内容,例如,用户名校验,级联下拉列表,下拉树状菜单。用传统方式,就是浏览器自己直接向服务器发请求,服务器返回新页面会盖掉老页面,这样就不流畅了。

对本面试宝典中的题目有信心吗?本来有信心的,结果听你讲完后,就没信心了!我非常理解。因为他觉得我的太深,他想记住我的些东西,可是记不住,所以没信心了。我又问:听懂了吗?他说听懂了。你到现在只要把你的理解尽量清晰地、有条理地表达出来,就很棒了。

 

这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软 件开发工作的朋友在笔试时更好地赢得笔试和面试。由于这套面试题涉及的范围很泛,很广,很杂,大家不可能一天两天就看完和学完这套面试宝典,即使你已经学 过了有关的技术,那么至少也需要一个月的时间才能消化和掌握这套面试宝典,所以,大家应该早作准备,从拿到这套面试宝典之日起,就要坚持在每天闲暇之余学 习其中几道题目,日积月累,等到出去面试时,一切都水到渠成,面试时就自然会游刃有余了。

 

答题时,先答是什么,再答有什么作用和要注意什么(这部分最重要,展现自己的心得)

 

答案的段落分别,层次分明,条理清晰都非常重要,从这些表面的东西也可以看出一个人的习惯、办事风格、条理等。

要讲你做出答案的思路过程,或者说你记住答案的思想都写下来。把答题想着是辩论赛。答题就是给别人讲道理、摆事实。答题不局限于什么格式和形式,就是要将自己的学识展现出来!

别因为人家题目本来就模棱两可,你就心里胆怯和没底气了,不敢回答了。你要大胆地指出对方题目很模糊和你的观点,不要把面试官想得有多高,其实他和你就是差不多的,你想想,如果他把你招进去了,你们以后就是同事了,可不是差不多的吗?

关于就业薪水,如果你是应届生,那不能要高工资,好比大饼的故事,没有文凭还想拿高工资,就去中关村缺什么补什么吧!少数人基础确实很好,在校期间确实又做过一些项目,那仍然是可以要到相对高的工资的。

 

公司招聘程序员更看重的要用到的编码技术、而不是那些业务不太相关的所谓项目经历:

1.公司想招什么样的人2.公司面试会问什么,.3.简历怎么写4怎样达到简历上的标准(培训中心教项目的目的)

 

对 于一些公司接到了一些项目,想招聘一些初中级的程序员过来帮助写代码,完成这个项目,你更看重的是他的专业技术功底,还是以前做过几个项目的经历呢?我们 先排除掉那些编码技术功底好,又正好做过相似项目的情况,实际上,这种鱼和熊掌兼得的情况并不常见。其实公司很清楚,只要招聘进来的人技术真的很明白,那 他什么项目都可以做出来,公司招人不是让你去重复做你以前的项目,而是做一个新项目,业务方面,你只要进了项目团队,自然就能掌握。所以,大多数招聘单位 在招聘那些编码级别的程序员时也没指望能招聘到做过类似项目的人,也不会刻意去找做过类似项目的人,用人单位也不是想把你招进,然后把你以前做过的项目重 做一遍,所以,用人单位更看重招进来的人对要用到的编码技术的功底到底怎样,技术扎实不扎实,项目则只要跟着开发团队走,自然就没问题。除非是一些非常专 业的行业,要招聘特别高级的开发人员和系统分析师,招聘单位才特别注重他的项目经验和行业经验,要去找到行业高手,公司才关心项目和与你聊项目的细节,这 样的人通常都不是通过常规招聘渠道去招聘进来的,而是通过各种手段挖过来的,这情况不再我今天要讨论的范围中。

技术学得明白不明白,人家几个问题就把你的深浅问出来了,只要问一些具体的技术点,就很容易看出你是真懂还是假懂,很容看出你的技术深度和实力,所以,技术是来不得半点虚假的,必须扎扎实实。

由于项目的种类繁多,涉及到现实生活中的各行各业,什么五花八门的业务都有,例如,酒店房间预定管理,公司车辆调度管理,学校课程教室管理,超市进销存管理,知识内容管理,等等……成 千上万等等,但是,不管是什么项目,采用的无非都是我们学习的那些目前流行和常用的技术。技术好、经验丰富,则项目做出来的效率高些,程序更稳定和更容易 维护些;技术差点,碰碰磕磕最后也能把项目做出来,无非是做的周期长点、返工的次数多点,程序代码写得差些,用的技术笨拙点。如果一个人不是完完全全做过 某个项目,他是不太关心该项目的业务的,对其中的一些具体细节更是一窍不知,(如果我招你来做图书管理,你项目经历说你做过汽车调度,那我能问你汽车调度具体怎么回事吗?不会,所以,你很容易蒙混过去的)而一个程序员的整个职业生涯中能实实在在和完完整整做出来的项目没几个,更别说在多个不同行业的项目了,有的程序员更是一辈子都只是在做某一个行业的项目,结果他就成了这个行业的专家(专门干一件事的家伙)。 所以,技术面试官通常没正好亲身经历过你简历写的那些项目,他不可能去问你写的那些项目的具体细节,而是只能泛泛地问你这个项目是多少人做的,做了多长时 间,开发的过程,你在做项目的过程中有什么心得和收获,用的什么技术等面上的问题,所以,简历上的项目经历可以含有很多水分,很容易作假,技术面试官也无 法在项目上甄别你的真伪。

简历该怎么写:精通那些技术,有一些什么项目经历

教 项目是为了巩固和灵活整合运用技术,增强学习的趣味性,熟悉做项目的流程,或得一些专业课程中无法获得的特有项目经验,增强自己面试的信心。讲的项目应该 真实可靠才有价值,否则,表面上是项目,实际上还是知识点的整合,对巩固技术点和增强学习的趣味性,但无法获得实际的项目经验。(项目主要是增加你经验的 可信度,获得更多面试机会,真正能不能找到工作,找到好工作,主要看你键盘上的功夫了),好的面试官几下就能面出你是否真有工作经验,他们问技术以外的公 司的人和事,并且问开始、过程、结果,看你怎么编。

建议大家尽量开自己的blog,坚持每天写技术blog。在简历上写上自己的blog地址,可以多转载一些技术文章。

 

 

posted @ 2014-04-09 23:04  JAVA之迷  阅读(297)  评论(0编辑  收藏  举报