Java Note (1) - Basic Knowledge

1   基本数据类型

这里和C++语言基本相同,因而只强调几个差异点:
  1. 长整型的数值末尾需要用L修饰。同样,Float类型的数值也要有F后缀。
  2. 浮点型数值有三种特殊的数值:正无穷、负无穷、NaN。用着三种数值表示溢出或出错的状况。
  3. 常量DoubIe. P0SITIVE_INFINITY, DoubIe.NEGATIVE_INFNITY,和Double.NaN(与相应的Float类型的常量一样)分别表示这三个特殊的值,但在实际应用中很少会遇到。
  4. 用于检测一个特定值是否等于Double.NaN的正确方法是使用Double.isNaN方法:
if (Double.isNaN(x)) {}

2   数组

2.1 一般数组

在声明数组变量时,需要指出数组类型(数组元素类型后跟[])和数组的名字。下面声明了整型数组a:
int [] a;
这条语句只声明了变量a (多维数组类似:double [ ][ ] balances;),并没有把a初始化为一个真正的数组。应该使用new运算符来创建数组。
int [] a = new int[100];
一旦创建了数组,就不能再改变它的大小(尽管可以改变每一个数组元素)。如果经常需要在运行过程中扩展数组的大小,就应该使用另一个数据结构——数组列表。
请注意,在使用这种语句时,不需要调用new 。
int[] smallPrimes = { 2, 3, 5, 7, 11, 13 };
int[][] magicSquare ={{16, 3, 2, 13},{5, 10, 11, 8},{9, 6, 7, 12},{4, 15, 14, 1}};
甚至还可以初始化一个匿名数组:
new int[] { 17, 19, 23, 29, 31, 37 }
也可以在不创建新变量的情况下重新初始化一个数组。,
smallPrimes = new int[] { 17, 19, 23, 29, 31, 37 };

如果希望将一个数组的所有值拷贝到另一个数组中去,就要使用System类的arraycopy方法。调用这个方法的语法格式为:

System.arraycopy(from, fromlndex, to, tolndex, count); 

2.2 The “for each” Loop

JDK 5.0增加了一种功能很强的循环结构,可以用来依次处理数组中的每个元素。这种for循环的语句格式为:
for (variable : collection) statement.
定义一个变量用于暂存集合中的每一个元素,并执行相应的语句(当然,也可以是语句块)。集合表达式必须是一个数组或者是一个实现了lterable接口的类(例如Arraylist)对象。
for (int element : a) 
      { System.out.println(element); }
每一个Java应用程序都有一个带String [ ] args参数的main方法。这个参数表明main方法将接收一个字符串数组,也就是命令行参数。
要想对数值型数组进行排序,可使用Arrays类中的sort方法
int[] a = new int[10000];
      ……
Arrays.sort(a)  
在C++中,Java的声明:
double [][] balance = new double[10][6]的意义不同于
double balance[10][6];,而是相当于: 
double ** balance = new double* [10];
因为上面的原因,我们可以在Java中单独的存取数组的某一行。

2.3 不规则数组

Java实际上没有多维数组,只有一维数组。多维数组解释为“数组的数组”。例如,对于balances [M][N],我们说表达式balances[i]是引用第i个子数组,也就是二维表的第i行。它本身也是    一个数组,balances[i][j]引用这个数组的第j项。这样,我们也有办法构建不规则数组:
要想创建一个不规则的数组,首先需要分配一个具有所含行数的数组。
int[][] odds= new int[NMAX + 1] [];
接下来,分配这些行。这样便得到一个三角形数组,PS: 这里数组的维度可以用变量来定义,但是一旦确定便无法改变。这个和C++动态创建多维数组好相似哈。
for (int n = 0; n <= NMAX; n++)
        odds[n] =new int[n + 1];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值