【Java面试题一】Java程序基础

面试者需要掌握以下知识点:

  • Java的安装与调试,重点是Java开发环境的配置
  • Java开发中的基本术语和基本概念
  • 熟练掌握Java的调试和运行

面试题一:如何在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命名规范的代码分析题

    试题分析:在代码规范中,要特别注意以下几种编码规范:

  • 包名:包名是全小写的名次,中间可以由点分割开,必须放在程序的第一行,例如:java.awt.event
  • 类名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如:class NiceToMeet
  • 接口:命名规则与类名相同,例如,interface Runnable
  • 方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间每个单词的首字母都要大写,例如:codePointAt、offerByCodePoints
  • 变量名:全小写,一般为名词,例如,beginIndex、length
  • 常量名:基本数据类型的常量名为全大写。如 WIDTH
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

你可能感兴趣的:(Java面试题)