什么是 Java 的字节码?
答 它是程序的一种低级表示,可以运行于 Java 的虚拟机。将程序抽象为字节码可以保证 Java 程序员的
代码能够运行在各种设备之上。
 Java 允许整型溢出并返回错误值的做法是错误的。难道 Java 不应该自动检查溢出吗?
答 这个问题在程序员中一直是有争议的。简单的回答是它们之所以被称为原始数据类型就是因为缺乏
此类检查。避免此类问题并不需要很高深的知识。我们会使用 int 类型表示较小的数(小于 10 个十
进制位)而使用 long 表示 10 亿以上的数。
 Math.abs(-2147483648)
的返回值是什么?
答 -2147483648 。这个奇怪的结果(但的确是真的)就是整数溢出的典型例子。
 如何才能将一个 double 变量初始化为无穷大?
答 可以使用 Java 的内置常数:
Double.POSITIVE_INFINITY 和 Double.NEGATIVE_INFINITY 。
能够将 double 类型的值和 int 类型的值相互比较吗?
答 不通过类型转换是不行的,但请记住 Java 一般会自动进行所需的类型转换。例如,如果 x 的类型是
int 且值为 3 ,那么表达式
(x<3.1) 的值为 true ——Java会在比较前将 x 转换为 double 类型(因为 3.1
是一个 double 类型的字面量)。
如果使用一个变量前没有将它初始化,会发生什么?
答 如果代码中存在任何可能导致使用未经初始化的变量的执行路径,Java 都会抛出一个编译异常。
Java 表达式 1/0 和 1.0/0.0 的值是什么?
答 第一个表达式会产生一个运行时除零异常(它会终止程序,因为这个值是未定义的);第二个表达
式的值是 Infinity (无穷大)。
能够使用 < 和 > 比较 String 变量吗?
答 不行,只有原始数据类型定义了这些运算符。请见 1.1.2.3 节。
负数的除法和余数的结果是什么?
答 表达式 a/b 的商会向 0 取整; a % b 的余数的定义是 (a/b)*b
+ a % b 恒等于 a 。例如 -14/3 和
14/-3 的商都是 -4 ,但 -14 % 3 是 -2 ,而 14 % -3 是 2。
为什么使用 (a
&& b) 而非 (a & b) ?
答 运算符 & 、 | 和 ^ 分别表示整数的位逻辑操作与、或和异或。因此, 10|6 的值为 14 , 10^6 的值为
12 。在本书中我们很少(偶尔)会用到这些运算符。 && 和 || 运算符仅在独立的布尔表达式中有效,
原因是短路求值法则:表达式从左向右求值,一旦整个表达式的值已知则停止求值。
嵌套 if 语句中的二义性有问题吗?
答 是的。在 Java 中,以下语句:
if
<expr1> if <expr2> <stmntA> else <stmntB>
  等价于:
if
<expr1> { if <expr2> <stmntA> else <stmntB> }
  即使你想表达的是:
if
<expr1> { if <expr2> <stmntA> } else <stmntB>
  避免这种“无主的” else 陷阱的最好办法是显式地写明所有大括号。
一个 for 循环和它的 while 形式有什么区别?
答 for 循环头部的代码和 for 循环的主体代码在同一个代码段之中。在一个典型的 for 循环中,递
增变量一般在循环结束之后都是不可用的;但在和它等价的 while 循环中,递增变量在循环结束
之后仍然是可用的。这个区别常常是使用 while 而非 for 循环的主要原因。
有些 Java 程序员用 int a[] 而不是 int[] a 来声明一个数组。这两者有什么不同?
答 在 Java 中,两者等价且都是合法的。前一种是 C 语言中数组的声明方式。后者是 Java 提倡的方式,
因为变量的类型 int[] 能更清楚地说明这是一个整型的数组。
为什么数组的起始索引是 0 而不是 1 ?
答 这个习惯来源于机器语言,那时要计算一个数组元素的地址需要将数组的起始地址加上该元素的索
引。将起始索引设为 1 要么会浪费数组的第一个元素的空间,要么会花费额外的时间来将索引减 1 。
如果 a[] 是一个数组,为什么 StdOut.println(a) 打印出的是一个十六进制的整数,比如 @
f62373 ,而不是数组中的元素呢?
答 问得好。该方法打印出的是这个数组的地址,不幸的是你一般都不需要它。
我的程序能够重新读取标准输入中的值吗?
答 不行,你只有一次机会,就好像你不能撤销 println() 的结果一样。
如果我的程序在标准输入为空之后仍然尝试读取,会发生什么?
答 会得到一个错误。 StdIn.isEmpty() 能够帮助你检查是否还有可用的输入以避免这种错误。
这条出错信息是什么意思?
Exception
in thread "main" java.lang.NoClassDefFoundError: StdIn
答 你可能忘记把 StdIn.java 文件放到工作目录中去了。
在 Java 中,一个静态方法能够将另一个静态方法作为参数吗?
答 不行,但问得好,因为有很多语言都能够这么做。

