1. 八种基本数据类型,3种引用数据类型:类、接口、数组;
基本数据类型(除了boolean)的转换:有小到大是自动转换:byte→short(char)→int→long→float→double
大到小要强制转型: (转换到的类型)需要转换的值
引用类型的转换:如:Father father = new Son();//是向上转型(自动),Son son = (Son)father;//是向下转型(强制)
又如:Father father = new Father();Son son = (Son) father;//系统会抛出ClassCastException异常信息
总结:父类强制转换为子类时只有当引用类型真正的身份为子类时才会强制转换成功,否则失败。
2. 运算符:
与:所有条件同时满足
&:所有的条件都要判断
&&:短路与,如果前面的条件不满足则后面的不再判断
或:所有的条件有一个满足即可
|:所有的条件都要判断
||:当前面的条件满足时,后面的条件不再判断
左移位操作:把数值化成2进制再移位,<<
3. 方法的重载:只是根据参数类型或个数来区分的,与返回值是否相同无关。
4. 递归(在开发中容易引起内存溢出):要求计算以下程序的结果:1! + 2! + 3! + …. + 35!,求出结果。
public class Test {
public static void main(String args[]) {
double sum = 0.0;
for (int x = 1; x < 35; x++) {
sum += fun(x);
}
System.out.println(sum);
}
public static double fun(int temp) {//求temp阶乘
if (temp == 1) {
return 1;
} else {
return temp * fun(temp - 1);
}
}
}
5. 数组:就是一组相关量的集合
一维数组:
动态数组声明(初始化):数据类型 数组名称[] = new 数据类型[长度] ;(在定义各个变量的时候一定要给出变量的初始内容)
数组名称保存在栈内存中,数组的具体内容实际上都保存在了堆内存之中
静态数组的初始化:int data[] = {1,3,4,1,3,54,5,43,3,2,1,5,7,87};
数组内置排序(小到大)方法java.util.Arrays.sort(data); // 排序
如:
public class ArrayDemo11 {
public static void main(String argbs[]) {
int data[] = { 1, 3, 4, 1, 3, 54, 5, 43, 3, 2, 1, 5, 7, 87 };
java.util.Arrays.sort(data); // 排序
print(data); // int temp[] = data ;
}
public static void print(int temp[]) {
for (int x = 0; x < temp.length; x++) {
System.out.print(temp[x] + "、");
}
}
}//结果1、1、.........、87
数组的(内置)拷贝操作 如:
public class ArrayDemo12 {
public static void main(String argbs[]) {
// 最终结果,data1 是:{1,2,3,55,66,77,7,8,9}
int data1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int data2[] = { 11, 22, 33, 44, 55, 66, 77, 88, 99 };
// 系统方法:System.arraycopy(源数组,源数组开始点,目标数组,目标数组开始点,长度) ;
System.arraycopy(data2, 4, data1, 3, 3);
print(data1);
}
public static void print(int temp[]) {
for (int x = 0; x < temp.length; x++) {
System.out.print(temp[x] + "、");
}
}
}//结果:1、2、3、55、66、77、7、8、9、
二维数组:就是相当于一张表的结构
int data[][] = {{1,3,5} , {2,5} , {7,8,9,10}} ;
转载请注明原文地址: https://ju.6miu.com/read-1284175.html