Java概述

    科技2022-07-12  126

    什么是Java

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

    JVM,JRE和JDK的关系

    JVM Java VirtualMachine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台。 Java虚拟机(JVM:Virtual Machine):解释执行Java字节码的虚拟计算机。 (1)与操作系统有关 (2)包括指令集、寄存器、栈、无用单元收集堆、方法区域。 指令集:单字节的操作符,操作数。 寄存器:存储运行状态:计数器、指针、数值 栈:局部变量区、运行环境区、操作数区 堆:运行数据区,类的对象从中分配空间 方法区域:保存方法代码(编译后的代码JRE Java Runtime Environment包括Java虚拟机和Java程序所需的核心类库等。核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省(默认)加载这个包,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。JDK Java Development Kit是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。所以安装了JDK,就无需再单独安装JRE了。其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等 JDK结构: bin:可执行文件;lib:类库及支持文件;jre:虚拟机;demo:示例;include:头文件、接口;src:源代码。

    跨平台性的原理

    所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。 代码编译后生成与计算机硬件及操作系统无关的字节码,可在任何平台上运行,如DOS,Windows,Unix,Mac 实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。

    语言特点

    简单易学(Java语言的语法与C语言和C++语言很接近)

    面向对象(除了基本数据外,皆是对象,以类的形式阻止代码,由类定义对象的各种属性和行为。封装,继承,多态)

    平台无关性(Java虚拟机实现平台无关性)

    支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的)

    支持多线程(多线程机制使应用程序在同一时间并行执行多项任,可以并行处理多项任务。)

    健壮性(Java语言的强类型机制、异常处理、垃圾的自动收集等)

    安全性(实时内存分配防止程序员直接修改物理内存,通过验证器对字节码检验防止非法代码植入)

    分布式:数据分布:数据可以分布在不同主机上,使用URL访问。操作分布:提供网络应用编程类库,可以调用远程方法RMI。

    内存管理机制:自动垃圾回收机,减少内存管理出错

    什么是字节码?

    字节码:Java源代码经过虚拟机编译器编译后产生的文件(即扩展为.class的文件),它不面向任何特定的处理器,只面向虚拟机。

    采用字节码的好处:

    Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行。

    Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行,这就是上面提到的Java的特点的编译与解释并存的解释。

    Java源代码---->编译器---->jvm可执行的Java字节码(即虚拟指令)---->jvm---->jvm中解释器----->机器可执行的二进制机器码---->程序运行。

    .Java文件和.class文件的区别

    .java文件是源文件,也就是我们自己写的代码。

    .class文件是虚拟机编译得到的,虚拟机需要把我们写的.java文件编译成它可执行的字节文件。

    三个技术平台:Java SE、Java EE、Java ME。

    JSE(Standard):Java的核心,普通桌面和商务应用。JEE(Enterprise):企业级应用解决方案,基于SE,主要包括JSP、Servlet、JavaBean、EJB和WebService。JME(Micro):移动设备和嵌入式设备应用程序解决方案。图形用户界面、安全性模型、内置协议。

    语言平台

    四个开发平台:NetBeans、Eclipse、IDEA、JBuilder。 开发平台发展历程: 1995,命令行开发环境CLEs 1996-2000,集成开发环境IDEs 2001-2004,扩展开发环境XDEs 2005至今,协同开发环境CDEs

    Java和C++的区别

    都是面向对象的语言,都支持封装、继承和多态 Java不提供指针来直接访问内存,程序内存更加安全 Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,但是接口可以多继承。 Java有自动内存管理机制,不需要程序员手动释放无用内存 今天就这么多!

    Processed: 0.013, SQL: 8