Java 编程语言有以下特点。
简单: Java 很容易学习。Java 的语法基于 C++,这使得在其中编写程序更容易。
面向对象: Java 遵循面向对象的范式,它允许我们将代码维护为包含数据和行为的不同类型对象的组合。
可移植性: Java 支持随处读取一次写入的方法。我们可以在每台机器上执行 Java 程序。Java 程序 (.java) 被转换为可以在每台机器上轻松运行的字节码 (.class)。
平台无关: Java 是一种平台无关的编程语言。它不同于需要平台执行的其他编程语言,如 C 和 C++。Java 带有执行其代码的平台。Java 不依赖于要执行的操作系统。
安全: Java 是安全的,因为它不使用显式指针。Java 还提供了字节码和异常处理的概念,使其更加安全。
健壮: Java 是一种强大的编程语言,因为它使用强大的内存管理。自动垃圾收集、异常处理等概念使其更加健壮。
架构中立: Java 是架构中立的,因为它不依赖于架构。在 C 中,数据类型的大小可能会根据 Java 中不存在的体系结构(32 位或 64 位)而有所不同。
解释: Java 使用即时 (JIT) 解释器和编译器来执行程序。
高性能: Java 比其他传统的解释型编程语言更快,因为 Java 字节码“接近”本机代码。它仍然比编译语言(例如,C++)慢一点。
多线程:我们可以通过定义多个线程来编写一次处理多个任务的 Java 程序。多线程的主要优点是它不会为每个线程占用内存。它共享一个公共内存区域。线程对于多媒体、Web 应用程序等很重要。
分布式: Java是分布式的,因为它方便用户用Java创建分布式应用程序。RMI 和 EJB 用于创建分布式应用程序。Java 的这一特性使我们能够通过从 Internet 上的任何机器调用方法来访问文件。
动态: Java 是一种动态语言。它支持类的动态加载。这意味着类是按需加载的。它还支持来自其本地语言(即 C 和 C++)的函数。
Java 虚拟机是使计算机能够运行Java程序的虚拟机。JVM 就像一个运行时引擎,它调用 Java 代码中的 main 方法。JVM是必须在计算机系统中实现的规范。Java 代码由 JVM 编译为与机器无关且接近本机代码的字节码。
多种类型:
类(方法)区:类区存储每个类的结构,例如运行时常量池、字段、方法数据和方法代码。
堆:它是运行时数据区,内存被分配给对象
Stack: Java Stack 存储帧。它保存局部变量和部分结果,并在方法调用和返回中发挥作用。每个线程都有一个私有 JVM 堆栈,与线程同时创建。每次调用方法时都会创建一个新框架。框架在其方法调用完成时被销毁。
程序计数器寄存器: PC(程序计数器)寄存器包含当前正在执行的Java虚拟机指令的地址。
本机方法堆栈:它包含应用程序中使用的所有本机方法。
Java平台与其他平台有以下区别。
Java 是基于软件的平台,而其他平台可能是硬件平台或基于软件的平台。
Java 在其他硬件平台之上执行,而其他平台只能有硬件组件。
Classloader 是 JVM 的一个子系统,用于加载类文件。每当我们运行 java 程序时,它首先由类加载器加载。Java中有三个内置的类加载器。
Bootstrap ClassLoader:这是第一个类加载器,它是 Extension 类加载器的超类。它加载包含Java标准版所有类文件的rt.jar文件,如java.lang包类、java.net包类、java.util包类、java.io包类、java.sql包类等。
Extension ClassLoader:这是 Bootstrap 的子类加载器和 System 类加载器的父类加载器。它加载位于$JAVA_HOME/jre/lib/ext目录中的 jar 文件。
System/Application ClassLoader:这是扩展类加载器的子类加载器。它从类路径加载类文件。默认情况下,类路径设置为当前目录。您可以使用“-cp”或“-classpath”开关更改类路径。它也被称为应用程序类加载器。
在 Java 中,访问说明符是用于定义方法、类或变量的访问范围的关键字。在 Java 中,下面给出了四个访问说明符。
公共定义为公共的类、方法或变量可以被任何类或方法访问。
Protected Protected 可以被同一个包的类访问,也可以被这个类的子类访问,也可以在同一个类内访问。
Default Default 只能在包中访问。默认情况下,所有类、方法和变量都具有默认范围。
Private定义为私有的私有类、方法或变量只能在该类中访问。
定义为静态的方法或变量在类的所有对象之间共享。静态是类的一部分,而不是对象的一部分。静态变量存储在类区域中,我们不需要创建对象来访问这些变量。因此,在需要定义类的所有对象共有的变量或方法的情况下使用静态。
例如,在模拟学院学生集合的类中,学院名称是所有学生的共同属性。因此,学院名称将被定义为static。
在 Java 中定义包有很多优点。
包避免了名称冲突。
包提供更容易的访问控制。
我们还可以拥有在外部不可见并由包使用的隐藏类。
更容易找到相关的类。
它是一种基于对象的编程范式,对象具有在其所属的类中定义的数据和方法。面向对象范式旨在结合模块化和可重用性的优点。对象是类的实例,它们相互交互以设计应用程序和程序。面向对象范式有以下特点。
在程序设计中遵循自下而上的方法。
使用对对象数据进行操作的方法来关注数据
包括像封装和抽象这样的概念,它向用户隐藏复杂性并仅显示功能。
实现实时方法,如继承、抽象等。
面向对象范式的示例有 C++、Simula、Smalltalk、Python、C# 等。
对象是具有某种状态和行为的实时实体。在 Java 中,Object 是类的实例,实例变量作为对象的状态,方法作为对象的行为。可以使用new关键字创建类的对象。
构造函数可以定义为用于初始化对象状态的特殊类型的方法。当类被实例化时调用它,并为对象分配内存。每次使用new关键字创建对象时,都会调用该类的默认构造函数。构造函数的名称必须与类名相似。构造函数不能有明确的返回类型。
静态方法属于类而不是对象。
无需创建对象即可调用静态方法。
静态方法可以访问和更改静态变量的值。
静态方法有两个主要限制。
静态方法不能使用非静态数据成员或直接调用非静态方法。
this 和 super 不能在静态上下文中使用,因为它们是非静态的。
因为对象不需要调用静态方法。如果我们将 main 方法设为非静态,JVM 将不得不先创建它的对象,然后调用 main() 方法,这将导致额外的内存分配。
正如我们所知,静态上下文(方法、块或变量)属于类,而不是对象。由于仅在创建对象时才调用构造函数,因此将构造函数设为静态是没有意义的。但是,如果您尝试这样做,编译器将显示编译器错误。
在Java中,如果我们将抽象方法设为静态,它将成为类的一部分,我们可以直接调用它,这是不必要的。调用未定义的方法是完全没有用的,因此是不允许的。
此关键字有以下用途。
this可用于引用当前类实例变量。
this可用于调用当前类方法(隐式)
this()可用于调用当前类的构造函数。
这可以作为方法调用中的参数传递。
this可以在构造函数调用中作为参数传递。
this可用于从方法返回当前类实例。
下面给出了在 Java 中使用继承的各种优点。
继承提供代码可重用性。派生类不需要重新定义基类的方法,除非它需要提供方法的具体实现。
不使用继承就无法实现运行时多态性。
我们可以使用实时对象模拟类的继承,这使得 OOP 更加真实。
继承提供数据隐藏。基类可以通过将其设为私有来隐藏派生类的一些数据。
没有继承就无法实现方法覆盖。通过方法覆盖,我们可以给出基类包含的一些基本方法的具体实现。
super关键字有以下用途。
super 可用于引用直接父类实例变量。
super 可用于调用直接父类方法。
super() 可用于调用直接父类构造函数。
this 和 super 关键字有以下区别。
super 关键字始终指向父类上下文,而 this 关键字始终指向当前类上下文。
super 关键字主要用于在派生类构造函数中初始化基类变量,而 this 关键字主要用于在传入类构造函数时区分局部变量和实例变量。
super 和 this 必须是构造函数中的第一条语句,否则编译器会抛出错误。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习