您的位置:首页 > 职场人生

面试宝典第四章Java基础知识——4.1基本概念

2018-03-17 20:22 513 查看
4.1.2——java和C/C++有什么异同

1.java为解释型语言,其运行过程为程序源代码经过Java编译器编译生成字节码,然后由JVM解释运行,而C/C++为编译型语言,源代码进过编译后生成可执行的二进制代码,因此java的执行速度比C/C++慢,但是java可以跨平台执行,C/C++不行

2.java为纯面向对象语言,所有的代码(包括函数,变量等)必须在类中实现,除基本类型外,所有的类型都是类。此外,java语言中不存在全局变量或者全局方法,而C/C++兼具面向对象和面向过程编程的特点,可以定义全局变量和全局函数

3.与C++语言相比,java语言中没有指针的概念,这样有效防止类C/C++语言中操作指针可能引发的系统问题,从而使程序变得更安全

4.与C/C++语言相比,java语言不支持多继承,但是java语言引入的接口这一概念,可以同时实现多个接口,由于接口也具有多态特性,因此在java语言中可以实现多个接口来实现C++语言中多重继承的功能

5.在C++语言中,需要开发人员去管理对内存的分配(包括申请和释放),而java语言提供了垃圾回收器来实现垃圾的自动回收,不需要程序的显式的管理内存的分配,在C++语言中,通常会把释放资源的代码放到析构函数中,java语言中虽然没有析构函数,但是却引入了一个finalize()方法,当垃圾回收器级那个要释放无用对象的内存的时候,会首先调用该对象的finalize()方法,因此研发人员不需要关心也不需要知道对象所占的内存空间何时会被释放

4.1.3——main方法

1.main方法可以被final和synchronized修饰,但是不可以被abstract修饰

2.同一个文件中可以有多个main()方法,每个类都可以有自己的mian方法,但是只有与文件名同名的那个main方法才会作为整个程序的入口

4.1.5——java程序的初始化

1.类的加载先于类的初始化,类的加载是父类先于子类的,如果main()方法在单独的一个类中,那这个类先被加载

4.1.7——一个java文件能否定义多个类

1.一个java文件可以定义多个类,但是最多只能有一个类被public修饰,并且这个类的类名必须与文件名相同,如果这个文件中没有public的类,那么文件名是随便一个类的名字即可

4.1.9——为什么java中有些接口没有任何方法

1.在java语言中,有些接口内部没有声明任何的方法,也就是说,实现这些接口的类不需要重写任何的方法,这些没有任何方法声明的接口又被叫做标识接口,标识接口仅仅充当一个标识作用,用来表明实现它的类属于一个特定的类型,比如java类库中已经存在的标识接口有Cloneable和Serializable等

Clonealbe:此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。

Serializable:类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