编程是什么?
编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并得到结果的过程。
Java是什么?
Java是一门面向对象的编程语言,由Sun Microsystems于1995年推出。Java是一种面向对象的编程语言,具有跨平台的特性,可以在不同的操作系统上运行。Java语言的特点包括:简单易学、面向对象、跨平台、安全性高、可靠性高、可移植性强等。Java语言广泛应用于企业级应用开发、移动应用开发、游戏开发、Web应用开发等领域。
jdk1.5之后的版本
- Java SE(J2SE,Java 2 Platform Standard Edition,标准版)
Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为Java EE和Java ME提供基础。 - Java EE(J2EE,Java 2 Platform Enterprise Edition,企业版)
Java EE 以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web2.0应用程序。2018年2月,Eclipse 宣布正式将 JavaEE 更名为 JakartaEE - Java ME(J2ME,Java 2 Platform Micro Edition,微型版)
Java ME 以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。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开发人员使用的,其中包含了Java的开发 工具,也包括了JRE。所以安装了JDK,就无需再单独安装JRE了。其中的开发工 具:编译工具(javac.exe),打包工具(jar.exe)等
简而言之:
JVM:Java虚拟机
JRE=JVM+核心类库
JDK=JRE+开发工具
什么是跨平台性?原理?
跨平台性:一次编译,可在多个系统平台运行
实现原理:通过JVM(Java虚拟机)在系统平台上运行,系统平台安装相关的JVM即可
代码实现简易过程:
Java源代码---->编译器---->jvm可执行的Java字节码(即虚拟指令)---->jvm---->jvm中 解释器----->
机器可执行的二进制机器码---->程序运行
Java语言特点?
- 简单易学(Java语言的语法与C语言和C++语言很接近)
- 面向对象(封装,继承,多态)
- 平台无关性(Java虚拟机实现平台无关性)
- 支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的)
- 支持多线程(多线程机制使应用程序在同一时间并行执行多项任)
- 健壮性(Java语言的强类型机制、异常处理、垃圾的自动收集等)
- 安全性
什么是字节码?
- 字节码:Java源代码经过虚拟机编译器编译后产生的文件(即扩展为.class的文 件),它不面向任何特定的处理器,只面向虚拟机。
- 采用字节码的好处:
Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的 问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效, 而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可 在多种不同的计算机上运行。 - java中的编译器和解释器:
编译器:面对JVM,将代码编译成jvm可执行的Java字节码(即虚拟指令)
解释器:将虚拟指令翻译成特定机器上的机器码,然后在特定的机器上运行
所以Java的特点之一:编译与解释并存
什么是Java程序的主类?应用程序和小程序的主类有何不同?
一个程序中可以有多个类,但只能有一个类是主类。在Java应用程序中,这个主 类是指包含main()方法的类。
而在Java小程序中,这个主类是一个继承自系统 类JApplet或Applet的子类。应用程序的主类不一定要求是public类,但小程序 的主类要求必须是public类。主类是Java程序执行的入口点。
Java应用程序与小程序之间有那些差别?
简单说应用程序是从主线程启动(也就是main()方法)。applet小程序没有main 方法,主要是嵌在浏览器页面上运行(调用init()线程或者run()来启动),嵌入浏览器这点跟flash的小游戏类似。
Java和C++的区别
相同点:面向对象的语言,都支持封装、继承和多态
区别:
- Java不提供指针来直接访问内存,程序内存更加安全
- Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,但是 接口可以多继承。
- Java有自动内存管理机制,不需要程序员手动释放无用内存