java基础复习(6)

充:
java中有包名的类无法引用默认包中的类。但是1.2或1.3的jdk却可以编译。新版的jdk已经禁止了这一行为,这样就强制了必须将引用类置于某个包中,形成清晰地组织结构。所以在以后的编程中最好给类指定包。


java方法遵从值传递,无法提供一个方法交换两个数值,因为在传递参数时,做的时值拷贝,

对实参没效果的。

方法:


int j=0,k=0;
j=j+k;
k=j-k;
j=j-k;


这种方法没有利用自己提供的临时变量,但有可能在计算j+k时溢出。还有在转换为汇编时,仍然会产生临时变量,其实没有提高效率。也可以利用异或运算来进行交换。


Date类的大部分方法已过时。已由Calendar实现。

 

汉诺塔 递归问题
递归的条件:
1,面对的问题形式类似
2,化简到最后一定有解

文件夹的递归访问
求最大公约数:辗转相除法

 

数组是用来存储一组相同类型数据的数据结构


数组的定义方式:
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);

 

 

你可能感兴趣的:(java,jdk,数据结构,编程,J#)