什么是Java?
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
JKD1.5之后的三大版本
Java SE(J2SE,Java 2 Platform Standard Edition,标准版) | Java EE(J2EE,Java 2 Platform Enterprise Edition,企业版) | Java ME(J2ME,Java 2 Platform Micro Edition,微型版) |
---|---|---|
允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为Java EE和Java ME提供基础 | 企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web2.0应用程序 | Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能 |
JVM、JRE和JDK的关系
JVM | 是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台 |
---|---|
JRE | Java虚拟机和Java程序所需的核心类库等。核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等 |
JDK | 是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。所以安装了JDK, 就无需再单独安装JRE了;其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等 |
什么是跨平台性?原理是什么?
跨平台性是指软件能够在不同的操作系统和硬件平台上运行的能力。
Java具有跨平台性是因为Java字节码可以在不同的操作系统和硬件平台上运行,而不需要对字节码进行修改,这是Java虚拟机(JVM)的工作。
Java的跨平台原理是基于Java虚拟机(JVM)的,Java编译器将Java源代码编译成Java字节码,然后Java虚拟机(JVM)将这些字节码加载到内存中,并在运行时解释执行这些字节码。由于Java虚拟机(JVM)是与平台无关的,因此Java程序可以在不同的操作系统和硬件平台上运行。
Java语言有哪些特点?
- 简单易学(Java语言的语法与C语言和C++语言很接近)
- 面向对象(封装,继承,多态)
- 平台无关性(Java虚拟机实现平台无关性)
- 支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的)
- 支持多线程(多线程机制使应用程序在同一时间并行执行多项任务)
- 健壮性(Java语言的强类型机制、异常处理、垃圾的自动收集等)
什么是字节码?
Java源代码经过编译器(例如IDEA软件)编译后产生的文件(即扩展为.class的文件),它不面向任何特定的处理器,只面向虚拟机
采用字节码的最大好处是什么?
跨平台性 | Java字节码是一种中间语言,可以在不同的操作系统和硬件平台上运行,这使得Java具有跨平台性 |
---|---|
安全性 | Java字节码可以在运行时进行安全检查,防止程序对系统造成损害 |
高效性 | Java字节码可以通过即时编译器(JIT)在运行时进行优化,提高程序的执行效率 |
反编译困难 | Java字节码是一种二进制文件,相对于源代码来说更难以被反编译,这有助于保护程序的知识产权 |
动态性 | Java字节码可以在运行时动态生成和加载,这使得Java具有更强的动态性和灵活性 |