深圳龙辉科技招聘试题

1.以下代码行在编译后不会生成警告或错误。

1)char c = " a ";2)字节b = 2573)布尔b =空;4)int I = 10;5)浮点f = 1.3;

2.编译下面的代码会发生什么?

公共类MyClass {

public static void main(String arguments[]){

方法(参数);

}

public void method(String[]arguments){

System.out.println(参数);

system . out . println(arguments[1]);

}

}

1)错误无法对void amethod进行静态引用。

2)错误方法主要不正确

3)错误数组必须包含参数

4)方法必须用字符串声明

3.3.byte的取值范围是:

1)-128到127;2)-255到256;3)-65535到65536;4)依赖于不同的java虚拟机;

4.以下命令的输出结果是什么?

早上好

公共类myprog{

公共静态void main(String argv[])

{

System.out.println(argv[2])

}

}

1) myprog

2)好

3)早上

4)引发异常:“Java . lang . arrayindexoutofboundsexception:2”

5.以下哪些变量不是合法变量?

1)2 variable 2)variable 2 3)_ what available 4)_ 3 _ 5)$ another var 6)# myvar

6.下面的程序编译运行后会发生什么?

公共类MyClass{

静态int I;

公共静态void main(String argv[]){

system . out . println(I);

}

}

1)错误变量I可能尚未初始化2) null 3) 1 4) 0

7.String s 1 =新字符串(" Hello ")

String s2 =新字符串(" there ");

String S3 = new String();

以下哪一项是正确的?

1)S3 = s 1+S2;2)S3 = s 1-S2;S3 = s 1 & amp;S2;S3 = s 1 & amp;& ampS2;

8.下面的代码编译运行后会发生什么?

抽象类MineBase {

抽象void method();

静态int I;

}

公共级矿山扩展矿山基地{

公共静态void main(String argv[]){

int[]ar = new int[5];

for(I = 0;我& ltar .长度;i++)

system . out . println(ar[I]);

}

}

1)打印出0到5 2)错误:Ar在初始化之前就被使用了。

3)错误矿必须声明为抽象4) IndexOutOfBoundes错误

9.哪两个可以用来创建新线程?(选择两项)

1)扩展java.lang.Thread并覆盖run方法。

2)扩展java.lang.Runnable并覆盖start方法。

3)实现java.lang.Thread,实现run方法。

4)实现java.lang.Runnable,实现run方法。

5)实现java.lang.Thread并实现start方法

10.写出下面代码的运行结果。

公共类通行证{

静态int j = 20

公共静态void main(String argv[]){

int I = 10;

Pass p = new Pass();

方法(一);

system . out . println(I);

system . out . println(j);

}

public void method(int x){

x = x * 2;

j = j * 2;

}

}

x = 10;y=40

11.class超类{ public float AAA(){ return 3.14f;} }

公共类测试扩展超类{

公浮AAA(){ return 5.14f;}

公双AAA(double double 1){ return double 1;}

public void AAA(){ }//错误

公共float AAA(float float 1){返回float 1;}

}

//重载不能有相同的方法名,但必须有不同的类型。

12.public int bbb(){

静态int I = 0;//错误

i++;

返回I;

}

静态变量不能在方法中定义,切记切记。

13 . public static void main(String arg[]){

短b=57,a = 47

双c=(短)b/a * 2.0;

int d =(short)b/a * 2;

}

注意区别。

14.公共类测试{

公共静态void main(String[] args) {

字符串s;

测试Test = new Test();

test . f(s);//错误

}

公共void f(字符串s){

s = " 1223 ";

system . out . println(s);

}

}

错误:局部变量s可能尚未初始化

1.成员变量的初始化

实例变量可以在定义或构造函数中显式初始化。如果这两个地方没有初始化,自动初始化的默认值将被保留。final类型的变量必须显式初始化。

静态变量可以在定义中或静态代码块中显式初始化。如果两个地方都没有初始化,则保留自动初始化的默认值。final类型的静态变量必须在定义中或静态代码块中显式初始化。

2.局部变量的初始化

局部变量在使用前必须显式初始化。如果编译器可以确认局部变量在使用前不能初始化,编译器将报告一个错误。

如果局部变量未初始化且未在方法中使用,则编译和运行都将通过。

可以更正为:字符串s = null

公共课考试{

公共静态void main(String[] args) {

int I = 0;

测试Test = new Test();

test . f();

}

公共void f(){

i++;//错误

system . out . println(I);//错误

}

}

错误:从未读取局部变量I

16.抽象类AAA { int I = 0;}

class超类扩展AAA { I = 3;}//错误

公共类测试扩展超类{

公共静态void main(String[] args) {

测试Test = new Test();

test . f();

}

公共void f(){

i++;

system . out . println(I);

}

}

错误:标记“I”上的语法错误,此标记后应为VariableDeclaratorId

类体是声明变量和函数的地方,你突然得到一个I = 3;自然做不到。它可以用在方法中。

17.公共类测试{

公共静态void main(String[] args) {

测试Test = new Test();

if(test . f(2)){//错误

system . out . println(" 111 ");

}否则{

system . out . println(" 222 ");

}

}

public int f(int I){ return i++;}

}

错误:类型不匹配:无法从int转换为boolean

在JAVA中,if()使用布尔表达式而不是数值,这与C/C++不同。布尔类型和数值类型不能相互转换。

在switch(expr1)语句中,expr1必须与int类型赋值兼容。Byte、short或type可自动升级;不允许使用浮点或长表达式。

