什么是 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. 【硬件】DELLserver硬件监控及DELL系统管理工具OMSA介绍

    1.1.1. DELLserver硬件监控及DELL系统管理工具OMSA介绍 本文介绍採用使用Nagios和OMSA监控DELLserver的硬件健康状态,Nagios监控的方式是NRPE模式,须要配 ...

  2. Android应用源码图书馆管理系统带服务端数据库

    本项目是一套基于安卓的图书馆管理系统,包括jsp服务端源码,安卓客户端源码和mysql数据库.代码比较简单,供学习anroid与j2ee交互.例如Sqlite的使用.安卓客户端与jsp的web服务端的 ...

  3. mysql触发器的作用及语法

    触发器是一种特殊的存储过程,它在插入,删除或改动特定表中的数据时触发运行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力. 数据库触发器有下面的作用: 1.安全性.能够基于数据库的值使用户具有 ...

  4. MySQL5.6监控表之INNODB_METRICS

    http://blog.chinaunix.net/uid-10661836-id-4278807.html 在MySQL5.6的Information_Schema引入新的INNODB_METRIC ...

  5. Graphql graffiti

    https://github.com/RisingStack/graffiti-mongoose https://blog.risingstack.com/graffiti-mongoose-mong ...

  6. 移动设备日期选择插件(基于JQUERY)

    上周花了2个小时写的一个日期选择插件,比较适合移动端的设备.先看个效果图吧.如果刚好是你需要的就往下吧,不需要的也可以继续..... 其实网络上已经有的了类似的成熟插件,比如基于mobiscroll, ...

  7. PHP负载均衡

    待更新 版权声明:本文为博主原创文章,未经博主允许不得转载.

  8. bootstap 滚动监听

    ---首先结合源代码介绍官网的说明 ---然后总结了使用滚动监听的几个步骤 ---最后给出一个简单的例子 ---关键的一点:整体有点零散和乱七八糟,辛苦你的思维和眼睛了,呵呵 ------------ ...

  9. C#中volatile的用法

    恐怕比较一下volatile和synchronized的不同是最容易解释清楚的.volatile是变量修饰符,而synchronized则作用于一段代码或方法:看如下三句get代码: int i1;  ...

  10. Tuning “enq:TX – row lock contention” events

    enq是一种保护共享资源的锁定机制,一个排队机制 排它机制从一个事务的第一次改变直到rollback or commit 结束这个事务, TX等待mode是6,当一个session 在一个表的行级锁定 ...