什么是java
Java是一门面向对象的语言,不仅吸收了C++的各种有点,还舍弃了C++里面难以理解的多继承和指针等概念。Java作为静态面向对象编程语言的代表,很好的表现出面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
JDK1.5之后的三大版本
- Java SE(J2SE,Java 2 Platform Standard Edition,标准版),它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用 Java 应用程序。包含了支持 Java Web 服务开发的类,并未为 Java EE 和 Java ME 提供了基础。
- Java EE(J2EE,Java 2 Platform Enterprise Edition,企业版),它帮助开发和部署可移植、健壮、可伸缩且安全的服务端 Java 应用程序。它提供了 Web 服务、组件服务、管理和通信 API,可以用来实现企业级的面向服务体系机构(service-oriented architecture,SOA)和 Web2.0 应用程序。
- Java ME(J2ME,Java 2 Platform Mirco Edition,微型版),它是为在移动设备和嵌入式设备(如手机、打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多可以内置的网络协议以及可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本级功能。
JVM、JRE 和 JDK 的关系
- JVM(Java Virtual Machine)是 Java 虚拟机,Java 程序要运行在虚拟机上,但不同平台拥有不同的虚拟机,所以Java语言可以实现跨平台。
- JRE(Java Runtime Environment)包括 Java 虚拟机和 Java 程序需要的核心库等。核心库主要是Java.lang 包:包含了运行 Java 程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包。如果只想要运行一个开发好的 Java 程序,计算机只需要安装 JRE 即可。
- JDK(Java Development Kit)是提供给开发人员使用的,其中包含了 Java 的开发工具,也包括了 JRE。
- 总结,JDK>JRE>JVM
字节码
- 介绍:Java 源代码经过虚拟机编译后产生的文件(.class),只面向虚拟机。
- 好处:在一定程度上解决了传统解释型语言执行效率低的问题,同时有保存了它的可移植性。
- 过程:
Java源代码 - - - > 编译器 - - - > jvm 可执行的 Java 字节码 - - - > jvm - - - > jvm 中解释器 - - - > 机器可执行的二进制机器码 - - - >程序运行
Java 和 C++ 的区别
- 都是面向对象语言,都支持 封装性、继承、多态。
- Java 不提供指针来直接访问内存,内存更安全。
- Java 的类是单继承,C++ 支持多继承;但是 Java 的接口弥补了单继承的局限性。
- Java 有自动内存管理机制,不需要程序员手动释放无用内存。
参考:https://thinkwon.blog.csdn.net/article/details/104390612,https://www.bilibili.com/video/BV1Kb411W75N?from=search&seid=12153546638638215026&spm_id_from=333.337.0.0