主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
Java

Java 基础

Java 主页
Java 概述
Java 历史
Java 功能
Java 与 C++
Java JVM(Java虚拟机)
Java JDK、JRE 和 JVM
Java Hello World 程序
Java 环境设置
Java 基本语法
Java 变量类型
Java 数据类型
Java 类型转换
Java Unicode 系统
Java 基本运算符
Java 注释
Java 用户输入
Java 日期和时间

Java 控制语句

Java 循环控制
Java 决策结构
Java if-else 语句
Java switch 语句
Java for 循环
Java for each 循环
Java while 循环
Java do...while 循环
Java break 语句
Java continue 语句

Java 面向对象编程

Java OOP概念
Java 类和对象
Java 类属性
Java 类方法
Java 方法
Java 变量作用域
Java 构造函数
Java 访问修饰符
Java 继承
Java 聚合
Java 多态
Java 覆盖
Java 方法重载
Java 动态绑定
Java 静态绑定
Java 实例初始化块
Java 抽象
Java 封装
Java 接口
Java 包
Java 内部类
Java 静态类
Java 匿名类
Java 单例类
Java 包装类
Java 枚举类
Java 枚举构造函数
Java 枚举字符串

Java 内置类

Java 数字
Java 布尔值
Java 字符
Java 数组
Java 数学类

Java 文件处理

Java 文件
Java 创建文件
Java 写入文件
Java 读取文件
Java 删除文件
Java 目录操作
Java I/O流

Java 错误和异常

Java 异常
Java Try Catch
Java try-with-resources
Java 多个 Catch
Java 嵌套 try
Java finally
Java 抛出异常
Java 异常传播
Java 内置异常
Java 自定义异常

Java 多线程

Java 多线程
Java 线程生命周期
Java 创建线程
Java 启动线程
Java 加入线程
Java 命名线程
Java 线程调度
Java 线程池
Java 主线程
Java 线程优先级
Java 守护线程
Java 线程组
Java JVM 关闭

Java 同步

Java 线程同步
Java 块同步
Java 静态同步
Java 线程间通信
Java 线程死锁
Java 中断线程
Java 线程控制
Java 可重入锁

Java 网络

Java 网络编程
Java 套接字编程
Java URL 处理
Java URL 类
Java URLConnection 类
Java HttpURLConnection 类
Java Socket 类
Java 泛型

Java 集合

Java 集合框架
Java 集合接口

Java 接口

Java 列表接口
Java 队列接口
Java 映射接口
Java SortedMap 接口
Java 集合(Set)接口
Java SortedSet 接口

Java 数据结构

Java 数据结构
Java 枚举接口

Java 集合算法

Java 迭代器
Java 比较器
Java Comparable 接口

Java 高级

Java 命令行参数
Java Lambda 表达式
Java 发送电子邮件
Java 小应用程序
Java Javadoc
Java 自动装箱和拆箱
Java mismatch() 方法
Java REPL
Java 多版本发布 JAR
Java 私有接口方法
Java 金刚石操作符
Java 多分辨率图像 API
Java 集合的工厂方法
Java 模块系统
Java Nashorn 引擎
Java Optional 类
Java 方法引用
Java 功能接口
Java 默认方法
Java Base64 工具类
Java Switch 表达式
Java Collectors.teeing() 方法
Java 基准测试
Java 文本块
Java 动态CDS
Java ZGC
Java NullPointerException
Java jpackage
Java 密封类
Java 记录
Java 隐藏类
Java instanceof
Java 紧凑数字格式化
Java 垃圾回收
Java JIT 编译器

Java 杂项

Java 递归
Java 正则表达式
Java 序列化
Java 字符串类
Java 进程 API
Java Stream API
Java @Deprecated 注释
Java CompletableFuture API
Java Streams
Java 日期时间 API

基础

Java 主页
Java 概述
Java 历史
Java 功能
Java 与 C++
Java JVM(Java虚拟机)
Java JDK、JRE 和 JVM
Java Hello World 程序
Java 环境设置
Java 基本语法
Java 变量类型
Java 数据类型
Java 类型转换
Java Unicode 系统
Java 基本运算符
Java 注释
Java 用户输入
Java 日期和时间

控制语句

Java 循环控制
Java 决策结构
Java if-else 语句
Java switch 语句
Java for 循环
Java for each 循环
Java while 循环
Java do...while 循环
Java break 语句
Java continue 语句

面向对象编程

Java OOP概念
Java 类和对象
Java 类属性
Java 类方法
Java 方法
Java 变量作用域
Java 构造函数
Java 访问修饰符
Java 继承
Java 聚合
Java 多态
Java 覆盖
Java 方法重载
Java 动态绑定
Java 静态绑定
Java 实例初始化块
Java 抽象
Java 封装
Java 接口
Java 包
Java 内部类
Java 静态类
Java 匿名类
Java 单例类
Java 包装类
Java 枚举类
Java 枚举构造函数
Java 枚举字符串

内置类

Java 数字
Java 布尔值
Java 字符
Java 数组
Java 数学类

文件处理

