`
k_lb
  • 浏览: 833730 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

网上看到的一篇java语法笔试题总结,总结的很好

 
阅读更多

转载地址:http://wenku.baidu.com/view/f1ffc97101f69e31433294fd.html

作者:outpainfo

相比总结一。后面加了一些,都是我笔试过来认为最重要的

1

class Something {

final int i;

public void doSomething() {

System.out.println("i = " + i);

}

}

和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?

答案: 错。final int i是个final的instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor(构造器)结束之前被赋予一个明确的值。可以修改为"final int i = 0;"。

2

此处,Something类的文件名叫OtherThing.java

class Something {

private static void main(String[] something_to_do) {

System.out.println("Do something ...");

}

}

这个好像很明显。

答案: 正确。从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。

3、

java myprog good morning

public class myprog{

public static void main(String argv[])

{

System.out.println(argv[2])

}

}

4) Exception raised:"java.lang.ArrayIndexOutOfBoundsException: 2"

4

7. String s1=new String("Hello")

String s2=new String("there");

String s3=new String();

下面哪条是正确的。 1是对的输出:hellothere

1) s3=s1 + s2; 2) s3=s1-s2; 3) s3=s1 &s2; 4) s3=s1 && s2;

5

12. public int bbb(){

static int i=0; // error

i++;

return i;

}

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

6

14. public class Test {

public static void main(String[] args) {

String s ;

Test test = new Test();

test.f(s); //error

}

public void f(String s){

s="1223";

System.out.println(s);

}

}

error: The local variable s may not havebeen initialized

即使初始化了输出为: 1223

7

class CtorBase {

CtorBase(int k) {System.out.println("Base Created");}

}

public class Complex extends CtorBase {

Complex(int k) {System.out.println("Complex Created");}   //error

public static void main(String args[]) {

Complex a = new Complex(10);

}

}

error: Implicit super constructorCtorBase() is undefined. Must explicitly invoke another constructor

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

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

8

下面哪个声明是合法的

1) int abc-xy; 2)int 8xe; 3)int abc xyz; 4)int x = 0;float f = 2.3;

4是合法的,其它的都是不合法的。

9

public class javaTest {

public static void main(String[] args) {

floata = 14.7;

floatb = 3f;

floatc = 4.1f;

System.out.println(a+""+b+" "+c);

}

}

编译出错:float a = 14.7;14.7是double不能把它转换成float;

10

public class javaTest {

public static void main(String[] args) {

finalint i = 1;

i= 1;

//System.out.println(i);

}

} 编译出错:无法为常量指定值。

11

public class javaTest {

public static void main(String[] args) {

bytea = 1;

byteb = 2;

bytec = a + b; //error

byted = 1+2;

bytee = 2+a; //error

inti = 2L+3; //error

}

}

编译错误:a+b (2+a)为int ,要不能转化为byte精度损失。 但byte d = 1+2;因为 1 2 是整数,不是整数变量。

注:整数变量的运算结果至少是int类型。

如果有一个整数变量是long类型,那么运算结果是long类型。

浮点数运算的类型是最大的浮点数类型。

12

public class javaTest {

public static void main(String[] args) {

intn = 3;

intm = 4;

System.out.println("compareresult is "+((n>m)&&(++n)>m));

System.out.println(n)

}

}

输出为compare result isfalse

3

n为3而不是4.因为n>m为false ,因此整个表达式为false,程序不再计算(++n)>m.

13

class A {

inti = 1;

voidfunc(){

System.out.println("funin a");}

}

public class B1 extends A {

inti = 2;

voidfunc(){

System.out.println("funin b");

}

publicstatic void main(String args[]){

B1b = new B1();

Aa = new A();

b.func();

a.func();

System.out.println("b.i="+b.i);

System.out.println("a.i="+a.i);

Ax = new B1();

x.func();

System.out.println("x.i="+x.i);

}

}

记住:“域是什么”在编译时确定的,“方法是什么”是在运行时确定的。

编程程序只进行“字面”上的检查所以编译时,它认为x.i是父类A的域,因为x的类型是A。

14

class A {

inti = 1;

}

public class B1 extends A {

inti = 2;

voidfunc(){

System.out.println("funin b");

}

publicstatic void main(String args[]){

Ax = new B1();

x.func();

System.out.println("x.i="+x.i);

}

}

这个程序编译时会出错是,x.func()因为编译时检查类A中没有此方法。所以编译错误。。

15

package mypack.lib2;

public class TestExtend {

int x;

public static void main(String[] args){

int i,j,k,l=0;

k = l++;

j=++k;

i = j++;

System.out.println(i+" "+j+" "+k);

}

}

输出为I ,j k 分别为1 2 1。

总结i++,++i.

I++是先不加前赋值给左边的,++i是先加完再赋值给左边的,运行完i++的值还是会加的。I=i++;这个i的值没有加。

16>

int x = 0,y = 1,z;

if(x)

z= 0;

不能编译成功,因为if只能赋值为boolean.

17>

public class TestExtend {

int x;

public static void main(String[] args){

boolean a = false;

if(a=true)

System.out.println("helloe");

else

System.out.println("GOOLDA");

}

}

输出为helloe。。a=true是赋值,不是a==true这是判断。注意区别

17

public class TestExtend {

int x;

public static void main(String[] args){

boolean flag = true;

switch(flag){

case true:System.out.println("true");

}

}

}

编译错误

Switch 里的不能为boolean类型。

18》

public class TestExtend {

public static void main(String[] args){

int m = 0,j;

while(m++<2)

System.out.println(m);

}

}

输出为 12

局部变量要初始化才能输出,否则编译错误。

19。

不能在静态的方法中使用super 和 this 关键字。。切记

20

方法的重写Overriding和重载Overloading是Java多态性的不同表现。

注意,Java的方法重载要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法。

class Test{

void show(){

System.out.println("test");

}

}

public class TestExtend extends Test{

static show(){

System.out.pritln("");

}

public static void main(String[] args){

new TestExtend();

}

编译错误,无法覆盖。要完全一样。或者参数不一样。就不是重写了。都可以编译通过。

21

public class TestExtend {

public static void main(String[] args){

String test= "abc";

test= test+test;

System.out.println(test);

}

}

输出为abcabc

22

类的继承关系中,其中 parent代表父类,son代表子类。

Parent = son; 但是parent不能强制转化为son,如果强制转化,可以骗过编译器,但执行时会出错。

23

Static final可以在静态区中初始化。但不能在构造方法中初始化。

1>

访问控制:

Public : 对于public描述符,你只需要记住一条,你在哪都可以访问。

Private: private描述符表示该成员只能在该类的内部使用,我们需要重点理解的是“在该类的内部”,意思是只要是在定义该成员的类的内部(类的内部是一个空间范围名词,只要是在{}之间的代码都算作是在类的内部).

Protected 无访问控制:至于protected描述符和package-private,则只要是在该类所在包内部,也可以随便使用。

注:比package-private作用范围更强一点,protected描述符修饰的字段还能够被其他包中它的子类所访问,一定要注意在“类的内部被访问”和“被类使用”的区别,被其他包中它的子类使用,表明该成员只能被子类使用,而不是在该子类中使用,而一旦继承,父类也不能访问自己的protected成员.

方法:在重置方法时,子类的方法不能比超类的方法存取范围小。

2

Final 修饰的变量一定要初始化,当然可以在构造方法初始化,但不能在方法内初始化。

但是如果常量是静态的,那么就不能在构造方法中初始化,必须在定义它的时候初始化或者在静态块中初始化。

3

Abstract 类里面也可能有main函数,而且可以运行。

实现接口的类必须在类中给出接口中所有的方法定义,因为接口中的方法都是public,所以,必须在实现方法时加上public关键字

抽象类可以实现接口,可以实现也可以不实现其中的方法。

异常:

(1)除o会抛出异常,但浮点数除零,那么就不会产生异常了。

(2)局部变量一定要初始化,但成员变量不要。

分享到:
评论

相关推荐

    自己整理的最全的 JAVA 常见 面试笔试 题

    5. 125条常见的java面试笔试题大汇总.pdf:这是一份包含125个JAVA面试和笔试题目的PDF文件,涵盖了基础到高级的JAVA知识,是全面复习的好帮手。 通过以上文件,学习者可以系统性地复习JAVA知识,包括基本语法、面向...

    笔试题目

    而"中软国际Java程序员笔试题.txt"则很可能是包含了一系列Java编程相关的笔试题目,可能包括选择题、填空题、编程题等不同形式,涉及Java语法、面向对象设计、数据结构、算法、JVM原理、多线程、集合框架等内容。...

    c++,java面试题(综合)

    这样的资源对于求职者来说,是一个很好的自我评估和学习工具,有助于提升面试技巧和加深对这两种语言的理解。 【标签】:“面试题,java,c++” “面试题”标签提示了这个压缩包的主要内容,而“java”和“c++”则...

    神州数码思特奇笔试题

    本篇文章将针对“神州数码思特奇笔试题”进行深入剖析,并提供一些有效的应试策略和注意事项,帮助求职者更好地准备这个环节。 首先,我们要明确神州数码笔试题目的类型和重点。通常,这类试题会涵盖计算机基础知识...

    某教育机构文案策划入职笔试题

    2. **哈尔滨某三表学校学生小李在上大学期间沉迷于网络游戏,毕业后对未来很迷茫,但后来在今日图灵参加过JAVA培训后不仅在北京找到了好工作而且找到了自己的人生方向,你现在需要将小李的经历写成一篇以励志为主题...

    09年杭州/成都笔试题和相关笔记

    其次,"恒生电子08年成都笔试题.doc"可能是恒生电子公司在2008年成都笔试的试题。恒生电子是一家专注于金融软件和服务的公司,所以其笔试题目可能会更偏重于软件工程、数据库管理、金融信息系统等相关知识。求职者应...

    JAVA软件工程师面试笔试试卷.pdf

    这篇文档是一份JAVA软件工程师的面试笔试试卷,主要测试候选人在逻辑推理和JAVA基础知识方面的掌握情况。试卷分为逻辑推理题和基础理论题两个部分。 在逻辑推理题中,试题涉及了逻辑判断和问题解决能力。例如第一题...

    趋势科技笔试题(非常全,将收集的很多集合一起)

    ### 趋势科技笔试题解析 #### 一、IQ & EQ测试题(智力与情商) - **题目描述**:本部分包含了一些基本的情商与智商测试题,用于评估应聘者的逻辑思维能力及情绪智能。 - **例题**:给出了一系列的选择题,比如比较...

    东北师范大学计算机复试笔试题(回忆版).doc.zip

    【东北师范大学计算机复试笔试题(回忆版)】 这篇文档包含了东北师范大学计算机专业复试笔试的部分题目,这是一份宝贵的复习资源,对于准备此类考试的学生来说具有很高的参考价值。笔试题目的内容可能涵盖了计算机...

    大部分公司出的笔试和面试的题目基本上都这些

    在IT行业的招聘过程中,无论是笔试还是面试,Java作为主流的编程语言之一,其相关的知识考察是必不可少的。这里我们有三份PDF文档...这三份PDF文档提供了一个很好的学习资源,可以帮助求职者系统地复习和准备相关面试。

    百度历年笔试面试150题.docx

    9. **结构体查找**:这可以通过二分查找或哈希表实现,Java中的HashMap或TreeMap是很好的解决方案。 10. **找出未出现的数字**:位图法是解决此类问题的有效手段,Java中可以使用BitSet类实现。 11. **SSH服务和...

    大唐最新软件(JAVA类)2010年

    1. **基础选择题**:这部分内容可能涉及Java语法、数据类型、流程控制等基础知识,对于有扎实基础的开发者来说相对简单。 2. **私有(private)和最终(final)**:在Java中,`private`关键字用于限制类成员的访问权限...

    搜狐技术员笔试题目整理

    这个文件很可能是包含所有整理好的笔试题目的文档。在打开并阅读这份“搜狐.doc”文档时,求职者可以期待找到一系列的问题,涵盖各种IT技术主题,可能包括但不限于: 1. 编程基础:考察各种编程语言的基本语法、...

Global site tag (gtag.js) - Google Analytics