java中有包名的类无法引用默认包中的类。但是1.2或1.3的jdk却可以编译。新版的jdk已经禁止了这一行为,这样就强制了必须将引用类置于某个包中,形成清晰地组织结构。所以在以后的编程中最好给类指定包。
Date类的大部分方法已过时。已由Calendar实现。
汉诺塔 递归问题
递归的条件:
1,面对的问题形式类似
2,化简到最后一定有解
文件夹得递归访问
求最大公约数:辗转相除法
数组(array)是相同类型变量的集合,可以使用共同的名字引用它。数组可被定义为任何类型,可以是一维或多维。数组中的一个特别要素是通过下标来访问它。数组提供了一种将有联系的信息分组的便利方法。
注意:如果你熟悉C/C++,请注意, Java数组的工作原理与它们不同。
1、数组不是集合,它只能保存同种类型的多个原始类型或者对象的引用。数组保存的仅仅是对象的引用,而不是对象本身。
2、数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
3、数组声明的两种形式:一、int[] arr; 二、int arr[]; 推荐使用前者,这符合Sun的命名规范,而且容易了解到关键点,这是一个int数组对象,而不是一个int原始类型。
4、在数组声明中包含数组长度永远是不合法的!如:int[5] arr; 。因为,声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。
5、在数组构造的时候必须指定长度,因为JVM要知道需要在堆上分配多少空间。反例:int[] arr = new int[];
6、多维数组的声明。int[][][] arr; 是三维int型数组。
7、一维数组的构造。形如:String[] sa = new String[5];
或者分成两句:String[] sa; sa = new String[5];
8、原始类型数组元素的默认值。对于原始类型数组,在用new构造完成而没有初始化时,JVM自动对其进行初始化。默认值:byte、short、
int、long--0 float--0.0f double--0.0 boolean--false
char--'"u0000'。(无论该数组是成员变量还是局部变量)
9、对象类型数组中的引用被默认初始化为null。如:Car[] myCar = new Car[10]; 相当于从myCar[0]到myCar[9]都这样被自动初始化为myCar[i] = null;
10、对象类型的数组虽然被默认初始化了,但是并没有调用其构造函数。也就是说:Car[] myCar = new Car[10];只创建了一个myCar数组对象!并没有创建Car对象的任何实例!
11、多维数组的构造。float[][] ratings = new float[9][]; 第一维的长度必须给出,其余的可以不写,因为JVM只需要知道赋给变量ratings的对象的长度。
12、数组索引的范围。数组中各个元素的索引是从0开始的,到length-1。每个数组对象都有一个length属性,它保存了该数组对象的长度。(注意和String对象的length()方法区分开来,这两者没有统一起来是很遗憾的。)
13、Java有数组下标检查,当访问超出索引范围时,将产生ArrayIndexOutOfBoundsException运行时异常。注意,这
种下标检查不是在编译时刻进行的,而是在运行时!也就是说int[] arr = new int[10]; arr[100] = 100;
这么明显的错误可以通过编译,但在运行时抛出!
Java的数组下标检查是需要额外开销的,但是出于安全的权衡还是值得的,因为很多语言在使用数组时是不安全的,可以任意访问自身内存块外的数组,编译运行都不会报错,产生难以预料的后果!
数组是用来存储一组相同类型数据的数据结构
数组的定义方式:
type[] arry_name;
type array_name[];
new出来的数组应该在堆里生成
int[] arry = new int[10];每个元素都为0
在定义数组时,直接指定数组内的元素值。
充:定义一个变量,必须初始化吗?
否,以前一直以为必须要初始化,但是如果你虽定义,但却未使用,则编译,运行没有问题。
但是如果使用到了这个变量,则必须在使用前进行初始化。
所谓数组的动态初始化,就是将数组的定义与初始化分离开来。
c语言和java语言数组的差异:
在c语言中将数组作为参数,传递进来的只是数组的首地址,一般要操纵数组,还要将数组的
长度传递进来。
而java是面向对象的,将数组的引用作为参数传递进来,即可以直接对数组进行操作,可以获
得数组的长度
System.out.println(null);编译不通过。
分析:System类的静态属性out属于printStream类型,该类的println方法,可以接受基本数据类型,接受String和Object类型,而null表示空引用,没有显式指明它的类型。
System.out.println((String)null);
System.out.println((Object)null);
多维数组:
静态:int[ ][ ] a = {{1,2},{3,4}};
错误写法:int[2][2] a = {{1,2},{3,4}};
动态:java中的多维数组的声明和初始化应按从高维到低维的顺序进行。
int[ ][ ] b = new int[3][ ];
a[0]=new int[2];
a[1]=new int[3];
a[2]=new int[4];
int t[ ][ ] = new int[ ][4];//非法
用数组完成堆栈的模拟实现。
看到了讲解null的文章,我觉的以下这点很重要。
容器类型与nullList:允许重复元素,可以加入任意多个null。Set:不允许重复元素,最多可以加入一个null。Map:Map的
key最多可以加入一个null,value字段没有限制。数组:基本类型数组,定义后,如果不给定初始值,则java运行时会自动给定值。引用类型数
组,不给定初始值,则所有的元素值为null。
List list = new ArrayList();
list.add(null);
list.add(null);
System.out.println(list.size());
//输出结果为2
分享到:
相关推荐
Java中数组实例---一维数组.pdf 学习资料 复习资料 教学资源
Java中数组实例---求数组元素的最大值.pdf 学习资料 复习资料 教学资源
Java中数组实例---冒泡排序.pdf 学习资料 复习资料 教学资源
数组 的定义,创建,访问,长度属性,遍历,常用Arrays类 二维数组,方法递归调用经典案例 变量源码教程
Java基础复习笔记01数组,内存形式,父子,内存控制。
Java基础复习笔记01数组_内存形式_父子_内存控制
Java中使用数组完成学生成绩统计的多种实现代码清单.pdf 学习资料 复习资料 教学资源
Java数组操作方法总结2.pdf 学习资料 复习资料 教学资源
Java基础复习笔记04数据结构-线性表。
一、 判断题 1、 无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,...4、 与C语言不同的是,Java语言中的数组元素下标总是从1开始。 ( N ) 5、 在Java的方法中定义一个常量要用const关键字。 ( N )
这是一份初学者必看的java基础知识大全,里面包含了最基本的java基础知识,适合学习java的初学者和想要复习java基础的同学。另外Java基础知识总结 - 超详细篇PDF,非常详细的介绍了Java基础,内容非常精炼全面,需要...
复习:方法定义的语法 数组作为方法的形参 修饰符 返回值类型 方法名(参数列表){ //方法体 } 基本类型 引用类型 基本类型 引用类型 任务:编写方法实现下列一维数组的基本操作 数组作为方法的形参 任务1、使用...
数组复习(共19页).ppt 优质java课件 java程序设计教程(第6版)08.继承(共14页).ppt 优质java课件 java程序设计教程(第6版)09.多态性(共41页).ppt 优质java课件 java程序设计教程(第6版)10.异常(共56页)...
JavaAdvance复习题汇总 1.java语言提供处理不同类型流的类的包是(D) a)java.sql b) java.util c) java.math d) java.io 2.不属于java.io包中的接口的一项是(C) a)DataInput b) DataOutput c) DataInputStream d)...
复习:二维数组元素引用 数据类型 数组名[行标][列标] //行标与列标都不能越界 x[1][2] = 10; //表示将10放入x[1][2]元素中 System.out.println(x[1][2]); x[0][0] x[0][1] x[0][2] x[0][3] x[0][4] x[1][0] x[1][1]...
数组复习(共19页).ppt 优质java课件 java程序设计教程(第6版)08.继承(共14页).ppt 优质java课件 java程序设计教程(第6版)09.多态性(共41页).ppt 优质java课件 java程序设计教程(第6版)10.异常(共56页)...
ArrayList() 会使用长度为零的数组 ArrayList(int initialCapacity) 会使用指定容量的数组 public ArrayList(Collection<? extends E> c) 会使用 c 的大小作为数组容量 add(Object o) 首次扩容为 10,再次扩容为上次...
Java数据类型在Java的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。
突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn 《Java基础复习》—常识与入门 一、Java语言的知识体系图 分为三部分 编程语言核心结构:变量、基本语法、分支、循环、数组 ...
Java数组操作方法总结1.pdf 学习资料 复习资料 教学资源