(1)面向对象 (2)跨平台性 (3)可移植性 (4)安全性 (5)并发性 (6)分布式 (7)简单易用java
(1)源文件由编译器编译成字节码(ByteCode)
(2)字节码由java虚拟机解释执行数组
class A extends B;
class C extends A安全
java中不支持类的多继承,即不能同时继承多个直接父类。但接口中没有具体的实施细节,也就没有和存储空间的关联,因此能够将多个接口合并在一块儿,间接实现类间多重继承的功能。并发
final修饰的类被称为终极类,它不能被继承分布式
more:final修饰的方法被称为终极方法,若是父类中的某个方法用final修饰,则子类不能再重写该方法了,子类只能继承该方法的功能,注意:final不能被用来修饰构造函数。终极类中的方法默认是终极方法函数
重载:测试
(1)方法重载是让类以统一的方式处理不一样类型数据的一种手段。多个同名函数同时存在,具备不一样的参数个数/类型。重载是一个类中多态性的一种表现。code
(2)java的方法重载,就是在类中能够建立多个方法,他们具备相同的名字,但具备不一样的参数和不一样的定义。调用方法时经过传递给他们的不一样参数个数和参数类型来决定具体使用哪一个方法,这就是多态性。对象
(3)重载的时候,方法名要同样,可是参数类型和个数不同,返回值类型能够相同也能够不相同。没法以返回类型做为重载函数的区分标准。继承
重写:
(1)父类与子类之间的多态性,对父类的函数进行从新定义。若是在子类中定义某方法与其父类有相同的名称和参数,咱们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不须要从新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想做必定的修改,这就须要采用方法的重写。方法重写又称方法覆盖。
(2)若子类中的方法与父类中的某一方法具备相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可以使用super关键字,该关键 字引用了当前类的父类。
(3)子类函数的访问修饰权限不能少于父类的。
继承是从已有的类中派生出新的类,新的类能吸取已有类的数据属性和行为,并能扩展新的能力。
interface Animal{ abstract void run(); }
class Bird implements Animal{ } class Fish implements Animal{ }
class Bird implements Animal{ public void run(){ System.out.println("测试成功"); } } class Fish implements Animal{ public void run(){ System.out.println("测试成功"); } } public class Animaljiekou{ public static void main(String[] args){ Animal p1; p1 = new Bird(); p1.run(); p1 = new Fish(); p1.run(); } }
原理:每当产生异常时,若是没有程序进行相应的处理,则程序会中断的现象,那么此时实际上产生一个异常后,JVM会抛出一个异常类的实例化对象,若是此时使用了try语句进行补货的话,则能够进行异常处理,若是没有的话,则交给了JVM进行处理,当try语句补货到了一场以后,会与catch中的异常类型进行匹配,若是匹配成功,则使用此catch语句进行处理。
应用:简单的应用,就是在全部throws关键字的地方加入try...catch
java异常处理机制能够从两个方面来描述,当一个java程序违反了java语义的时候,JVM就会抛出一个异常,除此以外还能够自定义异常,去拓展这种语义的检查,并在合适的时机,经过throw关键字抛出异常
int array[]; array = new int[5];
数组声明之后在内存中没有分配具体的存储空间,也没有设定数组的长度
public class ReverseArray { public static void main(String[] args) { int arr[] = new int[] { 1,2,3,4,5,6,7,8,9 }; for(int i = 0; i < arr.length / 2; i++){ int temp = arr[i]; arr[i] = arr[arr.length - i - 1]; arr[arr.length - i - 1] = temp; } for (int i = 0; i < arr.length; i++) { //System.out.println(arr[i]); //每一个一行 System.out.print(" "+arr[i]); //所有一行 } System.out.println(); } }
public static int arrayIndexOf(int[] array,int key) { int min,max,mid; min = 0; max = array.length - 1; while(min <= max) { mid = (min + max) >> 1; if (key > array[mid]) { min = mid + 1; } else if (key < array[mid]) { max = mid - 1; } else { return mid; } } return min; }