.数组
1.数组概述
(1)数组可以看成是多个相同类型数据组合,对这些数据的统一管理。
(2)数组变量属于引用类型,数组也可以看成是对象,数组中的每一个元素相当于该对象的成员变量。
(3)数组中的元素可以是任何数据类型,包括基本类型和引用类型
(4)在java语言中声明数组时不能指定其长度(数组中元素的个数);例如:
Int a[5]这是非法的
(5)其中c语言和c++的数组是可以分配到堆栈的,而java中是引用类型。【java中是使用关键字new创建数组对象】
2.数组的初始化
(1).动态的初始化:数组的定义与为数组元素分配空间和赋值的操作分开进行
(2).静态的初始化:在定义数组的同时就为数组元素分配空间并赋值。
3.数组元素的默认初始化
(1).数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每一个元素也被按照成员变量的规则被隐式初始化
(2).数组元素的引用。:定义并用运算符new为之分配空间后,才可以引用数组中的每一个元素。数组元素的引用方式为:
ArrayName【index】其中index为数组元素的下标,可以是整型常量或者整型表达式。
(3)每一个数组都有一个属性,那就是长度length。Java中一个好处就是对于数组的长度只需要用a.length就能获得,而c++中是sizeof来获取。
print和println之间的区别:print【其中有ln会自动转行】
public void print(Object obj)
打印对象。按照平台的默认字符串编码将 String.valueOf(Object) 方法生成的字符串转换为字节,并完全以 write(int) 方法的方式写入这些字节。
参数:
obj - 要打印的 Object
另请参见:
println
public void println()
通过写入行分隔符字符串终止当前行。行分隔符字符串由系统属性 line.separator 定义,不一定是单个换行符 ('\n')。
4为什么这个void main(String[] args)里面有一个字符窜的数组:
这个字符数组的作用就是将命令行参数挨个输入到数组中args[]中然后供你使用。要输出双引号的话必须叫反斜杠再加双引号。【exit】是当前虚拟机系统的推出的命令。其中exit(-1)是非正常的退出。传零时正常退出。
(1)将String类型转换成其他类型时,只需要parse+您要转换的类型:double d1 = Double.parseDouble(args[0]);
(2)选择排序的方法不是很有效率的,因为它会重复比较,在构造方法时返回值可以是自身,比如可以返回数组类型。不一定只要返回void。
(3)在数组中的排序方法是从头到尾一个一个比较得来的,而那个冒泡法是先从后面与前面的数一一比较后,将最小的数或者最大的数沉淀下去而设计的算法。
(4)在java编程中不仅要逻辑思维还要有形象思维。
5,搜索算法:
(1)如何让搜索更有效率呢?一般来说搜索是建立在排好序的基础上,如果排好序进行搜索的话效率会更高。搜索算法可以搜索数组中某个值的下标.
(2)二位数组可以看成以数组为元素的数组。在java中多维数组的声明和初始化应按从高维到低维的顺序进行
(3)数组拷贝Arraycopy方法,在java.lang.system这个包中。如果源数据数目超出目标数组边界,会抛出异常IndexOutOfBoundsException
6.数组的拷贝:
其实数组的拷贝只是将新的数组的下标指向被拷贝的数组下标,于是我们只要改变新数组的值原数组就会改变。