在case (expr2)语句中,expr2必须是与int类型赋值兼容的常量表达式。当变量或表达式的值不能匹配任何大小写值时,将执行缺省后的程序代码。如果没有break语句作为case代码段的结束句,程序将继续执行下一个case的代码块,而不检查下一个case表达式的值。

18公共课考试{

byte[] arry1,arry 2[];

byte[][]arry 3;

字节数组4[][];

公共void f(){

arry 1 = arry 2;//错误

arry2 = arry3

arry2 = arry4

}

}

错误:类型不匹配:无法从字节[][]转换为字节[]

19.抽象类AAA { int I = 0;}

公共类测试扩展AAA {

公共静态void main(String arg[]){

int[]ar = new int[5];

for(I = 0;我& ltar .长度;i++)//错误

system . out . println(ar[I]);

}

}

错误:不能静态引用非静态字段I

更正为抽象类AAA { static int I = 0;}做就是了

public int bbb(){

int I;//错误

i++;

返回I;

}

错误:局部变量I可能尚未初始化

当一个变量被定义在一个函数中时,java会在编译过程中使用一个错误消息来告诉你它还没有被初始化。

成员变量的初始化:

21.class CtorBase {

ctor Base(int k){ system . out . println(" Base Created ");}

}

公共类复合体扩展了CtorBase {

Complex(int k){ system . out . println("复杂创建");}//错误

公共静态void main(String args[]) {

复合体a =新复合体(10);

}

}

错误:隐式超级构造函数CtorBase()未定义。必须显式调用另一个构造函数

Rule1:编译器总是确保一个类至少有一个构造函数;如果类没有构造函数,编译器将为它构造一个无参数的构造函数。规则2:如果一个类已经有了一个构造函数,编译器不会再为它构造另一个构造函数,不管它是参数化函数还是无参数函数。

在这个过程中,编译器将调用其父类的无参数构造函数。如果它的父类没有默认(无参数)构造函数,构造过程就会出错,编译也不会通过。

22.class CtorBase

int I;

ctor base(int k){ this . I = k;}

}

公共类复合体扩展了CtorBase {

复数(整数){

超(k);

}

公共静态void main(String args[]) {

复合体a =新复合体(10);

system . out . println(" a . I = "+a . I ");

}

}

结果:a.i=10。

23.class CtorBase {

int I;

ctor base(int k){ this . I = k;}

CtorBase() { }

}

公共类复合体扩展了CtorBase {

复数(int k) { }

公共静态void main(String args[]) {

复合体a =新复合体(10);

system . out . println(" a . I = "+a . I ");

}

}

结果:a.i=0。

24。

公共类测试{

静态int CNT = 0;

静态int sum = 0;

int数;

公共静态void main (String args []){

A A = new A();

B B = new B();

测试test1 =新测试(11);

测试test2 =新测试(22);

test2 =新测试(33);

system . out . println(" CNT = "+CNT);

system . out . println(" sum = "+sum ");

a . show();

b . show();

}

测试(整数){

数字= n;

cnt++;

sum+= number;

}

}

A级

int a = 2;

void show(){

system . out . println(" a 1 = "+a ");

}

}

B类扩展了A{

int a = 3;

void show(){

system . out . println(" a2 = "+super . a ");

super . show();

system . out . println(" a3 = "+a);

}

}

结果:

cnt=3

总和=66

a1=2

a2=2

a1=2

a3=3

25.

等级ValHold{

public int I = 10;

}

公开课演示{

public void method(){

ValHold v = new ValHold();

另一个(五);

system . out . println(v . I);

}

public void other(ValHold v){

v.i = 20

ValHold VH = new ValHold();

v = vh

system . out . println(v . I);

}

公共静态void main(String[] argv){

Demo o = new Demo();

o . amethod();

}

}

结果:

10

20

当一个引用变量作为参数传递给一个方法时,该变量的值可以在这个方法中改变,也就是引用所指向的对象(本题中vh赋给V)。但是,调用方法后,变化量恢复为原来的值,即变量仍然指向原来的对象。(即调用另一个(V)后,V回复到第一个ValHold V = new ValHold();但是,如果引用所指向的对象的数据(属性)在方法中发生了变化,那么在方法调用之后,即使引用仍然指向原对象,但是这个对象的一个属性已经发生了变化(执行v.i=20时V的I值已经发生了变化,所以调用另一个之后,v.i就变成了20)。

26.

公共类测试{

公共静态void main(String [] args){

Base b =新子类();

system . out . println(b . x);

system . out . println(b . method());

}

}

类别基础{

int x = 2;

int方法(){

返回x;

}

}

类子类扩展了Base{

int x = 3;

int方法(){

返回x;

}

}

结果:2 3

变量b声明后,你能访问的对象部分只是Base的部分;子类的特殊部分是隐藏的。这是因为编译器要意识到E是一个基,而不是子类,重写的方法除外。Abstract和final是互斥的,前者专用于继承,后者禁止继承;抽象类中的抽象方法不能是静态的,静态方法不能被重写,它们只是被隐藏。

27。

公共类测试{

公共静态字符串setFileType(String fname){

int p=fname.indexOf(' . ');

如果(p & gt0) fname=fname.substring(0,p);

fname+="。TXT ";

返回fname

}

公共静态void main(String args[]){

String theFile = " Program.java

string s = set filetype(the file);

system . out . println(" Created "+the file);

system . out . println(" Created "+s);

}

}

String在java中变成了安全字符串,对String的任何操作都是先重新生成一个String的副本,然后再操作这个副本。因此,String在传递参数时可以看作是值的传递。也就是说,如果你需要修改一个字符串并返回修改后的字符串,你必须再次获得返回值。