深圳龙辉科技招聘试题
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在传递参数时可以看作是值的传递。也就是说,如果你需要修改一个字符串并返回修改后的字符串,你必须再次获得返回值。