1.Java有哪些特性和优点:
(1)Java是面向对象语言。这句话什么意思呢,因为在JVM内部,原始类型及其他类型都会被当做对象进行处理。
(2)平台无关性(可移植性)。一次编译,到处执行,这也得益于JVM。
(3)较好的健壮性和安全性。
2.Java与其他语言的比较:
(1)与C/C++比较:他们都是面向对象的编程语言,具有面向对象的三大特性,封装继承多态。
Java是一种解释型语言(也是编译型,这个各个的看法不同),Java经过编译,在JVM中解释执行,而C++则是编译字节码由机器执行。
Java有一套垃圾自动回收机制,而C++需要通过开发人员管理内存空间,回收垃圾等处理。
Java没有指针,只有对象的引用,而C++中包括指针,Java就避免了指针引起的系统问题,更加安全。
(2)与Python比较:Python也是一种解释型语言,但Python的效率比Java低。
Java是静态语言,而Python是动态语言,或者说是脚本语言。
3.Java虚拟机
Java虚拟机是一个可执行Java字节码的虚拟机进程。
Java源文件通过编译器编译成字节码文件,然后交由JVM执行。
4."static"关键字
static 关键字表明一个成员变量或者成员方法可以在没有所属累的实例变量下被访问。
静态变量为所有对象所共享,即创建一个新的对象时,static修饰的变量会被共享。例如:static int m = 10;
A a = new A();改变m的值时,A b = new B();这时b中取m的值,那么m就为通过a调用执行后的值,而不是一个初始值10。
5.重载(overload)与覆盖(override)
重载是在一个类中,方法名及返回值相同,参数类型不同,这些方法构成重载。构造函数的重载也是函数名相同,参数个数不同就调用不同的构造方法。
覆盖(重写)是子类继承覆写,重写父类的方法,所以就必须保证方法名返回值参数都要相同,只是里面的实现不同。
6.抽象类与接口
抽象类
1.抽象类中可以构造方法2.抽象类中可以存在普通属性,方法,静态属性和方法。3.抽象类中可以存在抽象方法。4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。接口
1.在接口中只有方法的声明,没有方法体。2.在接口中只有常量,因为定义的变量,在编译的时候都会默认加上public static final3.在接口中的方法,永远都被public来修饰。4.接口中没有构造方法,也不能实例化接口的对象。5.接口可以实现多继承6.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法则实现类定义为抽象类。