1 面向对象和面向过程的区别

  • 面向过程 :面向过程性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源。所以当性能是最重要的考量因素的时候,比如 单片机,嵌入式开发,Linux/Unix等一般采用面向过程开发。

  • 面向对象:面向对象易维护、易复用、易扩展。因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活, 更加易于维护。但是性能比面向过程低。

2 Java语言有哪些特点

  • 简单易学
  • 面向对象 封装 继承 多态
  • 平台无关性 Java虚拟机实现与平台无关
  • 可靠性
  • 安全性
  • 支持多线程(C++没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程序设计)
  • 支持网络编程并且方便(Java语言诞生本身就是为了简化网络编程设计)
  • 编译与解释共存

3 关于JVM JDK JRE的区别

JVM

Java虚拟机(JVM)是运行Java字节码的虚拟机,JVM有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们会给出相同的结果。 Java程序从源代码到运行的过程 .java文件(源代码)通过JDK中的javac编译成.class文件(JVM可理解的Java字节),JVM通过解释器解释为机器可执行的二进制机器码

JDK

JDK是Java Development Kit,它是功能齐全的Java SDK。拥有JRE拥有的一期,还有编译器(javac)和工具(javadoc和jdb).能够创建和编译程序

JRE

JRE是Java运行环境,是运行已编译Java程序所需的所有内容的集合。包括Java虚拟机(JVM),Java类库,java命令和其他的一些基础构件,但是,不能用于创建新程序。

4 OracleJDK和OpenJDK的对比

问: OpenJDK存储库中的源代码与用于构建OracleJDK的代码之间有什么区别?

答: 非常接近。OracleJDK版本构建过程基于OpenJDK构建,只添加了几个部分,例如部署代码,其中包括Oracle的Java插件和Java WebStart的实现,以及一些封闭的源代码派对组件, 如图形光栅化器,一些开源的第三方组件,如Rhino,以及一些零碎的东西,如附加文档或第三方字体。展望未来,我们的目的是开源Oracle JDK的所有部分,除了我们考虑商业功能的部分

总结

  • 1 OracleJDK版本将每三年发布一次,而OpenJDK每三个月发布一次

  • 2 OpenJDK 是一个参考模型并且是完全开源的,而OracleJDK是OpenJDK的一个实现,并不是完全开源的

  • 3 OracleJDK比OpenJDK更稳定,OpenJDK和OracleJDK的代码几乎相同,但是OracleJDK有更多的类和一些错误修复。 开发企业/商业软件,建议选择OracleJDK

  • 4 在响应性和JVM性能方面,OracleJDK和OpenJDK相比提供了更好的性能

  • 5 OracleJDK不会为即将发布的版本提供长期支持,用户每次必须通过更新到最新版本获得支持来获取最新版本

  • 6 OracleJDK根据二进制代码许可协议获得许可,而OpenJDK根据GPL v2 许可获得许可。

5 Java和C++的区别

  • 都是面向对象的语言,支持封装、继承、多态

  • Java不提供指针来直接访问内存,程序内存更加安全

  • Java的类是单继承的,C++支持多重继承,虽然Java的类不可以多继承,但是接口可以多继承

  • Java有自动内存管理机制,不需要程序员手动释放无用内存

6 什么是Java程序的主类,应用程序和小程序的主类有何不同

一个程序中可以有多个类,但只能有一个类是主类,在Java应该程序中,这个主类是指包含main()方法的类。

而在Java小程序中,这个主类是一个继承自系统类JApplet或Applet的子类。应用程序的主类不一定要求是public类,但是小程序的主类要求必须是public类。

主类是Java程序执行的入口点。

7 Java应用程序与小程序之间有哪些差别?

简单说应用程序是从主线程启动,也就是main()方法。applet小程序没有main()方法,主要是嵌在浏览器页面上运行 调用init()或者run()来启动。嵌入浏览器和flash的小游戏类似。

8 字符型常量和字符串常量的区别

  • 1、形式上:字符串常量是单引号引起的一个字符;字符串常量是双引号引起的若干个字符

  • 2、含义:字符串常量相当于一个整型值(ASCII值);字符串常量代表一个地址值(该字符串在内存中存放位置)

  • 3、占内存大小:字符串常量只占2个字节;字符串常量占若干个字节(至少一个字符结束标志)(注意,char在Java中占两个字节

JAVA编程思想第四版:2.2.2节 java


参考资料