- 浏览: 556666 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
fiwrc:
知道了. 谢谢~!
\(^_^)/ Java多线程Master-Worker模式 -
fiwrc:
求问 getResultMap 是什么方法???? .. ...
\(^_^)/ Java多线程Master-Worker模式 -
我改名了:
...
\(^_^)/ 表达式解析器(MVEL) -
拓子轩:
赞一个
Oracle 语句大全 -
rudaoxia:
写的很详细,很好,还有很多的拓展,谢谢博主,收下了
\(^_^)/ JDK工具、命令
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 A{
int x = 0;
}
class B{
int x =1;
}
class C extends B implements A {
public void pX(){
System.out.println(x);
}
public static void main(String[] args) {
new C().pX();
}
}
答案:错误。在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。对于父类的变量,可以用super.x来明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确。
11.
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");"这里显示有错。
发表评论
-
Java 设计模式和设计原则
2017-12-22 15:00 0http://java-design-patterns.c ... -
jeesite,jeeplus,jeecg,jfinal
2017-12-21 19:43 0jeesite,jeeplus,jeecg,jfinalh ... -
batch scheduler
2017-08-10 18:19 0batch scheduler -
statsd+graphite+grafana 监控
2016-09-27 14:58 0https://my.oschina.net/u/138210 ... -
spring boot admin server
2016-09-02 17:17 0关键词:Spring boot 监控、Spring Boo ... -
资料备份
2016-07-22 17:29 0微服务 -
spring cloud
2016-07-17 22:03 0spring cloud http://blog. ... -
oschina_git_java 开源项目
2016-04-22 17:21 0项目 描述 JFinal / JFinal ... -
Mybatis Generator 配置文件
2016-04-08 15:44 649<?xml version="1.0&quo ... -
Java中的Object类
2015-08-03 09:53 629package java.lang; ... -
\(^_^)/ Java 反射
2015-05-17 15:49 1081http://blog.csdn.net/libo2006 ... -
Maven中的pom.xml文件
2015-05-14 23:01 11953http://blog.csdn.net/adeyi/ar ... -
Eclipse中的.project文件、classpath文件
2015-05-14 22:58 2866<?xml version="1.0&qu ... -
eclipse中的.classpath文件
2015-05-14 22:40 102.classpath的位置定义了你这个项目在编译时所使用的 ... -
TreadLocal xxx
2015-04-09 23:06 0ThreadLocal是什么 早在JD ... -
\(^_^)/ Servlet、Filter、Listener、Interceptor
2015-01-13 15:49 1297参考:http://thinkerandthinker.i ... -
\(^_^)/ 表达式解析器(MVEL)
2014-10-21 22:08 12067Jeval 在运行时解析计算静态和动态表达式;支持数学, ... -
\(^_^)/ POI读写海量Excel
2014-10-13 19:50 2506转自:http://blog.csdn.net/goodku ... -
\(^_^)/ Java8 源码目录结构
2014-06-27 22:45 596├─com │ └─sun ... -
\(^_^)/ eclipse 插件、注释模版、配置
2014-06-06 15:53 3116Eclipse 插件 1. Fi ...
相关推荐
JAVA面试题-JAVA代码差错 收集了一些代码差错的题,PDF格式的,需要的看看了啊。。。
学之思开源考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持web端和微信小程序,能覆盖到pc机和手机等设备。 支持多种部署方式:集成部署、前后...
本系统主要实现的功能有: 学生以及老师的注册登录,在线考试,错题查询,学生管理,问题管理,错题管理,错题查询,分数查询,试卷管 理,人工组卷。自动组卷,教师,班级,统计等等管理功能。 二、项目运行 环境...
1. 学之思开源考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰,可以用于毕业设计。 2. 包括学生系统,管理系统,小程序功能等。 3. 学生系统功能包括...
完善了业务逻辑层和数据访问层之间的调用代码 找到了生成试卷的新思路并写出了:大型构造函数及其封装类 初步完成了学生端功能的(错题集、个人信息查询、个人成绩查询)servlet函数(自测尚未写出) 前后端都实现了...
附件有代码工程以及数据库文件:youfu.sql。该系统的开发是利用Java语言和MySQL数据库进行开发的,其中用到了Java中的SSM框架以及maven管理。 学生家长端:家长登陆进去后根据自己想看什么信息,就点击相关的模块,...
在原来精华网的基础上增加在线测试这一功能模块,实现教师出题、学生在线考试(自由测试、单元测试、模拟考试)、错题本,以及相关的系统维护功能。 2.2 软件结构 在线测试的功能主要包括三部分:教师出题、学生在线...
在线考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。目前支持web端和微信小程序,能覆盖到pc机和手机等设备。 学生系统功能 登录、注册:注册时...
数据库安装说明(唉,有些网友实在不想自己搞,只好自己动手写吧)1.1新建立一个名为jinghua的数据库(这个自己查吧,也算个小考验)1.1.1在Dos环境中进入mysql的bin目录下,输入mysql+回车这个命令,进入它的...
uexam学之思在线考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。目前支持web端和微信小程序,能覆盖到pc机和手机等设备。 开源版使用须知 仅用个人...