Java 的数组

几乎所有程序设计语言都支持数组。在C和 C++里使用数组是非常危险的,因为那些数组只是内存块。若程 序访问自己内存块以外的数组,或者在初始化之前使用内存(属于常规编程错误),会产生不可预测的后果 (注释②)。

②:在 C++里,应尽量不要使用数组,换用标准模板库(Standard TemplateLibrary)里更安全的容器。

Java 的一项主要设计目标就是安全性。所以在 C 和 C++里困扰程序员的许多问题都未在Java 里重复。一个 Java 可以保证被初始化,而且不可在它的范围之外访问。由于系统自动进行范围检查,所以必然要付出一些 代价:针对每个数组,以及在运行期间对索引的校验,都会造成少量的内存开销。但由此换回的是更高的安 全性,以及更高的工作效率。为此付出少许代价是值得的。 创建对象数组时,实际创建的是一个句柄数组。而且每个句柄都会自动初始化成一个特殊值,并带有自己的 关键字:null(空)。一旦 Java 看到null,就知道该句柄并未指向一个对象。正式使用前,必须为每个句 柄都分配一个对象。若试图使用依然为null 的一个句柄,就会在运行期报告问题。因此,典型的数组错误在 Java 里就得到了避免。 也可以创建主类型数组。同样地,编译器能够担保对它的初始化,因为会将那个数组的内存划分成零。 数组问题将在以后的章节里详细讨论。

 1 package Com.TomTest;
 2 
 3 
 4 import java.util.*;
 5 public class TomTest_49 {
 6   public static void main(String args[]){
 7       String s="I am Geng.X.y,she is my girlfriend";
 8 StringTokenizer fenxi=new StringTokenizer(s," ,"); 
 9       int number=fenxi.countTokens();
10       while(fenxi.hasMoreTokens()){
11           String str=fenxi.nextToken();
12           System.out.println(str);
13           System.out.println("还剩"+fenxi.countTokens()+"个单词");
14        }
15      System.out.println("s共有单词:"+number+"个");
16    } 
17 }
原文地址:https://www.cnblogs.com/borter/p/9438820.html