Java 基础概览

news/2024/12/20 20:25:42/文章来源:https://www.cnblogs.com/miaotechisland/p/18619908

1. Java 语言概述

1.1 Java 简史

Java是一种高级程序设计语言,由SUN(Stanford University Network,斯坦福大学网络公司)公司于1995年推出,James Gosling设计Java语言,并开发了Java编译器和Java虚拟机,因此也被人尊称为“Java 之父”。SUN公司在2009年被Oracle(甲骨文)收购,此后持续更新,目前最新版为Java 23。其中,Java 8、Java 11、Java 17以及Java 21为LST(Long-Term Support)版本,之后blog的程序也以Java 17为主。

JavaLogo

1.2 Java 特点

  • Java是一种面向对象、基于类编程的语言
  • Java是一种半编译半解释型语言
  • Java是基于JVM(Java Virtual Machine) 的跨平台语言,“Write once , Run Anywhere”
  • Java是一个开源的编程语言,有广泛开源社区支持
  • Java和C++的语法很接近,但是丢弃了pointer(指针)的概念,并且提供了内存的自动分配和回收,程序猿无需为内存管理而烦扰

2. Java 程序

让我们看看Java第一个程序,按照传统,打印Hello World,以下:

// A simple Java program
public class HelloWorld{public static void main(String[] args){System.out.println("Hello World!"); // 输出Hello World!}
}

结果如下:
image_20241206215924

2.1 Hello World 程序分析

我们用的集成开发环境(Integrated Development Environment)是IntelliJ IDEA。当我们创建一个新的项目后,程序的目录如下, src是源文件(.java),out是字节码文件(.class)

image_20241206221537

打开程序的物理磁盘位置,同样可以看到,src是保存.java文件,out保存.class文件
image_20241206221905.png
image_20241206222209
image_20241206222132

Java程序执行有三个步骤:编写 --> 编译 --> 运行

  • 在开发环境中编写Java 代码,生成后缀名为 .java 的源文件
  • 源文件通过javac.exe命令编译(compile)为字节码文件
  • 字节码文件通过java.exe命令解释运行得到程序结果
JavaLogo

2.1.1 源文件名与类名

程序中的源文件名和类名是一样的,都是HelloWorld,那两者是否应该保持一致呢?

答:如果这个类是public,那么要求源文件名必须与类名一致。否则编译报错。如果这个类不是public,那么源文件名可以和类名不一致。但是不便于代码维护。所以无论是否是public,建议都与源文件名保持一致,而且一个源文件尽量只写一个类,方便后期维护。

一个源文件中是否可以有多个类?public呢?

答:一个源文件中可以有多个类,编译后会生成多个.class字节码文件。但是一个源文件只能有一个public的类。

2.1.2 注释(Comment)

注释是编程不可或缺的一部分,起到解释说明代码的作用,提高代码的可阅读性可维护性

  • Java的注释有三种类型:

    • 单行注释:
    // 这是注释内容
    
    • 多行注释
    /* 
    这是注释内容
    这是注释内容
    这是注释内容
    */
    
    • 文档注释
    /**@author  指定Java程序的作者@version  指定源文件的版本
    */ 
    

3. Java虚拟机(JVM)、JDK、JRE