java答疑的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. Java Object 对象拷贝答疑

    Java Object 对象拷贝答疑 @author ixenos 摘要:在对象的clone过程需要注意的几点.关于关键字this.super 关于clone[对象拷贝] 在实际编程过程,有时候我们会 ...

  3. SSH答疑解惑系列(二)——java.lang.reflect.InvocationTargetException异常

    在项目中遇到了invocationTargetException的问题,在这里跟大家分享一下. 报错信息如下: 使用反射时,比如执行invoke方法,如果被反射执行的方法体抛出了Exception,这 ...

  4. 《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。附小文:招.NET开发,结果他转JAVA了,一切都是为了生活

    参考文章: 1.SuperIO通讯框架介绍,含通信本质 2.C#跨平台物联网通讯框架ServerSuperIO(SSIO) 一.感慨 上大学的时候,没有学过C#,花了5块钱在地坛书市买了一本教程,也就 ...

  5. 2016-2017-2 《Java程序设计》教学进程

    2016-2017-2 <Java程序设计>教学进程 目录 考核方式 课前准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...

  6. JAVA抽象类与接口的详细解读与示例

    接口存在的原因: JAVA是单继承的,不支持多继承,但是有了接口,JAVA可以实现多个接口: 一个类要是实现某一个接口就必须实现接口内声明的所有方法(强迫执行,即便是空方法,也要实现): 接口特点: ...

  7. java问卷

    1.你对自己的未来有什么规划?做了那些准备? 对于每个人来讲只有一次,七八十年的时间是一个即漫长然而又很短暂的过程,对于漫长与短暂的看法,由于每个人所处的环境的不同以及对人生看法的不同而有所差异.痛苦 ...

  8. 2015-2016-2 《Java程序设计》教学进程

    2015-2016-2 <Java程序设计>教学进程 目录 考核方式 寒假准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...

  9. 2015-2016-2 《Java程序设计》 游戏化

    2015-2016-2 <Java程序设计> 游戏化 实践「<程序设计教学法--以Java程序设计为例>」中的「游戏化(Gamification)理论」,根据 2015-201 ...

随机推荐

  1. git 命令归纳

    git 新手一枚,随用随更新 git clone git@example.com:project-name.git 克隆 git branch [-a -r] 查看分支[所有 远端] git pull ...

  2. LabVIEW的错误簇以及错误处理函数

    我们可以在LabVIEW的Modern>>Array, Matrix & Cluster控件面板找到表示错误簇数据类型的错误输入(Error In)以及错误输出(Error Out ...

  3. SourceTree - 好用的 Git / Mercurial GUI 管理工具 for Mac OS X

    Git 是免費.開放源碼的分散式版本控制系統,從小專案到非常大的專案,都可以很快速.有效地管理. 對程式設計師來說,一定要熟記 git 指令的用法,在終端機下操作 git 是必備的基本技能.(其他的 ...

  4. android之tween动画详解

    android中一共提供了两种动画,其一便是tween动画,tween动画通过对view的内容进行一系列的图像变换(包括平移,缩放,旋转,改变透明度)来实现动画效果,动画效果的定义可以使用xml,也可 ...

  5. linux下的openoffice安装和服务自启动

    openoffice下载并安装 wget http://sourceforge.net/projects/openofficeorg.mirror/files/4.1.1/binaries/zh-CN ...

  6. HTML5 Canvas 2D绘图

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4851774. ...

  7. quartz简单实现

    quartz介绍 在我们的项目中,经常会遇到某个任务需要在特定的时间点执行,这个时间点可能是每天的某分某秒,可能是一周的指定某个星期某个时间等:quartz就是实现这样一个复杂任务调度逻辑的框架. 官 ...

  8. 19个非常有用的Javascript类库

    Blackbird是一款非常酷的JavaScript调试工具,带有一个漂亮的界面显示和过滤调试信息. http://www.gscottolson.com/blackbirdjs/ Treesaver ...

  9. Java SE (1)之 JFrame 组件 FlowLayout 布局

    package com.sunzhiyan; import java.awt.*; import java.awt.event.*; import javax.swing.*; public clas ...

  10. Asp.net: WebForm基础上构建Mvc的方法

    添加引用: System.Web.Routing System.Web.Abstractions System.Web.Mvc 添加文件夹: Controllers, Views,  Views / ...