Java 文件
Java 创建文件
Java 写入文件
Java 读取文件
Java 删除文件
Java 目录操作
Java I/O流

错误和异常

Java 异常
Java Try Catch
Java try-with-resources
Java 多个 Catch
Java 嵌套 try
Java finally
Java 抛出异常
Java 异常传播
Java 内置异常
Java 自定义异常

多线程

Java 多线程
Java 线程生命周期
Java 创建线程
Java 启动线程
Java 加入线程
Java 命名线程
Java 线程调度
Java 线程池
Java 主线程
Java 线程优先级
Java 守护线程
Java 线程组
Java JVM 关闭

同步

Java 线程同步
Java 块同步
Java 静态同步
Java 线程间通信
Java 线程死锁
Java 中断线程
Java 线程控制
Java 可重入锁

网络

Java 网络编程
Java 套接字编程
Java URL 处理
Java URL 类
Java URLConnection 类
Java HttpURLConnection 类
Java Socket 类
Java 泛型

集合

Java 集合框架
Java 集合接口

接口

Java 列表接口
Java 队列接口
Java 映射接口
Java SortedMap 接口
Java 集合(Set)接口
Java SortedSet 接口

数据结构

Java 数据结构
Java 枚举接口

集合算法

Java 迭代器
Java 比较器
Java Comparable 接口

高级

Java 命令行参数
Java Lambda 表达式
Java 发送电子邮件
Java 小应用程序
Java Javadoc
Java 自动装箱和拆箱
Java mismatch() 方法
Java REPL
Java 多版本发布 JAR
Java 私有接口方法
Java 金刚石操作符
Java 多分辨率图像 API
Java 集合的工厂方法
Java 模块系统
Java Nashorn 引擎
Java Optional 类
Java 方法引用
Java 功能接口
Java 默认方法
Java Base64 工具类
Java Switch 表达式
Java Collectors.teeing() 方法
Java 基准测试
Java 文本块
Java 动态CDS
Java ZGC
Java NullPointerException
Java jpackage
Java 密封类
Java 记录
Java 隐藏类
Java instanceof
Java 紧凑数字格式化
Java 垃圾回收
Java JIT 编译器

杂项

Java 递归
Java 正则表达式
Java 序列化
Java 字符串类
Java 进程 API
Java Stream API
Java @Deprecated 注释
Java CompletableFuture API
Java Streams
Java 日期时间 API

Java 与 C++


上一章 下一章

Java

什么是 Java?

Java SE 的最新版本是 Java SE 21。随着 Java 的进步和广泛应用,为了适应不同类型平台的需求,已经构建了多种配置。例如:J2EE 用于企业应用,J2ME 用于移动应用。新的 J2 版本分别更名为 Java SE、Java EE 和 Java ME。Java 的设计原则是“一次编写,到处运行”。

Java 的特性

Java 具有以下特性:

  • 面向对象:在 Java 中,一切都是一个对象。基于对象模型,Java 很容易扩展。
  • 平台独立:与 C 和 C++ 等许多其他编程语言不同,Java 在编译时不是编译成特定平台的机器代码,而是编译成平台无关的字节码。这个字节码可以通过网络分发,并在任何安装了 Java 虚拟机(JVM)的平台上被解释执行。
  • 简单:Java 被设计成易于学习。如果理解了 Java 的面向对象基本概念,那么掌握 Java 就会变得容易。
  • 安全:Java 的安全特性使其能够开发无病毒、防篡改的系统。认证技术基于公钥加密。
  • 架构中立:Java 编译器生成一种架构中立的对象文件格式,这使得编译后的代码可以在存在 Java 运行系统的许多处理器上执行。
  • 可移植:由于架构中立性并且没有任何实现相关的规范方面,使得 Java 可移植。Java 的编译器是用 ANSI C 编写的,具有一个干净的可移植边界,即 POSIX 子集。
  • 健壮:Java 通过强调编译时错误检查和运行时检查来努力消除容易出错的情况。
  • 多线程:利用 Java 的多线程特性,可以编写能够同时执行多个任务的程序。这一设计特性使开发人员能够构建可以顺利运行的交互式应用程序。
  • 解释型:Java 字节码在运行时动态翻译成本地机器指令,并且不会存储在任何地方。链接是一个增量的和轻量的过程,因此开发过程更加迅速和具有分析性。
  • 高性能:通过使用即时编译器,Java 实现了高性能。
  • 分布式:Java 是为互联网的分布式环境设计的。
  • 动态性:与 C 或 C++ 相比,Java 被认为更具动态性,因为它旨在适应不断变化的环境。Java 程序可以携带大量的运行时信息,这些信息可用于验证和解决运行时的对象访问。

Java 示例

请看下面简单的 Java 程序:

package com.tutorialspoint;

import java.util.Scanner;

public class JavaTester {

   public static void main(String args[]) {
      String a, b;
      Scanner scanner = new Scanner(System.in);  
      System.out.println("Enter The value for variable a");
      a = scanner.nextLine();
      System.out.println("Enter The value for variable b");
      b = scanner.nextLine();

      System.out.println("The value you have entered for a is " + a);
      System.out.println("The value you have entered for b is " + b);
      scanner.close();
   }    
}

