- 浏览: 417313 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
skying007:
...
Mysql coalesce() 函数认识和用法 -
kchiu:
关于这个心跳的发送和接收 晚上全是the fuccking s ...
socket心跳检测 -
bjsq618:
你的想法在大的物流公司已经实现了,只不过他们使用是GPS定位
ddd -
jiaguwen123:
2,AuthenticationHandler类的写法
pa ...
xfire客户端 -
sornor:
总结的不错哟!
Java中的函数yield(),sleep()和wait()的区别
1.
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
大侠们,这有何错误?
答案: 错。abstract method必须以分号结尾,且不带花括号。
2.
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
有错吗?
答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量
(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。
3.
abstract class Something {
private abstract String doSomething ();
}
这好像没什么错吧?
答案: 错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstract
method封锁起来呢? (同理,abstract method前不能加final)。
4.
public class Something {
public int addOne(final int x) {
return ++x;
}
}
这个比较明显。
答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。
5.
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
和上面的很相似,都是关于final的问题,这有错吗?
答案: 正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference
(比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o的member vairable
(成员变量),而o的reference并没有改变。
6.
class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
有什么错呢? 看不出来啊。
答案: 正确。输出的是"i = 0"。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。
7.
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;"。
8.
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}
看上去很完美。
答案: 错。看上去在main里call doSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能访问non-static instant variable。
9.
此处,Something类的文件名叫OtherThing.java
class Something {
private static void main(String[] something_to_do) {
System.out.println("Do something ...");
}
}
这个好像很明显。
答案: 正确。从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。
10.
今天最难的一题:
interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public void play() {
ball = new Ball("Football");
System.out.println(ball.getName());
}
}
这个错误不容易发现。
答案: 错。"interface Rollable extends Playable, Bounceable"没有问题。interface可继承多个interfaces,所以这里没错。问题出在interface Rollable里的"Ball ball = new Ball("PingPang");"。任何在interface里声明的interface variable (接口变量,也可称成员变量),默认为public static final。也就是说"Ball ball = new Ball("PingPang");"实际上是"public static final Ball ball = new Ball("PingPang");"。在Ball类的Play()方法中,"ball = new Ball("Football");"改变了ball的reference,而这里的ball来自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改变reference的。因此编译器将在"ball = new Ball("Football");"这里显示有错。
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
大侠们,这有何错误?
答案: 错。abstract method必须以分号结尾,且不带花括号。
2.
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
有错吗?
答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量
(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。
3.
abstract class Something {
private abstract String doSomething ();
}
这好像没什么错吧?
答案: 错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstract
method封锁起来呢? (同理,abstract method前不能加final)。
4.
public class Something {
public int addOne(final int x) {
return ++x;
}
}
这个比较明显。
答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。
5.
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
和上面的很相似,都是关于final的问题,这有错吗?
答案: 正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference
(比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o的member vairable
(成员变量),而o的reference并没有改变。
6.
class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
有什么错呢? 看不出来啊。
答案: 正确。输出的是"i = 0"。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。
7.
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;"。
8.
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}
看上去很完美。
答案: 错。看上去在main里call doSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能访问non-static instant variable。
9.
此处,Something类的文件名叫OtherThing.java
class Something {
private static void main(String[] something_to_do) {
System.out.println("Do something ...");
}
}
这个好像很明显。
答案: 正确。从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。
10.
今天最难的一题:
interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public void play() {
ball = new Ball("Football");
System.out.println(ball.getName());
}
}
这个错误不容易发现。
答案: 错。"interface Rollable extends Playable, Bounceable"没有问题。interface可继承多个interfaces,所以这里没错。问题出在interface Rollable里的"Ball ball = new Ball("PingPang");"。任何在interface里声明的interface variable (接口变量,也可称成员变量),默认为public static final。也就是说"Ball ball = new Ball("PingPang");"实际上是"public static final Ball ball = new Ball("PingPang");"。在Ball类的Play()方法中,"ball = new Ball("Football");"改变了ball的reference,而这里的ball来自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改变reference的。因此编译器将在"ball = new Ball("Football");"这里显示有错。
发表评论
-
SCJP习题
2012-01-03 16:31 1491SCJP试题集及解析 1. ... -
数组的默认值
2010-09-19 22:35 1162public class Test { stati ... -
数据库中索引的优缺点
2010-09-19 21:51 904数据库中索引的优缺点 ... -
Union和Union all 的区别
2010-09-19 21:47 905union在进行表链接后会筛选掉重复的记录,所以在表链接后会对 ... -
TCP与UDP区别
2010-09-13 11:42 1870(1)TCP是面向连接的传输 ... -
static习题
2010-09-02 11:44 1213class HasStatic{ privat ... -
数组等习题
2010-09-02 10:57 1045一、问答题1、Java语言的数据类型有哪些?8答:有byte( ... -
java 中break 与 continue及return 区别
2010-09-02 10:52 1639使用break 退出循环 可以使用break ... -
认识JAVA标识符
2010-08-31 12:27 3393在Java语言中,标识符是以字母、下划线(…)或美元符($) ... -
子类及父类常见题目
2010-08-31 12:20 12571、结出如下程序的打印结果 父类: Java代码 public ... -
static,构造函数,子类,父类执行顺序
2010-08-31 12:10 2018static变量,构造函数以及父类、子类构造和static ... -
java练习题
2010-08-31 10:40 1342据说,如果你能独立完成(不用看资料,不借助调试)回答在60分 ... -
statement与prestatement区别
2010-08-30 22:35 3076prestatement的效率比前者高,在使用Prepar ... -
Axis1,Axis2,Xfire,CXF区别
2010-08-20 07:02 1126XFire VS Axis XFire是与Axis2 并列的新 ... -
Java中的函数yield(),sleep()和wait()的区别
2010-08-04 12:29 7651首先,wait()和notify(),noti ... -
JAVA选择题<三>
2010-08-03 17:09 251621.如果任何包中的子类都能访问超类中的成员,那么应使用哪个限 ... -
JAVA选择题<二>
2010-08-03 17:06 26941.下面哪些不是java的简 ... -
JAVA选择题<一>
2010-08-03 17:04 1993一、选择题 1、以下程 ... -
综合面试题
2010-08-03 16:31 1036数据库方面: 1. ... -
深入研究Servlet线程安全性问题
2010-08-02 12:43 1047摘 要:介绍了Servlet多 ...
相关推荐
面试 陷阱 技巧 历史最全面的Java面试题 陷阱 和面试技巧
"j.doc"和"Java陷阱一箩筐----面试题集.doc"很可能包含了面试中常见的陷阱问题,比如Java内存模型、垃圾回收机制、并发编程中的同步与锁,以及优化技巧等。这些问题旨在测试求职者在实际开发中解决问题的能力。 ...
首先,陷阱类面试题的特征主要有三个方面: 1. 引导性题干:这类题目会在题干中设置预设情境,引导考生朝着不利的方向回答。例如,“在什么情况下你会放弃公务员职位?”如果按照题目的逻辑回答,考生很可能陷入...
本文将深入探讨Java基础陷阱、Java客户端陷阱以及Java服务器陷阱,并提供一些常见的面试题,帮助你更好地理解和应对这些问题。 一、Java基础陷阱 1. 内存管理:Java使用垃圾回收机制管理内存,但过度依赖可能导致...
Java软件工程师面试是一个重要的环节...分析面试中的陷阱,例如,过度强调理论而忽视实践经验,或者对技术问题回答得过于模糊,都可能影响面试结果。因此,充分准备,清晰表达,诚实面对自己的不足,是成功面试的关键。
该文档讲述了java程序员常见的编程陷阱和一些面试指导
│ Java陷阱一箩筐----面试题集[zt].txt │ JAVA面试题.txt │ JAVA面试题集(1) -- 最大的IT资源网.txt │ JAVA面试题集(2) -- 最大的IT资源网.txt │ JAVA面试题集(3) -- 最大的IT资源网.txt │ JAVA...
一份精心准备的面试资料能够为求职者提供宝贵的信息,帮助他们更好地理解面试流程,预测可能出现的问题,以及规避可能的面试陷阱。本文档包含两份重要资料,分别涵盖面试题目的预测与分析,以及面试中需要避免的陷阱...
BI 常见面试题汇总 BI(Business Intelligence)是企业智能化的核心组件,涉及到数据分析、报表设计、数据仓库、数据挖掘等多个方面。面试BI相关岗位时,需要具备丰富的知识储备和实践经验。以下是BI常见面试题汇总...
【Linux内核经典面试题详解】 1. Linux内核锁:Linux内核中主要有自旋锁和信号量两种锁机制。自旋锁用于保护短暂的、不会引起阻塞的临界区,而信号量则允许任务在无法获取锁时进入睡眠状态,适合处理可能长时间持有...
Java陷阱一箩筐——面试题集 Java陷阱一箩筐——面试题集 Java陷阱一箩筐——面试题集 Java陷阱一箩筐——面试题集
C语言作为一门基础且广泛使用的编程语言,其面试题通常涵盖了以下几个核心知识点: 1. **基本语法**:包括变量定义、数据类型(如int, char, float, double等)、运算符优先级、流程控制语句(if, switch, for, ...
《C++面试题解析:深度剖析strcpy函数与内存安全》 C++面试中,考察面试者的技术水平往往从基础开始,而基础中的基础莫过于对字符串处理的理解,特别是经典的strcpy函数。本文将通过分析一系列面试题,揭示其中的...
这份压缩包文件“C&&C++面试题”很可能包含了面试者在准备C和C++职位面试时所需要面对的各种问题和挑战。 首先,我们来看看C语言部分。C语言是许多现代编程语言的基础,它强调过程化编程,以简洁和效率著称。面试中...
【C/C++面试题大全--96页】这篇文章主要探讨了C/C++编程语言中面试时常见的技术问题,特别是关于字符串处理和内存管理的题目。文章的目的是通过深入解析这些问题来提升面试者的技能水平和对基础知识的理解。 首先,...
本压缩包包含了四份文档,分别是“英文原版(101道面试题).doc”、“部分题的具体分析.doc”、“面试题答案.doc”以及“微软的面试题.doc”,旨在帮助求职者了解微软的面试风格并提升准备。 1. **英文原版面试题**...
### JavaScript面试题解析 #### 一、ES6的新语法 ES6(ECMAScript 6)是JavaScript语言标准的一个重要版本,它引入了许多新的特性和语法改进,旨在提高开发效率和代码可读性。以下是一些重要的新特性: 1. **let ...
C语言面试中常常会出现一些陷阱题,这些题目旨在测试面试者对C语言基础知识的理解和掌握程度。以下是对一些常见陷阱题目的详细解析: 1. **关于C语言中的函数:** - C语言允许函数的嵌套调用,即在一个函数内部...
在C和C++的世界里,面试题通常涵盖了广泛的主题,从基本语法到高级设计原则,再到内存管理和模板元编程。以下是一些常见的C++面试题及其解析,它们可以帮助你为面试做好充分准备。 1. **指针与引用** - 指针是C++...
在iOS开发领域,面试题是评估候选人技能的关键工具。这些题目通常涵盖Objective-C或Swift语言的基础,UIKit框架的使用,内存管理,多线程,网络编程,数据持久化,设计模式等多个方面。以下是一些iOS面试中常见的...