01-Java 核心基础

news2024/11/23 5:27:57

Java核心基础

  • Java 开发基础知识
    • Java 语言概述
    • 安装 Java 开发环境
  • 开发体验
    • Hello World 程序
    • Java 注释

Java 开发基础知识

Java 语言概述

  Java 是 SUN(斯坦福大学网络公司)1995 年推出的一门高级编程语言,它是一种面向 Internet 的编程语言,Java 一开始富有吸引力是因为 Java 程序可以在 Web 浏览器中运行,这些 Java 程序被称为 Java 小程序(applet)。applet 使用现代的图形用户界面与 Web 用户进行交互,可以内嵌在 HTML 代码中。随着 Java 技术在 web 方面的不断成熟,已经成为 Web 应用程序的首选开发语言。

  从 Java 的应用领域来分,Java 语言的应用方向主要表现在以下几个方面:

  • 企业级应用: 主要指复杂的大企业的软件系统、各种类型的网站。Java 的安全机制以及它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电信、交通、电子商务等;
  • Android 平台应用: Android 应用程序使用 Java 语言编写,Android 开发水平的高低很大程度上取决于 Java 语言核心能力是否扎实;
  • 大数据平台开发: 各类框架有 Hadoop、spark、storm、flink 等,就这类技术生态圈来讲,还有各种中间件,如:flume、kafka、sqoop 等等 ,这些框架以及工具大多数是用 Java 编写而成,但提供诸如:Java、scala、Python、R 等各种语言 API 供编程;
  • 移动领域应用: 主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。

   Java 是一个 纯粹的面向对象 的程序设计语言,它继承了 C++ 语言面向对象技术的核心,舍弃了 C 语言中容易引起错误的指针、运算符重载、多重继承等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。它的主要特性如下:

  • Java 语言是易学的Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员很容易学习和使用 Java;
  • Java 语言是强制面向对象的Java 语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制;
  • Java 语言是分布式的Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口,它提供了用于网络应用编程的类库,包括:URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段;
  • Java语言是健壮的: Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证,对指针的丢弃是 Java 的明智选择;
  • Java 语言是安全的: Java 通常被用在网络环境中,为此提供了一个安全机制以防恶意代码的攻击;
  • Java 语言是体系结构中立的: Java 程序在 Java 平台上被编译为体系结构中立的字节码格式,然后可以在实现这个 Java 平台的任何系统中运行;
  • Java 语言是解释型的: Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统的解释器中运行;
  • Java 是性能略高的: 与那些解释型的高级脚本语言相比,Java 的性能还是较优的;
  • Java 语言是原生支持多线程的: 在 Java 语言中,线程是一种特殊的对象,它必须由Thread 类或其子(孙)类来创建。

  Java 语言的特点如下:

  • 面向对象两个要素(类、对象)、三个特征(封装、继承、多态);
  • 健壮性吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制;
  • 跨平台性通过 Java 语言编写的应用程序在不同的系统平台上都可以运行,只要在需要运行 Java 应用程序的操作系统上先安装一个 Java 虚拟机,由 JVM 来负责Java 程序在该系统中的运行。

Java两种核心机制
(一)Java 虚拟机
  JVM 是一个虚拟的计算机,具有指令集并使用不同的存储区域,负责 执行指令,管理数据、内存、寄存器。不同的平台有不同的虚拟机,只有某平台提供了对应的 Java 虚拟机,Java 程序才可在此平台运行。Java 虚拟机机制屏蔽了底层运行平台的差别,实现了 一次编译,到处运行
在这里插入图片描述
(二)垃圾回收
  垃圾回收就是对不再使用的内存空间进行回收。在 C/C++ 等语言中,由程序员负责回收无用内存。Java 语言消除了程序员回收无用内存空间的责任,它提供一种系统级线程跟踪存储空间的分配情况,并在 JVM 空闲时检查并释放那些可被释放的存储空间。垃圾回收在 Java 程序运行过程中自动进行,程序员无法精确控制和干预。

安装 Java 开发环境

  首先下载并安装 JDK ,然后配置环境变量:
在这里插入图片描述
在这里插入图片描述

注意 Mac 电脑直接下载安装 JDK 即可。

  然后使用 java -version 测试是否安装配置成功:

在这里插入图片描述

JDK 和 JRE

  • JDK: JDK 是提供给 Java 开发人员使用的,其中包含了 java 的开发工具,也包括了 JRE。所以安装了 JDK,就不用在单独安装 JRE 了。其中的开发工具包括编译工具(javac.exe)、打包工具(jar.exe)等。
  • JRE: 包括 Java 虚拟机和 Java 程序所需的核心类库等,如果想要运行一个开发好的 Java 程序,计算机中只需要安装 JRE 即可。

开发体验