在这个例子中,我们定义了两个变量 a 和 b 并赋予一些值。注意,在 Java 中,我们需要明确声明变量的数据类型,因为 Java 是严格类型的语言。作为面向对象的语言,我们使用对象来执行任何动作。在这个示例中,我们使用 Scanner 类的对象从控制台读取用户输入,这由 System.in 对象表示。System.out 对象的方法 println() 用于打印接收的值。

输出

执行后,这段 Java 代码将产生如下输出:

Enter The value for variable a
10
Enter The value for variable b
20
The value you have entered for a is 10
The value you have entered for b is 20

C++

什么是 C++?

C++ 是一种静态类型、编译型、多范式、通用编程语言,具有陡峭的学习曲线。它被广泛用于视频游戏、桌面应用和嵌入式系统。C++ 与 C 的兼容性很高,几乎可以编译所有未经修改的 C 源代码。面向对象编程使 C++ 比 C 更具结构化和安全性。

C++ 的特性

让我们来看一下 C++ 的一些特性及其流行的原因:

  • 中间级语言:由于它可以用于系统开发和大规模消费者应用程序(如媒体播放器、Photoshop、游戏引擎等),它被视为一种中间级语言。
  • 执行速度:C++ 代码运行速度快。因为它是编译的,并且大量使用了过程。垃圾收集、动态类型等现代特性会影响程序执行的速度。
  • 面向对象语言:面向对象编程具有灵活性和可管理性。大型应用程序是可以实现的。随着代码的增长,过程代码变得更难处理,这是 C++ 相对于 C 的主要优势。
  • 广泛的库支持:C++ 拥有一个庞大的库。支持第三方库以便快速开发。

C++ 示例

下面是一个 C++ 的示例代码,帮助理解 C++ 的语法:

#include <iostream>
using namespace std;

int main() {
   int a, b;
   cout << "Enter The value for variable a \n";
   cin >> a;
   cout << "Enter The value for variable b";
   cin >> b;
   cout << "The value of a is "<< a << " and " << b;
   return 0;
}

在这个例子中,我们从用户处通过键盘输入获取两个变量 a 和 b 的值,并在控制台上显示数据。

输出

执行后,它会产生如下输出:

Enter The value for variable a
10
Enter The value for variable b
20
The value of a is 10 and 20

以下是以表格形式展示的 Java 和 C++ 的主要区别:

序号 标准 Java C++
1 开发者 由 James Gosling 在 Sun Microsystems 开发。 由 Bjarne Stroustrup 在 Bell Labs 开发,作为 C 语言的扩展。
2 影响因素 受 Ada 83、Pascal、C++、C# 的影响。 受 Ada、ALGOL 68、C、ML、Simula、Smalltalk 的影响。
3 架构依赖性 Java 字节码可以在任何操作系统上工作。字节码的目标是 JVM,然后 JVM 解释字节码并运行底层代码。 不适用于所有操作系统,因为库在不同的系统上是不同的。
4 平台独立性 可以在任何操作系统上运行。Java 代码是平台独立的。 在不同的平台上有不同的编译方式,不能在任何操作系统上运行。
5 可移植性 具有可移植性。由于平台独立性,Java 代码可以转移到任何机器上而无需进行平台特定的修改。 不具备可移植性。
6 解释型/编译型 是一种解释型语言。 是一种编译型语言。
7 内存管理 内存管理是自动完成的。提供垃圾回收服务。 内存管理需要手动完成。
8 虚拟关键字 不包含 virtual 关键字。 包含 virtual 关键字。
9 多重继承支持 仅支持单继承。多重继承可以通过接口实现。 支持单继承和多重继承。
10 运算符重载支持 不支持运算符重载。仅支持方法重载。 支持运算符重载。
11 指针 提供有限支持。使用引用指向对象。 支持指针操作。
12 低级机器代码访问 具有高级功能。编译代码作为字节码是为 JVM 设计的,进一步转换为低级代码。 具有低级功能。支持低级机器代码。
13 本地库访问 不支持直接调用本地库。 支持直接调用系统库。
14 文档注释 支持文档注释 (/**.. **/)。Javadoc 工具可以生成基于 HTML 的文档。 不支持源代码中的文档注释。
15 多线程 支持线程操作。默认支持多线程。 设计上不支持线程。可通过第三方库实现。
16 控制台输入 使用 System.in 获取输入。 使用 cin 进行输入操作。
17 控制台输出 使用 System.out 进行输出。 使用 cout 进行输出操作。
18 全局支持 不支持全局作用域。 支持全局作用域以及命名空间作用域。
19 结构/联合支持 不支持结构体和联合体。 支持结构体和联合体。
20 goto 关键字 不包含 goto 关键字。但可以用标签和 break/continue 实现。 包含 goto 关键字。
21 值传递/引用传递 支持值传递。对象引用技术上也是作为值传递。 支持值传递和引用传递。引用传递需要使用指针或 & 符号。
22 内存管理 使用垃圾收集器自动管理对象。 使用 new 和 delete 手动管理对象。
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图