  • JVM (Java Virtual Machine):是一个虚拟的计算机,是Java程序的运行环境。JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。
    我们编写的Java代码,都运行在JVM之上。正因为有JVM,才使得Java程序具备了跨平台性。
JVM
  • JDK (Java Development Kit):是Java程序开发工具包,包含JRE 和开发人员使用的工具。
  • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含JVM 和运行时所需要的核心类库

三者关系图如下:

JDK_JRE_JVM

小结:

JDK = JRE + 开发工具集(Javac编译工具等)

JRE = JVM + Java SE标准类库

只有输入没有输出那是貔貅。所以计划“输出”Java的基础学习,旨在总结温习。主要参考资料如下(Reference),之后将不在单独列出。日拱一卒则功不唐捐,我们一起加油,努力!

Reference:

[1] 尚硅谷Java从入门到精通(https://www.bilibili.com/video/BV1PY411e7J6?spm_id_from=333.788.videopod.episodes&vd_source=1a269b49bc015abcf41af87718dc4f1c)
[2] 菜鸟教程(https://www.runoob.com/java/java-tutorial.html)
[3] Core Java Volume I Fundamentals, 11th Edition

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux学习笔记(一) Linux目录结构

下图显示的为Linux中的目录结构:/bin[常用](/usr/bin、/usr/local/bin) 是Binary(二进制)的缩写,这个目录存放着经常使用的命令。 /sbin(/usr/sbin、/usr/local/sbin) s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 /home[常用] 存放普通用户的家目…

数据库审计与监控

title: 数据库审计与监控 date: 2024/12/20 updated: 2024/12/20 author: cmdragon excerpt: 数据库审计与监控是确保数据库安全性和性能的关键环节。通过实施有效的审计策略,可以追踪用户活动,监控数据访问与修改,从而及时发现潜在的安全威胁和性能瓶颈。探讨数据库审计的基…

Java实现单词的翻译(详解爬虫操作)

JAVA通过Crawler实现英语单词的翻译首先声明一点,这种方法仅限于低频次的交互来获取翻译信息,一旦一秒内大量的请求会被重定向,那就直接不能用了 如果希望可以批量查询英语单词翻译,可以查看我的下一篇博客。接着我们上一讲Java如何用HaspMap统计次数并排序详解 - ivanlee7…

实用工具:Calibre 7.22最新版 一款Window电子书管理工具和阅读器便携版

📢提示:文章排版原因,链接放在文章结尾👇👇,往下翻就行 📢提示:文章排版原因,链接放在文章结尾👇👇,往下翻就行 前言 初识Calibre 最近有几本epub格式的电子书要看发现电脑上没有可以打开的软件,所以最近找到了这个软件。功能 功能亮点电子书管理:Calib…

VS2022 C++QT 中文乱码 设置UTF-8编码

说明 所有内容来源于网络 通过插件调整源文件编码FileEncoding:查看编码 Force UTF-8:用于保存为UTF-8 C++项目设置为utf-8 项目-属性-配置属性-C/C++-命令行-其它选项 中 增加/utf-8、

雷池 WAF 配置了多条人机验证规则,命中规则是怎样的?

优先级说明 频率限制(1 小时) > 自定义规则(1 小时) > 站点 BOT 防护(自定义时长) 配置人机验证的地方 【防护配置-频率限制】限制结果选择【人机验证】【防护配置-自定义规则】规则类型选择【人机验证】【防护站点-站点管理】的【BOT 防护】中开启【人机验证】命中…

如何在C#.NET中使用LINX(arduino的LabView库)

思路:使用LabView的导出为.NET互操作程序集,导出COM给.NET调用在LabView安装HubMaker插件,将预编译固件刷入Arduino设备中。这不是本文的重点,省略 根据需要,编写VI。注意:必须在此处使用全局变量或者其它方法避免LinxResource簇在C#中出现,否则在程序运行时有概率出现堆…

C#.Net NModbus库 简单代码案例(非Nmodbus4库)

在NuGet管理器中搜索NModbus。注意,如果需要使用串口通信需要同时选中相关包

EyeSoothe荣登中国区“健康健美”类第32名! ✨

眼睛疲劳、视力变化、色盲检测、虚拟眼镜试戴……这些问题,EyeSoothe都能帮你解决!作为一款全能眼健康应用,EyeSoothe集成了多个强大功能,旨在帮助你更好地保护视力,缓解眼部疲劳,随时关注眼健康。📱💡 https://apps.apple.com/app/eyesoothe/id6478070048 为什么选择…

腾讯云 AI 代码助手:代码诊断应用实践

代码诊断是指通过分析和检查源代码,发现并定位其中的错误、缺陷或不规范之处。传统的代码诊断方法主要依赖于人工审查和简单的静态分析工具,结合流水线的自动化能力并且结合质量门禁建立不同的质量阈值关卡。基于 AI 赋能代码诊断是在传统的能力基础上在次进行质量左移,通过…

虚拟机下centos7系统实现修改ip地址为固定ip

修改虚拟机配置 目的 如果不修改虚拟机配置,会出现设置了静态IP和相关参数之后,本地局域网可以互相访问,但是CentOS系统访问不了互联网。 步骤一:以管理员身份打开虚拟机 步骤二:打开虚拟网络编辑器 左上角菜单栏找到“编辑”选项并单击,在下拉子菜单中单击选项“虚拟网络…

【每日一题】20241220

事情总是这样。一个人竭尽全力想要置身事外,但忽然有一天,不知道为什么,却发现自己身处某个故事之中,一路奔向结局。【每日一题】 1.(16分) \(\hspace{0.7cm}\)如图,\(ABD\) 为竖直平面内的光滑绝缘轨道,其中 \(AB\) 段是水平的,\(BD\) 段为半径 \(R=0.2 \; \mathrm{m…