Java方向的综合笔试题

2014-11-27 06:30:01 阅读( 27 )

2214人 收藏本页

标签:Java面试题

1.    Sqlserver2000中的Windows混合模式登陆和指定用户登录有什么区别?
Windows混合模式登陆是让操作系统验证登陆身份,指定用户登录是数据库用户登陆验证。

2.    Sqlserver2000中自带哪些数据库?
Master\model\msdb\tempdb

3.    以下标识符中哪项是不合法的(   D   )
A、    BigOlLongStringWithMeaninglessName    B、$int  C、$1    D、1 st

4.    以下哪个表达式是不合法的(  C   )
A、String   x=”Hello”;   int  y=9;   x+=y;

B、String   x=”Hello”;   int  y=9;  if(x==y)  { }

C、String   x=”Hello”;  int  y=9;  x=x+y;

D、String   x=null;  int  y=(x!=null)&&(x.length()>0) ? x.length : 0

5.    关于以下application的说明,正确的是(  A   )
1.    class   StaticStuff
2. {
3.    static  int  x=10;
4.    static  { x+=5;}
5.    public  static  void  main(String  args[ ])
6.    {
7.         System.out.println(“x=” + x);
8.    }
9.    static  { x/=5;}
10.    }
A、    4行与9行不能通过编译,因为缺少方法名和返回类型

B、    9行不能通过编译,因为只能有一个静态初始化器

C、    编译通过,执行结果为:x=15

D、    编译通过,执行结果为:x=3

6.    关于以下程序代码的说明正确的是(     )
1.    class  HasStatic{
2.        private  static  int  x=100;
3.        public  static  void  main(String  args[  ]){
4.            HasStatic  hs1=new  HasStatic(  );
5.            hs1.x++;
6.            HasStatic  hs2=new  HasStatic(  );
7.            hs2.x++;
8.            hs1=new  HasStatic( );
9.            hs1.x++;
10.    HasStatic.x++;
11.          System.out.println(“x=”+x);
12.    }
13.        }
A、    5行不能通过编译,因为引用了私有静态变量

B、    10行不能通过编译,因为x是私有静态变量

C、    程序通过编译,输出结果为:x=103

D、程序通过编译,输出结果为:x=104

7.    以下选项中循环结构合法的是(   D   )
A、    while (int  i<7)
{     i++;
System.out.println(“i is “+i);
}

B、    int  j=3;
while(j)
{  System.out.println(“ j  is “+j);
}

C、    int  j=0;
for(int  k=0; j + k !=10; j++,k++)
{    System.out.println(“ j  is “+ j + “k  is”+ k);
}

D、    int  j=0;
do{
System.out.println( “j  is “+j++);
if (j == 3) {continue  loop;}
}while  (j<10);

8.    类Test1定义如下:
1.public  class  Test1{
2.        public  float  aMethod(float  a,float  b){   }
3.
4.}
1)    将以下哪种方法插入行3是不合法的。(    B    )
A、    public  float  aMethod(float  a, float  b,float  c){  }

B、    public  float  aMethod(float  c,float d){  }

C、    public  int  aMethod(int  a, int b){  }

D、    private float aMethod(int a,int b,int c){  }

9.    关于以下程序段,正确的说法是(  C   )
1.  String  s1=”abc”+”def”;
2.    String  s2=new  String(s1);
3.    if(s1==s2)
4.        System.out.println(“== succeeded”);
5.    if (s1.equals(s2))
6.        System.out.println(“.equals()  succeeded”);
A、行4与行6都将执行        B、行4执行,行6不执行

C、行6执行,行4不执行        C、行4、行6都不执行

10.    以下程序的输出结果为                       。
public  class  Short{
public  static  void  main(String  args[ ])    {
StringBuffer  s = new  StringBuffer(“Hello”);
if((s.length( )>5)&& (s.append(“there”) . equals(“False”)))
;//do nothing
System.out.println(“value  is  ”+s);    }
}

11.    请写出以下程序的输出结果  Value is two.   。
int   j=2;
switch  ( j ) {
case  2:
System.out.print(“Value is two.   ”);
case  2+1 :
System.out.println(“Value is three.   ”);
break;
default:
System.out.println(“value  is “+j);
break;
}

12.    阅读以下程序,写出输出结果                        。
class  Q3{
public static void  main(String  args[ ]){
Holder  h=new  Holder( );
h.held=100;
h.bump(h);
System.out.println(h.held);    }
}
class Holder{
public int  held;
public  void  bump(Holder  theHolder){
theHolder.held++;
}
}

13.    编写Applet包括一个文本区域、一个文本框和一个按钮(红色)。要求:往文本框中输入字符串,键入回车后,复制文本框的内容到文本区域中;单击按钮“红色”则文本框的背景色设为红色。

14.    分析程序运行的结果  sum is 55
public class Sun
{
public static void main(String args[ ])
{
System.out.println(“\n**** while statement ****”)
Int n=10 ,sum=0;
while(n>0)
{
sum+=n;
n–
}
System.out.println(“sum is ”+sum);
}
}

