文章目录
- 编译原理
- Java基本类型
- 方法
- 数组
编译原理
- Java的特点
- 跨平台
Hello.java (javac.exe 解释器执行?)-> Hello.class 编译后的字节码文件(java.exe java虚拟机执行) ->运行 - JDK和JRE和虚拟机
JDK:java develop kit
JRE: java run environment - 面向对象
不允许多继承,可以多接口
Java基本类型
- 基本数据类型和引用数据类型
- 常用类型转换
- 字符串转为int
String a = "123";
Integer.parseInt(a);
- 字符串转换为double
String a = "123";
Double.parseDouble(a);
- 其他转换为String
方法
- 方法重载 overload
方法签名:
根据arg的不同,invoke不同的方法
public static int max(int num1,int num2){...}
public static double max(double num1,double num2){...}
- 歧义调用
public static double max(double num1,int num2){...}
public static double max(int num1,double num2){...}
//调用
max(2,3) //调用哪个更好呢,有歧义,编译错误
数组
- 声明和创建
double[] myList = new double[100];
double[] myList1 = new double[]{1,2,3};
myList其实是一个reference,引用,存储的是整个数组空间的首地址
数组长度一旦定了就不变,用length获取长度
- 数组初始化
对于C
局部的数组,元素是随机分配
对于Java
int[] a = new int[5];
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
数组创建后,元素被赋默认值:
数值型:0
char型:"\u0000"
boolean型:false
- 数组遍历
foreach - 复制数组
- Arrays方法
//快排
Arrays.sort(b);
//折半查找
Arrays.binarySearch(b,x); //返回x在b中的下标
//判断相等(长度和内容相等)
Arrays.equals(a,b)
//转为字符串
Arrays.toString(a) //否则直接输出a是它的数组空间首地址
- 二维数组
不规则数组
C中二维数组只能是一个类似矩阵的,每行的列数相等
Java中则每行可以不规则长度