Hello World 程序

  1. 首先创建一个 HelloWorld.java 的文件

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

  2. 使用 javac HelloWorld.java 命令将其编译成 JVM 可以识别的字节码文件,此时会生成一个 HelloWorld.class 的文件

  3. 使用 java HelloWorld 命令可以执行字节码文件

在这里插入图片描述

注意

  • Java 源文件以 .java 为扩展名,源文件的基本组成部分是类(class
  • Java 应用程序的执行入口是 main() 方法
  • Java 语言严格区分大小写
  • Java 的一个源文件中最多只能有一个 public 类,其他类个数不限,源文件名必须和 public 修饰的类名相同。

Java 注释

  Java 中的注释类型分为:单行注释多行注释文档注释。注释主要有以下作用:

  • 对所写的程序进行解释说明,增强可读性;
  • 调试所写的代码。

  下面是单行注释和多行注释的使用案例:

public class HelloWorld {
    public static void main(String[] args) {
        // 单行注释:下面的代码将在控制台输出 Hello World
        System.out.println("Hello World");

        /*
         * 下面是多行注释
         * 首先在控制台输出 -------------
         * 然后输出 Hello Java
         */
        System.out.println("----------------");
        System.out.println("Hello Java");
    }
}

注意

  • 对于单行和多行注释,被注释的文字不会被 JVM 解释执行
  • 多行注释里面不允许有多行注释嵌套

  文档注释是 Java 特有的,注释的内容可以被 JDK 提供的工具 javadoc 所解析,生成一套以网页文件形式体现的关于程序的说明文档(API 文档)。

  API(应用程序编程接口)是 Java 提供的基本编程接口,Java 语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的 API 文档,用于告诉开发者如何使用这些类以及这些类里包含的方法:

在这里插入图片描述

  下面说明文档注释的简单使用:

  1. 首先在 HelloWorld.java 类里面加上文档注释

/**
 * 
 * @author Andy.Wu
 * @version 1.0.0
 */
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

  2. 使用 javadoc -d mydoc -author -version HelloWorld.java -encoding utf-8 命令生成文档
在这里插入图片描述

  3. 在本地生成一个 mydoc 的目录,里面生成了说明文档

在这里插入图片描述

  4. 打开 index.html 可以查看生成的内容

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医院检验信息管理系统源码(云LIS系统源码)JQuery、EasyUI

云LIS系统是一种医疗实验室信息管理系统,提供全面的实验室信息管理解决方案。它的主要功能包括样本管理、检测流程管理、报告管理、质量控制、数据分析和仪器管理等。 云LIS源码技术说明: 技术架构:Asp.NET CORE 3.1 MVC SQLserver Redis等…

【虹科案例】使用 TCP 分析测量握手时间

如何使用 Allegro Network 万用表的 TCP 分析确定握手时间 握手需要多少时间? 在图 1 中,您可以在虹科Allegro 网络万用表的 TCP 统计数据中看到过去 10 分钟的客户端握手次数。在这里,您可以清楚地看到在指定时间段内有延长的响应时间。但…

计算机专业基础知识

大纲分单元讲解计算机的发展、类型及其应用领域计算机技术的发展计算机应用领域 计算机中数据的表示、存储和处理计算机软、硬件系统的组成及主要技术指标计算机软、硬件系统的组成硬件系统软件系统系统软件应用软件 计算机的结构计算机主要性能指标 自我测试 大纲 计算机的发…

Window 10 环境下用 OpenVINO 2022.3部署yolov5 7.0

Window 10 环境下用 OpenVINO 2022.3部署yolov5_7.0 1 下载并解压 OpenVINO Runtime OpenVINO™ Runtime 2022.3 以压缩包 (OpenVINO Archives) 的形式提供。 下载地址: storage.openvinotoolkit.org 下载后解压到 C:\Intel\openvino_2022.3.0 配置环境&#xff…

【STL模版库】STL入门 {模版初阶:泛型编程,函数模版,类模版;STL简介:什么是STL,STL六大组件}

一、模版初阶 1. 泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) { int temp left; left right; right temp; } void Swap(double& left, double& right) { double temp left; left right; right temp; } void…

【Python习题集5】函数的设计

函数的设计 一、实验内容二、实验总结 一、实验内容 1.编写两个函数分别按单利和复利计算利息,根据本金、年利率、存款年限得到本息和和利息。调用这两个函数计算1000元在银行存3年,在年利率是6%的情况下,单利和复利分别获得的本息和和利息。…

【Java虚拟机】JVM垃圾回收器详解

1.什么是垃圾收集器 垃圾回收算法是内存回收的方法论,垃圾收集器则是内存回收的具体实现 目前Java规范中并没有对垃圾收集器的实现有任何规范 不同的厂商、不同的版本的虚拟机提供的垃圾收集器是不同的,主要讨论的是HotSpot虚拟机 不存在最厉害的垃圾…

