转载地址: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)局部变量一定要初始化,但成员变量不要。
分享到:
相关推荐
5. 125条常见的java面试笔试题大汇总.pdf:这是一份包含125个JAVA面试和笔试题目的PDF文件,涵盖了基础到高级的JAVA知识,是全面复习的好帮手。 通过以上文件,学习者可以系统性地复习JAVA知识,包括基本语法、面向...
而"中软国际Java程序员笔试题.txt"则很可能是包含了一系列Java编程相关的笔试题目,可能包括选择题、填空题、编程题等不同形式,涉及Java语法、面向对象设计、数据结构、算法、JVM原理、多线程、集合框架等内容。...
这样的资源对于求职者来说,是一个很好的自我评估和学习工具,有助于提升面试技巧和加深对这两种语言的理解。 【标签】:“面试题,java,c++” “面试题”标签提示了这个压缩包的主要内容,而“java”和“c++”则...
本篇文章将针对“神州数码思特奇笔试题”进行深入剖析,并提供一些有效的应试策略和注意事项,帮助求职者更好地准备这个环节。 首先,我们要明确神州数码笔试题目的类型和重点。通常,这类试题会涵盖计算机基础知识...
2. **哈尔滨某三表学校学生小李在上大学期间沉迷于网络游戏,毕业后对未来很迷茫,但后来在今日图灵参加过JAVA培训后不仅在北京找到了好工作而且找到了自己的人生方向,你现在需要将小李的经历写成一篇以励志为主题...
其次,"恒生电子08年成都笔试题.doc"可能是恒生电子公司在2008年成都笔试的试题。恒生电子是一家专注于金融软件和服务的公司,所以其笔试题目可能会更偏重于软件工程、数据库管理、金融信息系统等相关知识。求职者应...
这篇文档是一份JAVA软件工程师的面试笔试试卷,主要测试候选人在逻辑推理和JAVA基础知识方面的掌握情况。试卷分为逻辑推理题和基础理论题两个部分。 在逻辑推理题中,试题涉及了逻辑判断和问题解决能力。例如第一题...
### 趋势科技笔试题解析 #### 一、IQ & EQ测试题(智力与情商) - **题目描述**:本部分包含了一些基本的情商与智商测试题,用于评估应聘者的逻辑思维能力及情绪智能。 - **例题**:给出了一系列的选择题,比如比较...
【东北师范大学计算机复试笔试题(回忆版)】 这篇文档包含了东北师范大学计算机专业复试笔试的部分题目,这是一份宝贵的复习资源,对于准备此类考试的学生来说具有很高的参考价值。笔试题目的内容可能涵盖了计算机...
在IT行业的招聘过程中,无论是笔试还是面试,Java作为主流的编程语言之一,其相关的知识考察是必不可少的。这里我们有三份PDF文档...这三份PDF文档提供了一个很好的学习资源,可以帮助求职者系统地复习和准备相关面试。
9. **结构体查找**:这可以通过二分查找或哈希表实现,Java中的HashMap或TreeMap是很好的解决方案。 10. **找出未出现的数字**:位图法是解决此类问题的有效手段,Java中可以使用BitSet类实现。 11. **SSH服务和...
1. **基础选择题**:这部分内容可能涉及Java语法、数据类型、流程控制等基础知识,对于有扎实基础的开发者来说相对简单。 2. **私有(private)和最终(final)**:在Java中,`private`关键字用于限制类成员的访问权限...
这个文件很可能是包含所有整理好的笔试题目的文档。在打开并阅读这份“搜狐.doc”文档时,求职者可以期待找到一系列的问题,涵盖各种IT技术主题,可能包括但不限于: 1. 编程基础:考察各种编程语言的基本语法、...