当前位置: 首页 > article >正文

【1】Java 零基础入门学习(小白专用)

【1】Java 零基础入门学习

在这里插入图片描述

📚博客主页:代码探秘者
✨专栏:《JavaSe从入门到精通》 其他更新ing…

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


img

【文章目录】

文章目录

  • 【1】Java 零基础入门学习
    • 1.1 什么是程序
    • 1.2 Java诞生小故事
    • 1.3 Java技术体系平台
    • 1.4 Java的重要特点
      • 【了解】解释型和编译型语言
    • 1.5 Java快速入门
    • 1.6 Java运行机制及运行过程
    • 1.7 JDK、JRE和JVM(重点)
      • 【了解】命令行里的编译和运行
    • 1.8 配置环境变量PATH(重要)
    • 1.9 关键字
    • 1.10 标识符
    • 1.11 Java转义字符
    • 1.12 Java代码规范
    • 1.13 Java开发注意事项和细节说明
    • 1.14 初学Java易犯错误
    • 1.15 注释
      • 【了解】javadoc

1.1 什么是程序

程序是一系列有序指令的集合,用于让计算机执行特定的操作或解决问题。例如,一个简单的程序可以要求计算机完成1+1的计算并将结果显示在屏幕上。

image-20250322202106592

1.2 Java诞生小故事

Java是由Sun Microsystems公司开发的编程语言,最初名为Oak。Java的创始人是James Gosling。Java以其跨平台特性和安全性而闻名,广泛应用于企业级应用和移动应用开发。

image-20250322202056213

1.3 Java技术体系平台

Java技术体系平台包括Java SE(标准版)、Java EE(企业版)和Java ME(微型版)。Java SE是Java的基础,提供了基本的编程功能;Java EE用于构建企业级应用;Java ME用于嵌入式设备和移动设备。

image-20250322202036508

1.4 Java的重要特点

Java的主要特点包括跨平台性、面向对象、垃圾回收、安全性和多线程支持。Java的跨平台性得益于Java虚拟机(JVM),使得Java程序可以在任何支持JVM的平台上运行。

image-20250322193702074

  • Java虚拟机(JVM):JVM就像一个翻译官,将Java代码翻译成计算机能理解的指令,让Java程序能在不同平台上运行。
  • 面向对象(oop):面向对象编程就像搭积木,通过定义类和对象来构建复杂的程序。
  • 垃圾回收:垃圾回收就像清洁工,自动清理不再使用的对象,释放内存空间。
  • **解释和编译并存:**具有解释型语言特征,同时需要先编译,生成字节码文件,再由java解释器执行

【了解】解释型和编译型语言

区别是:

解释性语言

  • 编译后的代码,不能直接被机器执行,需要解释器来执行,
  • 通过解释器一行一行解释成机器代码再执行。python

编译性语言,

  • 编译后的代码, 可以直接被机器执行, c /c++

1.5 Java快速入门

Java 程序,需要三个步骤:编写程序,编译程序,运行程序

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

通过上述代码,我们可以看到一个完整的Java程序的结构,Java程序的结构由如下三个部分组成:

源文件(扩展名为.java)*:源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个 类。类的内容必须包含在花括号里面。

:类中带有一个或多个方法。方法必须在类的内部声明。

方法:在方法的花括号中编写方法应该执行的语句。

总结:类存在于源文件里面;方法存在于类中;语句存在于方法中。 注意:在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同

1.6 Java运行机制及运行过程

Java程序的运行机制依赖于Java虚拟机(JVM)。JVM负责解释和执行Java字节码,确保程序能够在不同的平台上运行。Java程序的运行过程包括编译和执行两个阶段。

image-20250322200051586

1.7 JDK、JRE和JVM(重点)

【JVM介绍】

