2017/9/28 Java笔记,2017java
2017/9/28 Java笔记,2017java
一、Java基础知识
1、Java与c++有什么异同?
(1)Java为解释型语言,运行过程是:程序源代码经过编译器编译成字节码,然后由JVM执行。C++为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此Java执行效率低,但Java可以跨平台执行,C++不可以。
(2)Java为纯面向对象语言,C++兼具面向对象和面向过程的特点
(3)Java没有指针,Java不支持多重继承,不提供goto语句。Java具有平台无关性,即对每种数据类型都分配固定长度,而C++在不同平台对同一数据类型会分配不同字节数。
2、Java程序初始化的顺序是怎样的?
实例化对象时,所有成员变量初始化结束后才会调用构造函数
执行顺序:父类静态变量,父类静态代码块,子类静态变量,子类静态代码块,父类非静态变量,父类非静态代码块,父类构造函数,子类非静态变量,子类非静态代码块,子类构造函数
3、Java中的作用域有哪些
成员变量的作用域:
public 当前类 同一包 其他包 其他包子类
protected 当前类 同一包 其他包子类
default 当前类 同一包
private 当前类
4、为什么Java中有些接口没有任何方法?
没有任何方法声明的接口又被叫做标识接口,充当标识的作用,用来表明实现它的类属于一个特定的类型。
instanceof 判断是否是某类或其父类的对象
5、反射机制
Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。
Class下的newInstance()的使用有局限,因为它生成对象只能调用无参的构造函数,而使用
new关键字生成对象没有这个限制。 简言之:newInstance(): 弱类型,低效率,只能调用无参构造。new: 强类型,相对高效,能调用任何public构造。Class.forName(“”)返回的是类。Class.forName(“”).newInstance()返回的是object
获得class类的方法:
(1)Class.forName(" ")
(2)类名.Class
(3)实例.getClass()
相关文章
- 暂无相关文章
用户点评