15.    Java语言的基本变量有哪些类型?
byte、int、long、short、char、float、double、boolean

16.    程序填空。
import java.io.*;
public class MyJavaApplication
{
Public  static  void main(string args_[]_)
{
System. out. println (“计算机科学与技术”);
}
}

17.    删除表的重复记录
delete from table_name a where rowid< (select max(rowid) from table_name where column1=a.column1 and column2=a.column2 and colum3=a.colum3 and …);
select distinct * into #tmpp from tid
delete from tid
insert into tid select * from #tmpp
drop table #tmpp

18.    delete from tablea & truncate table tablea的区别?
truncate 语句执行速度快,占资源少,并且只记录页删除的日志;delete 对每条记录的删除均需要记录日志

19.    文件读写,实现一个计数器
public int getNum(){
int i = -1;
try{
String stri=”";
BufferedReader in = new BufferedReader(new FileReader(f));
while((stri=in.readLine())!=null){
i = Integer.parseInt(stri.trim());
}
in.close();
}catch(Exception e){
e.printStackTrace();
}
return i;
}
public void setNum(){
int i = getNum();
i++;
try{
PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(f,false)));
out.write(String.valueOf(i)); //可能是编码的原因,如果直接写入int的话,将出现java编码和windows编码的混乱,因此此处写入的是String
out.close() ;
}catch(Exception e){
e.printStackTrace();
}
}

20.    Java编程,打印昨天的当前时刻。
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}

解释下面关于J2EE的名词(21-26)
21.    JNDI
JNDI:Java Naming & Directory Interface,JAVA命名目录服务.主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能

22.    JMS
JMS:Java Message Service,JAVA消息服务.主要实现各个应用程序之间的通讯.包括点对点和广播.

23.    JTA
JTA:Java Transaction API,JAVA事务服务.提供各种分布式事务服务.应用程序只需调用其提供的接口即可.

24.    JAF
JAF: Java Action FrameWork,JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部署和自定义实现自己的个性安全控制策略

25.    RMI
RMI:Remote Method Interface,远程方法调用

26.    SOAP协议
SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问

27.    SessionBean包含哪两种?他们的区别是什么?
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean .            这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体.Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method.换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行.从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态.

28.    GC是什么? 为什么要有GC?
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动
进行管理。

29.    要请求GC,可以调用哪些方法?
System.gc()     Runtime.getRuntime().gc()

30.    Java有没有goto?
没有

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

32.    给一个你最常见到的runtime exception?
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

33.    abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不能

34.    是否可以继承String类?
String类是final类故不可以继承

35.    当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
不能,一个对象的一个synchronized方法只能由一个线程访问

36.    编程题: 用最有效率的方法算出2乘以8等於几?
2 << 3

37.    编程题: 写一个Singleton出来。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。
一般认为第一种形式要更加安全些

38.    char型变量中能不能存贮一个中文汉字?为什么?
能够。因为Java使用Unicode编码,char可以存放16个字节,可以存放        一个汉字

39.    Sting与Stringbuffer的区别。
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用 StringBuffers来动态构造字符数据。

40.    xml有哪些解析技术?区别是什么?
SAX  非常类似于流媒体的优点。应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。但编程复杂。
DOM  采用建立树形结构的方式访问 XML 文档。 DOM 解析器把 XML 文档转化为一个包含其内容的树,并可以对树进行遍历。编程容易, 对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候
JDOM  仅使用具体类而不使用接口; API 大量使用了 Collections 类,简化了那些已经熟悉这些类的 Java 开发者的使用。

41.    MVC的各个部分都有那些技术来实现?如何实现?
MVC 是Model-View-Controller的简写。”Model” 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), “View” 是应用的表示面(由JSP页面产生),”Controller” 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

42.    EJB的基本架构?
按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。

43.    JDBC调用数据库的基本步骤?
建立连接
创建Statement对象,用于执行SQL语句
执行SQL语句
关闭Statement对象
关闭连接

44.    编写一个存储过程示例?

45.    S=3,–S〈〈S 结果是多少(C)
A.16  B.32. C.8   D.64

46.    对象和对象之间有哪三种关系?
继承关系;关联关系;包含关系

47.    一个粗细均匀的长直管子,两端开口,里面有4个白球和4个黑球,球的直径、两端开口的直径等于管子的内径,现在白球和黑球的排列是wwwwbbbb,要求不取出任何一个球,使得排列变为bbwwwwbb。
弯曲管子,使其开口相连

48.    一只蜗牛从井底爬到井口,每天白天蜗牛要睡觉,晚上才出来活动,一个晚上蜗牛可以向上爬3尺,但是白天睡觉的时候会往下滑2尺,井深10尺,问蜗牛几天可以爬出来?
8

来自IT公司面试手册

下一篇:Java方向软件笔试题

上一篇:java 面试基础题

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题