面试者需要掌握以下知识点:
面试题一:如何在Linux环境下安装JDK
试题分析:要想在Linux下搭建Java开发环境,就必须有linux版本的Java SDK。安装完成后注意Linux环境变量的配置。
参考答案:
(1)在Sun公司的官方网站上下载对应版本Java SDK(Linux版的JDK),建议下载RPM自解压格式的j2sdk-linux-i586-rpm.bin.由于大多数Linux都使用rpm系统,因此只要是符合rpm文件标准额打包程序都可以方便地安装、升级、卸载,所以使用rpm格式的Java SDK可以避免安装过程中遇到的麻烦.。
(2)上传到Linux服务器上,在Shell下执行命令
chmod 755 j2sdk-linux-i586-rpm.bin
./j2sdk-linux-i586-rpm.bin
(3)程序会自动生成一个j2sdk-linux-i586-rpm文件,这是主程序包,按下Enter键系统会自动安装。
(4)配置环境变量
export JAVA_HOME=/usr/Java/j2sdk
export CLASSPATH=.:%JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
面试题二:关于Java命名规范的代码分析题
试题分析:在代码规范中,要特别注意以下几种编码规范:
package com.lcz.myproject;//包
public class Test1 { //类
String str="Hello world!"; //变量
public static void main() { //方法
System.out.println("nice to meet you");
}
interface Runnable{ //接口
public void run();
}
}
面试题三:关于Java代码安全的选择题
关于Java代码安全性的叙述,下面有哪些选项是正确的?
A.字节码校验器加载查询执行需要的所有类
B.运行时解释器执行代码
C.在运行时,字节码被加载,验证后在解释器里面运行
D.类加载器通过分离本机文件系统的类和从网络导入的类增加安全性
试题分析:代码安全性检查机制是这样的:首先由类装载器负责把类文件加载到Java虚拟机中,它通过区分本机文件系统的类和网络系统导入的类增加安全性,这可以限制任何的木马程序,因为本机类总是先被加载,一旦所有的类被加载完,执行文件的内存划分就被固定了。然后字节码校验器进行校验,字节码校验器不检查那些可信任的编译器锁生成的类文件,而是对那些有意违背命名空间规定和Java语言规则的类文件加以检查,并关闭具有安全性漏洞的类文件。如果字节码校验器校验通过,由Java解释器负责把该文件解释成为机器码进行执行。
参考答案:BCD
面试题四:关于Java的类和对象的选择题
下列关于对象对的哪一种说法是正确的?
A.对象是指向属性的引用
B.对象是可以对其进行实例化从而得到类的东西
C.对象是一种蓝本,据此可以创建抽象的具体实现
D.对象是类的实例
E.对象是一种变量
试题分析:
(1)类:在处理复杂事物时,用到的一种基本手段就是抽象。抽象的目的就是区别对象事物之间的本质和不同,面向对象编程的实质就是利用类和对象来建立抽象模型。 类表示了对象的类别,创建对象的蓝本。建立一个事物的抽象模型,本质上就是定义表达该事物的性质和行为,使用类来建立抽象模型,是通过类中定义字段和方法来实现的。 类中定义的字段是一种可存储的变量,该变量代表着事物的具体性质;类的对象所具有的行为或者说是运算由定义的方法来实现的。类中定义的字段和方法称为类的成员。
(2)对象:对象是类的实例。对象在构造时以类为蓝本,创建对象的过程叫实例化。对象是类表示的抽象事物的具体实例。
参考答案:D
面试题五:变量及范围---概念题
下面关于变量及其范围的陈述哪些是正确的?
A.实例变量用关键字static声明
B.局部变量在使用前必须被初始化
C.实例变量是类的成员变量
D.在方法中定义的局部变量是在该方法被执行时创建
试题分析:类中有几种变量,分别是局部变量、实例变量和类变量。其中,局部变量是定义在方法里的变量;实例变量是在方法外而在类声明定义的变量,有时也叫成员变量;类变量使用关键字static声明的实例变量。它们的生存期为:局部变量在定义该变量的方法被调用时被创建,而在该方法退出后被撤销;实例变量在使用new Xxx()创建该类的实例时被创建,而其生存期和该类的实例对象的生存期相同。类变量在该类被加载时创建,其生存期是类的生存期。
任何变量在使用前都必须初始化,但是需要指出的是局部变量必须是显示初始化。
参考答案:BCD
面试题六:变量及范围--根据代码找出错误原因
public void TestDemo() {
int i,j,n;
i=100;
while(i>0) {
j=i*5;
System.out.println("the value is"+j);
n=n+1;
i--;
}
}
试题分析:局部变量在使用前必须显示初始化,而代码中的变量n在使用前没有被初始化。
参考答案:n=n+1这一行报错
面试题七:关于静态方法的代码分析题
分析下面的代码,哪些描述是正确的?
public class Person{
int arr[]=new int[10];
public static void main(String[] args) {
System.out.println(arr[1]);
}
}
A.编译时出错
B.编译时正确而运行时出错
C.输出0
D.输出null
试题分析:实例变量在类的一个实例构造时完成初始化,而且在类的静态方法中不能直接访问类的非静态成员,而只能访问类成员,类的普通方法可以访问类的所有成员和方法,而静态方法只能访问类的静态成员和方法,因为静态方法属于类,而普通方法及成员变量属于类的实例,类方法不能使用使用某个不确定类的实例方法和变量,在静态方法里没有隐含的this,而普通方法有。
参考答案:A
面试题八:关于在类中定义方法的选择题
若在某一个类定义中有如下的方法:final void aFinalFunction();则该方法属于何种类型?
A.本地方法
B.静态方法
C.最终方法
D.抽象方法
参考答案:C
面试题九、关于静态变量的选择题
分析下面的程序,请选择正确的输出结果
public class NameClass{
private static int x;
public static void main(String[] args) {
name(x);
System.out.println(x);
}
public static void name(int x) {
// TODO Auto-generated method stub
x++;
}
}
A.0
B.1
C.2
D.3
参考答案:A
若将代码修改为:
public class NameClass{
private static int x;
public static void main(String[] args) {
name(x);
System.out.println(x);
}
public static void name(int y) {
// TODO Auto-generated method stub
x++;
}
}
则运行结果为:1
面试题十、关于实例成员和类成员区别
下面关于实例成员的说法,哪些是正确的?
A.实例成员也被称为实例变量
B.实例成员属于类成员
C.实例成员隶属于实例,但不隶属于整个类
D.实例成员包括实例变量和实例方法
E.实例成员变量就是静态变量
试题分析:(1)实例成员:实例成员包括实例成员变量和实例成员方法。实例成员变量和方法时隶属于对象的,实例变量的值代表了该对象的状态,实例成员方法代表了该对象的行为。只有创建了对象之后才能访问实例成员变量和实例成员方法,通过“对象名.变量名(方法名)”的方式可以访问实例成员。
(2)类成员(静态成员)需要用关键字static标识,类成员包括类成员变量和类成员方法,类成员是隶属于类的,意思是说通过类名可以直接访问类成员变量或调用类成员方法,即使没有创建对象,也能够引用类成员。
参考答案:CD