1.下列哪种说法是正确的()

 A.实例方法可直接调用超类的实例方法
 B.实例方法可直接调用超类的类方法
 C.实例方法可直接调用其他类的实例方法
 D.实例方法可直接调用本类的类方法
类方法指的是用static关键字修饰的方法,而实例方法就是相对于类方法的其它方法   
当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,
类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。需要注意的是,
当我们创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址,
也就是说,方法的入口地址被所有的对象共享,当所有的对象都不存在时,方法的入口地址才被取消。
对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。从而类方法不仅可以被类创建
的任何对象调用执行,也可以直接通过类名调用。类方法的入口地址直到程序退出才被取消。

对于A,不可以调用父类的private实例方法。因为private修饰的方法只有本类对象才可以调用

对于B,类方法只有本类才可以调用

对于C,跟A相同,比A更离谱

D是正确的

2.下列语句哪一个正确( )
A.Java程序经编译后会产生machine code
B.Java程序经编译后会产生byte code
C.Java程序经编译后会产生DLL
D.以上都不正确

解析:.java文件编译后是字节码,即.class文件,然后java虚拟机把.class文件翻译成字节码,让cpu来调用。这也是跨平台性的体现。所以答案是B

3.Java中将ISO8859-1字符串转成GB2312编码,语句为 ? 
 A. new String(String.getBytes("ISO8859-1"),GB2312)
 B.new String(String.getBytes("GB2312"),ISO8859-1)
 C.new String(String.getBytes("ISO8859-1"))
 D.new String(String.getBytes("GB2312"))
解析:JAVA有一个public String(byte bytes[], Charset charset)函数可以用指定字节数组和编码来构造字符串。一个public byte[] getBytes(Charset charset)函数把字符串按指定编码来得到字节数组。可以用这两个函数来实现编码转

换。选A

4.下面函数将返回?    

public static int func (){
     try{
         return 1;
     }catch (Exception e){
         return 2;
     }finally{
         return 3;
     }
 }


A.1  B.2  C.3 D.编译错误

解析:finally一般和try{}catch{}配套使用,try和catch执行之后总会执行finally.并且finally会覆盖前者的return。(当try和catch中有System.exit()语句时,则不会执行finally)

5.下列关于容器集合类的说法正确的是?
A.LinkedList继承自List
B.AbstractSet继承自Set
C.HashSet继承自AbstractSet
D.WeakMap继承自HashMap

解析:List、set、Map都是借口,list和set集成了Collection类。A和B应该说实现了接口而不是继承。C是正确的

6.


下面哪项技术可以用在WEB开发中实现会话跟踪实现?

A.session


B.Cookie


C.地址重写


D.隐藏域

解析:实现会话跟踪的机制

Cookies,URL重写,隐藏式表单域,Session机制

Cookies

      Cookies是使用最广泛的会话跟踪机制,Cookies是有服务器创建,并把Cookies信息保存在用户机器上的硬盘上,下次用户再次访问该站点服务器的时候,保存在用户机器上硬盘的Cookies信息就被送回给服务器。一般Cookies一般不多于4KB,且用户的敏感信息如信用卡账号密码不应该保存在Cookies中。

URL重写

       URL重用户在每个URL结尾附加标识回话的数据,与标识符关联的服务器保存有关与会话的数据,如我们访问某个新闻的时候,在地址栏我们一般会看到这样的信息:http://www.XXX.com/news?id=??,通常的话id后面的问号表示该条新闻在后台数据库中的新闻表的id。URL重写能够在客户端停用cookies或者不支持cookies的时候仍然能够发挥作用。

隐藏表单域

      通常,在表单中我们使用隐藏表单域的时候会有这么一句代码:<input type=”hidden” name=”XXX”  value=”XXX”/>。通过给type属性赋值为hidden值来实现隐藏,这样用户在浏览的时候看不到这行代码的数据,但是当用户通过查看源代码还是可以看到的。

Session机制

       这个机制要慎用,特别是对于访问量很大的站点,因为这种机制是吧Session信息保存在服务器端。如果访问量特别大的话,对于服务器的承受力的要求有多高是可想而知的。

7.以下代码将打印出(C)


<span style="font-size:18px;"> public static void main (String[] args) { 
    String classFile = "com. jd. ". replaceA11(".", "/") + "MyClass.class";
    System.out.println(classFile);</span>



  • A.com. jd
  • B.com/jd/MyClass.class
  • C./MyClass.class
  • D.com.jd.MyClass


replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:

  1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);

  2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;

题目中“.”,在正则表达式中表示任何符号,所以答案是C,五个字母,2个点号,两个空格被代替。

8.


检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果(D)。

package algorithms.com.guan.javajicu;           


           public class Example {           


                      String str =           new           String(           "good"           );           


                      char[] ch = {           'a'           ,           'b'           ,           'c'           };           


                      public static void main(String[] args) {           


                      Example ex =           new           Example();           


                      ex.change(ex.str, ex.ch);           


                      System.out.print(ex.str +           "and"           );           


                      System.out.print(ex.ch);            


                      }           


                      


                      public void change(String str, char ch[]){           


                      str=           "test ok"           ;           


                      ch[0]=           'g'           ;           


                      }           


           } 



A.test okandabc

B.test okandgbc

C.goodandabc

D.goodandgbc


解析:String类是final类型的,不能继承和修改这个类。str=“teskok”,其实是隐含的让Java生成一个新的String对象,那么就与原来的“Hello”没有任何关系,当函数结束,str作用结束.ch[]是值传递,所以可以改变。

9.下列程序的运行结果(A)


public         void         getCustomerInfo() {        


                  try         {        


                  // do something that may cause an Exception        


                  }         catch         (java.io.FileNotFoundException ex) {        


                  System.out.print(         "FileNotFoundException!"         );        


                  }         catch         (java.io.IOException ex) {        


                  System.out.print(         "IOException!"         );        


                  }         catch         (java.lang.Exception ex) {        


                  System.out.print(         "Exception!"         );        


                  }        


                  }


  • A.IOException!
  • B.IOException!Exception!
  • C.FileNotFoundException!IOException!
  • D.FileNotFoundException!IOException!Exception!

解析:

try-catch-finally 规则(异常处理语句的语法规则)

1)  必须在 try 之后添加 catch 或 finally 块。try 块后可同时接 catch 和 finally 块,但至少有一个块。


2) 必须遵循块顺序:若代码同时使用 catch 和 finally 块,则必须将 catch 块放在 try 块之后。

3) catch 块与相应的异常类的类型相关。

4) 一个 try 块可能有多个 catch 块。若如此,则执行第一个匹配块。即Java虚拟机会把实际抛出的异常对象依次和各个catch代码块声明的异常类型匹配,如果异常对象为某个异常类型或其子类的实例,就执行这个catch代码块,不会再执行其他的 catch代码块

5) 可嵌套 try-catch-finally 结构。

6) 在 try-catch-finally 结构中,可重新抛出异常。


7) 除了下列情况,总将执行 finally 做为结束:JVM 过早终止(调用 System.exit(int));在 finally 块中抛出一个未处理的异常;计算机断电、失火、或遭遇病毒攻击

由此可以看出,catch只会匹配一个,因为只要匹配了一个,虚拟机就会使整个语句退出


9.下面属于java包装类的是?

 A.String

 B.Long

 C.Character

 D.Short

解析:Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,即包装类。对应的基本类型和包装类如下表:

基本数据类型

包装类

byte

Byte

boolean

Boolean

short

Short

char

Character

int

Integer

long

Long

float

Float

double

Double