1 一维数组的创建和使用
2种创建形式:
(1)先声明,再用new分配内存
(2)声明的同时分配内存
2种幅值形式
(1)用new{}赋值
(2)用{}赋值
如果不使用的话,eclipse会提示变量未使用。
此外,对于整形数组,如果只初始化不幅值,则值为0
下面这个程序对一维数组的使用进行了验证。
package test1;public class hello {public static void main(String[] args) {// 声明一维数组int a[];a = new int[5];// 数组的使用for(int i = 0; i<5; i++){System.out.println("a["+i+"]="+a[i]);}// 声明一维数组int b[] = new int[10];// 数组的使用for(int i = 0; i<10; i++){System.out.println("b["+i+"]="+b[i]);}// 初始化int c[] = new int[]{1,2,3};// 数组的使用for(int i = 0; i<3; i++){System.out.println("c["+i+"]="+c[i]);}// 初始化int d[] = {4,5,6,7,8};// 数组的使用for(int i = 0; i<5; i++){System.out.println("d["+i+"]="+d[i]);}}}
运行结果为
a[0]=0
a[1]=0
a[2]=0
a[3]=0
a[4]=0
b[0]=0
b[1]=0
b[2]=0
b[3]=0
b[4]=0
b[5]=0
b[6]=0
b[7]=0
b[8]=0
b[9]=0
c[0]=1
c[1]=2
c[2]=3
d[0]=4
d[1]=5
d[2]=6
d[3]=7
d[4]=8
可以直接对元素进行赋值,比如
d[2] = 100;
2 二维数组的创建和使用
二维数组的声明也是靠new来分配内存。但要注意每一维可以分配不同的长度。如:
在实际使用时,还是最好声明同时做好初始化。
int a[][] = {{1,2},{3,4}};
3 遍历数组
最常见的遍历就是用for循环来实现。也可以用foreach实现。
数组的长度可以用length属性获取。
4 元素操作
fill方法可以填充数组元素,这个方法可以用作初始化。
从这里开始,比如在头上包含import java.util.*;
5 排序
sort方法可用于排序,这个应用的地方很多。
此外,书上还介绍了常用的排序算法,包括:
- 冒泡排序
- 选择排序
- 反转排序
实现这些排序算法,是基本功。
6 数组复制
copyOf和copyOfRange用于拷贝数组。疑问,复制后不是指向同一个数组吧?会不会联动。可以测试一下。
7 数组查询
二分法搜索方法为binarySearch,使用前必须先排序。
而且,可以对字符串数组进行查询。很厉害吧。
------------------------------------------------------------------------
下面开始学类和对象
8 类和对象
任务:定义book类。
先了解几个概念:成员变量;成员方法;权限修饰符;局部变量;this关键字;构造方法(就是构造函数);静态变量;静态常量;静态方法;主方法。
主方法是静态的,所以只能调用静态方法。
对象的创建;
访问对象的属性和行为;
对象的引用;
Book book;
对象的比较 == 和 equals 有本质区别。==是看地址, equals是看对象内容。
对象的销毁:Java有完整的销毁机制,不需要手动销毁。
垃圾回收机制只能收回new出来的对象,对于不是new出来的,可用finalize()
此外还有system.gc强制启动垃圾回收机制。
9 包装类
Java不能定义基本类型对象,因此提供了包装类来解决这个问题。
(1)Integer类
(2)Boolean类
(3)Byte类
(4)Character类
(5)Double类
(6)Number类
10 数字处理类
数字格式化,基本数学运算方法,随机数,都的用到数字处理类。
(1)数字格式化
(2)数学运算,Math类,三角函数,角度转换,指对数函数,取整,极值,绝对值
(3)随机数,0-1的随机数
(4)大数字运算,长小数运算,都有对应的类。
这些都是比较重要的基本知识,等用到了再回头看。