JDK JRE JVM的解释
JDK Java Develepment Kit-Java开发工具包-JRE+开发工具,开发java程序的最小环境
JRE Java Runtime Environment-java运行时环境 JVM+运行java所必须的环境 运行java程序的最小环境
JVM java虚拟机 Java Virtual Machine 负责加载.class并运行.class文件
JVM 将Java代码转换为对应的操作系统可以理解的指令,不同的操作系统有不同虚拟机与之对应,同一段代码交给虚拟机后,虚拟机再转化给操作系统
什么是将java代码翻译成当前操作系统所理解的指令?
指的就是编译的过程,将.java文件编译成.class字节码文件,编译完成会产生一个.class文件,这个文件被称为字节码文件,操作系统看到指令文件就是字节码文件。
JAVA语法基础
标识符
由字母数字下划线,美元符组成,不能以数字开头,严格区分大小写,命名反应其作用,标识符不能是关键字。
数据类型
变量申请内存来储存值,内存管理系统根据变量类型来分配存储空间,分配的空间只能用来存储该类型的数据
1 Byte=8 bits(1字节=8位)1 KB = 1024Bytes
1 MB = 1024 KB 1 GB = 1024 MB
引用类型
引用类型是一个对象类型,值是指向内存空间的引用,就是地址,指向的内存中保存着变量所表示的一个值或一组值,比如类,接口,数组
基本类型的类型转换
从小到大,隐式转换,直接使用
从大到小,显式转换,强制类型转换
byte,short,char三种比int小的整数,运算时会先自动转换成int
前缀式:++a --a,先改变变量的值,再使用
* 后缀式: a++ a--,先使用,再改变变量的值
int c = 0; System.out.println(--c-c-c--);// -1-(-1)-(-1)=1 System.out.println(c);(-1)-1=-2
方法的重载
方法的重载是指在一个类中定义多个同名的方法,每个方法的参数列表不同(参数个数不同,类型不同,顺序不同),程序在调用方法时,可以通过传递给她们的不同个数和类型的参数来决定具体调用哪个方法
break以后的循环体中的语句不会继续执行,循环体外的会执行
注意如果是嵌套for循环,在内层循环遇到了break,只会跳出当前这一层内循环哦
continue后本轮循环体中的语句不会继续执行,但是会继续执行下轮循环,循环体外的也会执行
创建数组
int[] a=new int[5];
int[] a={1,2,3,4,5};
int[] a=new int[]{1,2,3,4,5};
Arrays.sort(数组)
对数组进行排序,对于基本类型的数组使用的是优化后的快速排序算法,效率高
对引用类型数组,使用的是优化后的合并排序算法
Arrays. copyOf(数组,新的长度)
指定首尾截取数组中的元素 Arrays.copyOfRange(数组,start,end)
/*冒泡排序*/
public class one {
public static void main(String[] args) {
int[] num = {1, 2, 3, 4, 5,10,9,8,7,6};
int[] num1 = {1, 2, 3, 4, 5,10,9,8,7,6};
System.out.println(Arrays.toString(paixu(num)));
Arrays.sort(num1);
System.out.println(Arrays.toString(num1));
}
public static int[] paixu(int[] nums){
for (int i=0;i<nums.length;i++){
for (int j=0;j<nums.length-1-i;j++){
if (nums[j]>nums[j+1]){
int t;
t=nums[j];
nums[j]=nums[j+1];
nums[j+1]=t;
}
}
}
return nums ;
}
}
面向对象的三大特征
1.封装:把相关的数据封装成一个类属性
2.继承:是子类自动共享父类属性和方法。这是类之间的一种关系
3.多态:增强软件的灵活性和重要性