基本介绍

  • 1)JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,包含在JDK中.
  • 2)对于不同的平台,有不同的虚拟机。
  • 3)Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”(就是说一次编译好的.class文件,可以在多个系统运行

image-20250322193830754

  • .class文件->字节码文件

【解释】

  • JDK(Java Development Kit)是Java开发工具包,包含了JRE和Java开发工具。
  • JRE(Java Runtime Environment)是Java运行环境,包含了JVM和Java核心类库。
  • JVM(Java Virtual Machine)是Java虚拟机,负责执行Java字节码(把字节码翻译成机器码,方便执行)。

【示意图】:

image-20240104104556180

  • 安装JDK一般就包括JRE了

  • 如果只想运行开发好的.class文件,安装JRE就行

【了解】命令行里的编译和运行

比如要执行Test.java

// 编译 生成字节码文件
javac Test.java
// 运行
java Test

img

img

1.8 配置环境变量PATH(重要)

【】为什么安装?

image-20250322195651599

配置环境变量PATH是为了让操作系统能够找到Java开发工具和JVM。通过配置PATH,可以在任何目录下执行Java命令。

【1】官网安装jdk

image-20250322194721228

【2】打开高级系统设置

image-20250322194844869

【3】按照下面流程

image-20250322195216227

【4】Win+R 输入cmd,打开命令行窗口,输入下面命令

java -version

image-20250322195815595

安装成功!

1.9 关键字

关键字是由Java语言提前定义好的,有特殊含义的标识符,或者保留字

注意:用户不能使用关键字定义标识符

在这里插入图片描述

1.10 标识符

标识符:在程序中由用户给类名、方法名或者变量所取的名字。

image-20250322201551080

1.11 Java转义字符

Java中的转义字符用于在字符串中表示特殊字符,如\n表示换行符,\t表示制表符。这些字符在控制台输出时具有特定的功能。

\t :一个制表位,实现对齐的功能
\n :换行符
\\:一个\
\":一个"
':一个'
\r :一个回车System.out.println("中国\r北京");

1.12 Java代码规范

Java代码规范包括使用Javadoc注释、保持代码的缩进和格式、使用UTF-8编码等。这些规范有助于提高代码的可读性和可维护性。

image-20250322200618877

1.13 Java开发注意事项和细节说明

在Java开发中,需要注意代码的规范性和可读性。例如,使用合适的命名规范、添加必要的注释、保持代码的整洁等。

image-20250322200106727

1.14 初学Java易犯错误

初学者在Java开发中常见的错误包括语法错误、逻辑错误和资源管理不当等。通过学习和实践,可以逐步避免这些错误。

image-20250322200316297

image-20250322200328150

1.15 注释

Java中的注释分为

  • 单行注释(//)、

  • 多行注释(/* ... */

  • 文档注释(/** ... */)。

注释用于解释代码的功能和逻辑,帮助他人理解代码。

【了解】javadoc

image-20250322200600754

相关文章:

【1】Java 零基础入门学习(小白专用)

【1】Java 零基础入门学习 📚博客主页:代码探秘者 ✨专栏:《JavaSe从入门到精通》 其他更新ing… ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏作者水…...

[c语言日寄]枚举类型

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...

替代-UX设计师

初创公司如何在没有设计师的情况下 打造实用的用户体验 一个常见的捷径是使用预构建的组件库,如谷歌的 Material UI它们为你提供了构建块,但它们并没有为你考虑整个用户流程你仍然需要弄清楚所有这些是如何组合在一起的但是,很多时候&#x…...

【氧化镓】​​​​掺杂在β-Ga2O3材料中引入的深能级缺陷

1. 引言 1.1 β-Ga2O3材料的特性与应用前景 β-Ga2O3作为一种新型的宽禁带半导体材料,具有约4.6-4.8 eV的宽带隙、高击穿场强(约8 MV/cm)和优异的热稳定性,适用于高功率和射频电子器件。其独特的物理特性使其在高电压、高频率以及高功率应用场景中具有巨大的潜力。例如,…...

:ref 和 this.$refs 的区别及 $ 的作用

:ref 在 Vue 模板中,:ref 这种写法是使用了 Vue 的动态绑定语法(: 是 v-bind: 的缩写)。ref 是一个特殊的属性,用于给元素或组件注册引用信息。当你使用 :ref 时,通常是在动态地为元素或组件设置引用名称,…...

分库分表后,跨库查询和分布式事务解决方案

分库分表主要是为了解决单库单表的性能瓶颈,但拆分后数据分散在不同库和表中,这就导致了跨库查询和分布式事务的问题。 以下是实际项目中应对这些问题的核心策略与技术实现: 一、跨库查询解决方案 1. 全局表(广播表) 适用场景:基础数据表(如地区表、配置表)数据量小且…...

仅靠prompt,Agent难以自救

Alexander的观点很明确:未来 AI 智能体的发展方向还得是模型本身,而不是工作流(Work Flow)。还拿目前很火的 Manus 作为案例:他认为像 Manus 这样基于「预先编排好的提示词与工具路径」构成的工作流智能体,…...

android初学

Intent直译意图 显式意图:构造函数(实参为两个) (当前类对象 this,要跳转的.javaclass文件), 隐式意图:构造方法实参(填写一个)(需要在清单文件配置)系统自动匹配 点击事件: 注册设置点击监听器的常用三…...

IDEA修改默认作者名称

User: IDEA提示注释缺少author信息,但自动设置后,名称不是我想要的默认名称,应该如何修改IDEA里默认的作者名称? Kimi: 以下是几种修改IntelliJ IDEA中默认作者名称的方法: ### 方法一:修改File and Code …...

Playwright + MCP:用AI对话重新定义浏览器自动化,效率提升300%!

一、引言:自动化测试的“瓶颈”与MCP的革新 传统自动化测试依赖开发者手动编写脚本,不仅耗时且容易因页面动态变化失效。例如,一个简单的登录流程可能需要开发者手动定位元素、处理等待逻辑,甚至反复调试超时问题。而MCP&#xf…...

lodash 学习笔记/使用心得

lodash 学习笔记/使用心得 简单记一下 lodash 的一点学习笔记使用心得,最近也是打算清理一下所有的 dead code,然后发现我们用了好多的 lodash 方法。对比了之前的写法,重新看了一下官方文档,再自己重新动手写了点 util 之后发现…...

计算机操作系统(五) 前趋图和程序执行与进程的描述(附带图谱表格更好对比理解))

计算机操作系统(五) 前趋图和程序执行与进程的描述 前言一、前趋图和程序执行1.1前趋图1.2程序的顺序执行1.3程序的并发执行 二、进程的描述2.1进程的定义与特征2.2进程的基本状态与转换2.3挂起的操作系统和进程的转换2.4进程管理中的数据结构 总结&…...

“统计视角看世界”专栏阅读引导

根据文章主题和逻辑关系,我为您设计以下阅读引导方案: #mermaid-svg-xOnE2zTW20jz5myv {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xOnE2zTW20jz5myv .error-icon{fill:#552222;}#mermaid…...

C/C++静态库的理解和制作

1.什么是库 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说库是⼀种可执行代码的二进制形式,可以被操作系统…...

【redis】主从复制:单点问题、配置详解、特点详解

文章目录 单点问题什么是主从复制主从模式能解决的问题并发量有限可用性问题 配置建立复制通过配置文件来指定端口配置主从查看集群结构 断开复制 特点安全性只读传输延迟 单点问题 分布式系统中,涉及到一个非常关键的问题:单点问题 某个服务器程序&…...

OpenCV HighGUI 模块使用指南(Python 版)

用户让我编写一个 HighGUI 模块的使用指南,包括函数的使用和应用场景的实现。首先,我需要回顾 HighGUI 模块的主要功能:图像显示、视频捕获、鼠标和键盘事件。然后,按照用户提供的结构,整理每个部分的函数详解、代码示…...

PyTorch 面试题及参考答案(精选100道)

PyTorch 的动态计算图与 TensorFlow 的静态计算图有何区别?动态图的优势是什么? PyTorch 的动态计算图和 TensorFlow 的静态计算图在构建方式、灵活性和调试难度等方面存在显著区别。 在构建方式上,TensorFlow 的静态计算图需要先定义好整个…...

android......

事件源,就是视图对象,先注册一个监听器,等待用户触发了屏幕,一旦触发会立即产生一个事件源,事件源会生成一个用户点击的触发事件,此刻监听器会立马监听到 ,然后监听器调用回调方法 UI理解 全称用…...

常见中间件漏洞(tomcat)

CVE-2017-12615 当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产生,(需要允许put请求) , 攻击者可以利用PUT方法通过精心构造的数据包向存在漏洞的服务器里面上传…...

计算机网络高频(二)TCP/IP基础

计算机网络高频(二)TCP/IP基础 1.什么是TCP/IP⭐⭐ TCP/IP是一种网络通信协议,它是互联网中最常用的协议之一。TCP/IP有两个基本的协议:TCP(传输控制协议)和IP(互联网协议)。 TCP(Transmission Control Protocol,传输控制协议)是一种可靠的、面向连接的协议。它负…...

国际护士节知识竞赛主持稿串词

在这充满火热激情的季节,我们又迎来了5.12国际护士节。让我们首先向辛勤奋战在护理工作一线的全县广大护士姐妹们道一声: (男)让我们再一次以热烈的掌声欢迎他们:预祝各参赛代表队在护理知识竞赛中赛出风格,赛出水平,取得满意的成绩。 (女)…...

Elasticsearch:可配置的推理 API 端点分块设置

作者:来自 Elastic Daniel Rubinstein Elasticsearch 开放推理 API 现已支持可配置的分块,以便在文档摄取时处理语义文本字段。 Elasticsearch 推理 API 允许用户利用各种提供商的机器学习模型执行推理操作。其中一个常见用例是在索引中支持用于语义搜索…...

数据结构之链表(双链表)

目录 一、双向带头循环链表 概念 二、哨兵位的头节点 优点: 头节点的初始化 三、带头双向链表的实现 1.双链表的销毁 2.双链表的打印 3.双链表的尾插和头插 尾插: 头插: 4.双链表的尾删和头删 尾删: 头删: …...

uniapp从 vue2 项目迁移到 vue3流程

以下是必须为迁移到 vue3 进行调整的要点,以便 vue2 项目可以在 vue3 上正常运行。 1. 在index.js中创建应用程序实例 // Before - Vue 2 import Vue from vue import App from ./App // with no need for vue3 Vue.config.productionTip false // vue3 is no lon…...

案例:网络命名空间模拟隔离主机场景

场景描述 假设我们需要在同一台物理机上模拟两台独立的主机(Host A 和 Host B),它们分别位于不同的网络命名空间中,并通过虚拟以太网对(veth pair)进行通信。目标是展示网络命名空间的隔离性和跨命名空间的…...

23种设计模式-生成器(Builder)设计模式

工厂方法设计模式 🚩什么是生成器设计模式?🚩生成器设计模式的特点🚩生成器设计模式的结构🚩生成器设计模式的优缺点🚩生成器设计模式的Java实现🚩代码总结🚩总结 🚩什么…...

算法训练营第二十二天 | 回溯算法(四)

文章目录 前言一、Leetcode 491.递增子序列二、Leetcode 46.全排列三、Leetcode 47.全排列Ⅱ 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启…...

NLP高频面试题(十一)——RLHF的流程有哪些

随着大语言模型(如GPT系列)的快速发展,RLHF(Reinforcement Learning from Human Feedback,即基于人类反馈的强化学习)逐渐成为训练高质量模型的重要方法。本文将简单清晰地介绍RLHF的整体流程。 一、RLHF …...

测试用例设计方法与Prompt转化:一键生成高效提示词的实用指南

在测试工程师的日常工作中,设计测试用例是确保软件质量的关键环节。然而,如何快速、高效地设计出覆盖率高、逻辑严密的测试用例却是一个常见的挑战。本文将结合常用的测试用例设计方法,探索如何通过Prompt(提示词)转化…...

蓝桥杯备考:BFS最短路径之Meteor Shower S流星雨

本题是一个BFS最短路问题&#xff0c;我们可以先把时刻的矩阵搞出来&#xff0c;哪些时刻哪些方块儿不能走用来剪枝 如果第一次走到永远不会被扎到的区域&#xff0c;那时候就是我们的最短距离 定义方向向量 #include <iostream> #include <queue> #include <c…...