【Java】内部类Object类

目录 1.内部类 1.1实例内部类 1.2静态内部类 1.3局部内部类 1.4匿名内部类 2.Object类 2.1getClass方法 2.2equals方法 2.3hashcode方法 1.内部类 定义:一个类定义在另一个类或一个方法的内部,前者称为内部类,后者称为外部类。 分…

JWT渗透与防御

JWT渗透与防御 什么是JWTJWT漏洞介绍工具使用 身份认证(Authentication)又称鉴权,是指通过一定的手段,完成对用户身份的确认。认证的方式:sessioncookie、JWT、Token session认证的局限性 session认证机制需要配合cookie才能实现。由于cookie…

238页9万字大数据治理与服务平台建设及数据服务实施方案(word)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。 1 项目解决方案 1.1 建设类业务技术方案 1.1.1 业务需求分析 根据对招标要求的理解,建设业务需求主要包括如下几个方面: (1&#xff…

网站遭遇XSS注入如何排查及解决

首先要明白什么是XSS注入 存储型 XSS 的攻击步骤: 攻击者将恶意代码提交到目标网站的数据库中。用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器。用户浏览器接收到响应后解析执行,混在其中的…

Docker部署spring boot项目

在docker部署时首先要保证一般部署能够访问。 docker命令部署spring boot项目 目前主流的java框架为spring,软件包为jar包,只需以jar为基础构建容器环境。打包为jar后只需要jvm就可以运行,因此需要以jdk为镜像构建容器。 基于命令构建jdk环…

MySQL面试八股文:索引篇

索引的定义 索引是数据库中用来加速数据查询的一种数据结构。它可以将数据表中的某一列或多列进行排序,以便快速查找数据,减少数据库的扫描次数,提高查询速度。 索引的优缺点 索引的优点是可以大幅度提高数据查询的速度,尤其是…

( 数组和矩阵) 565. 数组嵌套 ——【Leetcode每日一题】

❓565. 数组嵌套 难度:中等 索引从 0 开始长度为N的数组 A,包含 0 到 N - 1 的所有整数。找到最大的集合 S并返回其大小,其中 S[i] {A[i], A[A[i]], A[A[A[i]]], ... } 且遵守以下的规则。 假设选择索引为 i 的元素 A[i] 为 S 的第一个元…

【Java|golang】1003. 检查替换后的词是否有效

给你一个字符串 s ,请你判断它是否 有效 。 字符串 s 有效 需要满足:假设开始有一个空字符串 t “” ,你可以执行 任意次 下述操作将 t 转换为 s : 将字符串 “abc” 插入到 t 中的任意位置。形式上,t 变为 tleft “…

【软考高项笔记】第1章 信息化发展1.3 现代化创新发展

1.3 现代化创新发展 1.3.1 农业农村现代化 采棉机,传感器检查温度湿度 乡村振兴战略 建设基础设施 发展智慧农业 建设数据乡村1.3.2 两化融合与智能制造(工业) 信息化 工业化 发展战略 坚持自主可控,安全高效,推进产业…

VESC操作入门——双轮毂电机控制和CAN通信

目录 一、VESC驱动轮毂电机1.1、硬件准备1.2、硬件接线1.3、校准电机1.4、主操作界面 二、CAN通信2.1、硬件连接2.2、代码说明2.3、发送指令 三、双轮毂电机3.1、校准第二个电机参数3.2、硬件连接3.3、CAN总线发送指令 四、把VESC做为USB转CAN模块 ODrive、VESC和SimpleFOC 教程…

【星戈瑞】Sulfo-Cyanine5 mal 磺酸跟水溶性生物标记试剂

水溶性Sulfo-Cyanine5 mal是一种用于生物标记和荧光成像的荧光染料。它的化学名称是Cyanine5 maleimide,分子式为C29H27ClN2O4S,分子量为576.05。Cyanine5 mal属于Cyanine染料家族,具有强烈的吸收和发射光谱,适用于生物分子的标记…

( 数组和矩阵) 769. 最多能完成排序的块 ——【Leetcode每日一题】

❓769. 最多能完成排序的块 难度:中等 给定一个长度为 n 的整数数组 arr ,它表示在 [0, n - 1] 范围内的整数的排列。 我们将 arr 分割成若干 块 (即分区),并对每个块单独排序。将它们连接起来后,使得连接的结果和按升序排序后…

云服务器vCPU和CPU有什么区别?

云服务器的vCPU和物理服务器的CPU有什么区别?阿里云百科以阿里云服务器ECS为例, 阿里云服务器vCPU和CPU是什么意思?CPU和vCPU有什么区别?一台云服务器ECS实例的CPU选项由CPU物理核心数和每核线程数决定,CPU是中央处理…