Java八种基本数据类型:byteshortintlongfloatdoublebooleanchar


  • break语句:立即从循环中退出
  • continue语句:立即开始下一轮循环

如果要将数组复制一份,应该声明、创建并初始化一个新的数组,然后将原数组中的元素挨个复制到新数组


递归注意三点:

  • 递归出口,即 最简单情况;
  • 递归调用总是去尝试解决一个规模更小的子问题,直到最简单情况;
  • 递归调用的父问题和尝试解决的子问题之间不应该有交集。

重定向与管道

  • 将标准输出重定向至一个文件
% java RandomSeq 1000 100.0 200.0 > data.txt

这条指令指明标准输出流不是被打印至终端窗口,而是写入一个名为data.txt的文件。

  • 重定向标准输入从文件读取数据
% java Average < data.txt

这条命令会从文件data.txt中读取一系列数值并计算它们的平均值。具体来说,“<”告诉操作系统读取文本文件data.txt作为输入流而不是在终端窗口中等待用户的输入。

  • 将上述结合起来,将一个程序的输出重定向为另一个程序的输入叫做管道
% java RandomSeq 1000 100.0 200.0 | java Average

这条命令将RandomSeq的标准输出和Average的标准输入指定为同一个流。至于两个程序的运行顺序,取决于操作系统:可能先运行RandomSeq并产生一些输出,然后再运行Average,来消耗这些输出;也可能先运行Average,直到它需要一些输入然后再运行RandomSeq来产生一些输出。我们的程序不需要担心这些细节。


问:能够将double类型的值与int类型的值相互比较吗?
答:不通过类型转换是不行的,但Java一般会自动进行所需的类型转换。例如:int x = 3x < 3.1的值为true,这是因为在进行比较前Java会将x转换为double类型。

问:Java表达式1 / 01.0 / 0.0的值是什么?
答:第一个会发生除以零异常;第二个值为Infinity(无穷大)。

问:能够使用<>比较String变量吗?
答:不能,只有原始数据类型定义了这些运算符。

问:Java中int[] aint a[]有什么不同吗?
答:在Java中,两者等价。Java提倡int[] a方式是因为这种方式能更清楚地说明这是一个整型数组。

问:如果a[]是一个数组,为什么System.out.println(a);打印出的不是数组元素?
答:这样打印的是数组的地址。

问:在Java中,一个静态方法能够将另一个静态方法作为参数吗?
答:不能。