1基本概念
1.1java语言有哪些优点
1)java为纯面向的语言
2)平台无关性,在任何平台上都能正确的运行代码
3)java内置了很多库,通过这些库,能简化开分人员的程序设计工作
4)提供对web开发的支持
5)有着良好的案情uanxing和健壮性
6)java是通过c++语言改进并重新设计而来的人
1.2java与C和C++有什么异同点
java和C++都是面向对象语言。都是用了面相对象思想,比如封装,继承,多态
需要注意的是·二者的区别
1)java为解释型语言,运行过程为源代码通过java编译器产生字节码,然后由JVM解释执行,而C是编译型语言,源代码经过编译和连接之后就生成了可以执行的二进制代码,所以java执行速度更慢,但是可以跨平台执行
2)java为春面向对象语言,所有的代码都要在类中实现,而C++可以设置全局函数
3)java没有指针
4)java不支持多重继承,只能用接口实现
5)java不需要考虑对象要占用的内存空间如何分配,用finalize方法就可以
1.3为什么需要public static void main(String[] args)
JVM运行时,首先是查找main方法并且执行,而要执行一个类的方法,就需要先实例化一个类的对象,然后通过对象来调用方法。但是由于main是程序的入口方法,所以不需要实例化
另外,main方法的前面修饰符顺序可以调换,而每个类都可以声明main方法.,但是只有与文件名相同的main方法才会被认定为入口方法。‘’
1.4静态块
如果在main方法之前通过静态块声明的东西,静态块在类加载之前就会被调用,例如在主方法前面加上static{
System.out.println("111"}这样的话,这个静态块也会在主方法调用前被实现。
并且要知道,静态块在程序中(同样的)只能被执行一次。
1.5实例化对象
1)首先,所有的成员变量都要进行初始化
2)调用构造函数
初始化原则
1)静态优先于非静态
2)父类优先于子类
3)按照定义顺序
顺序;父类静态变量 父类静态块 子类静态变量 子类静态块 父类静态变量 父类非静态块 父类构造函数
子类的同上
1.6构造函数
1)构造函数必须与类的名字相同,而且不能有返回值
2)每个类可以有很多个构造函数
3)构造函数可以有多个参数
4)构造函数一般会与new一起调用
5)构造函数不能被继承,因此不能被覆盖,但是构造函数能够被重载
6)子类可以通过super关键字进行显示的调用父类的构造函数
另外记得constructor是构造器即构造函数体
调用构造函数的情况是这样的Class c=new Class();
1.7java的反射机制
java的反射机制提供的功能有:得到一个对象所述的类,获取一个类的所有成员变量和方法,在运行时候进行创造对象,在运行时调用创造的方法,这个是关键所在
在反射机制中,比较重要的是class类,如何获取class类
1)class.forName();
2)类名.class
3)实例.getClass();
java常见的创建对象方式有以下几种
1)通过new进行实例化对象
2)通过反射机制进行创建对象
3)clone创建
4)反序列化创建
1.8new和newinstance区别
newinstance,只要是继承一个类,换用其他类的名称也可以
换句话说,从JVM上面理解,newinstance要对类进行加载,而且要进行连接
具体格式如下
Class c=Class.forName("Sub");
Base b=(Base)c.newInstance();
b......;
此时调用的是sub类的对象