Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 + 实践 + 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。
第一阶段:准备与基础概念 (1-2 周)
1. 理解 Java 是什么
-
一种高级、面向对象、跨平台的编程语言。
-
核心优势: “Write Once, Run Anywhere” (WORA) - 得益于 Java 虚拟机 (JVM)。
-
主要应用领域:
企业级应用开发 (后端服务、Web 应用)
Android 应用开发
大数据技术 (Hadoop, Spark)
桌面应用程序 (相对较少)
嵌入式系统
科学计算
2. 搭建开发环境
-
安装 Java Development Kit (JDK):这是核心,包含了编译器 (
javac
) 和运行时环境 (JRE)。 -
选择 Oracle JDK 或 OpenJDK (推荐 OpenJDK,免费开源)。下载对应你操作系统的版本 (Windows,
macOS, Linux)。 -
配置环境变量 (PATH 和 JAVA_HOME)
JAVA_HOME
: 指向你的 JDK 安装目录 (e.g.,C:\Program Files\Java\jdk-21
或/usr/lib/jvm/java-21-openjdk-amd64
)。PATH
: 添加%JAVA_HOME%\bin
(Windows) 或$JAVA_HOME/bin
(macOS/Linux)。
验证安装:打开终端/命令提示符,输入java -version
和javac -version
。应该能看到安装的版本信息。
选择集成开发环境 (IDE): 强烈推荐!极大提高效率。- IntelliJ IDEA (Community Edition):免费,功能强大,对 Java 支持极佳,强烈推荐新手使用。
3. 第一个 Java 程序:Hello World
- 在你的 IDE 中创建一个新项目。 创建一个名为
HelloWorld.java
的类文件。 输入以下代码:
javapublic class HelloWorld { // 类名必须与文件名完全一致(区分大小写)public static void main(String[] args) { // 程序执行的入口点System.out.println("Hello, World!"); // 向控制台输出文本}}
-
理解关键点:
public class HelloWorld
: 定义一个公共类,类名是HelloWorld
。
public static void main(String[] args)
: 主方法,程序启动时从这里开始执行。这是固定写法。
System.out.println(...)
: 用于在控制台输出一行文本。 -
编译和运行:
在 IDE 中通常有“运行”按钮 (▶️)。
手动编译:javac HelloWorld.java
(生成HelloWorld.class
字节码文件)。
手动运行:java HelloWorld
(注意不要加.class
)。
第二阶段:核心语法基础 (2-4 周)
4. 变量与数据类型:
-
变量: 存储数据的命名容器。
-
声明:
数据类型 变量名;
(e.g.,int age;
) -
初始化:
变量名 = 值;
(e.g.,age = 25;
) 或声明时初始化int age = 25;
-
基本数据类型 (Primitive Types): 直接存储值。
整型:byte
(8位),short
(16位),int
(32位, 常用),long
(64位, 后缀L
)
浮点型:float
(32位, 后缀F
),double
(64位, 常用)
字符型:char
(16位 Unicode, 单引号'A'
)
布尔型:boolean
(true
/false
) -
引用数据类型 (Reference Types): 存储对象的引用 (内存地址)。包括类 (如
String
)、数组、接口等。
String
类: 非常重要!表示字符串 (双引号"Hello"
)。它是不可变的。学习常用方法 (length()
,charAt()
,substring()
,equals()
,toLowerCase()
,
indexOf()
等)。
5. 运算符:
- 算术运算符:
+
,-
,*
,/
,%
(取模),++
(自增),--
(自减) - 赋值运算符:
=
,+=
,-=
,*=
,/=
,%=
- 关系运算符 (比较):
==
,!=
,>
,<
,>=
,<=
(结果为boolean
) - 逻辑运算符:
&&
(逻辑与),||
(逻辑或),!
(逻辑非) (操作boolean
值) - 位运算符 (了解):
&
,|
,^
,~
,<<
,>>
,>>>
-条件运算符 (三元运算符):条件 ? 表达式1 : 表达式2
6. 控制流:
- 条件语句
if`:```javaif (条件) {// 条件为 true 时执行}````if-else`:```javaif (条件) {// 条件为 true 时执行} else {// 条件为 false 时执行}````if-else if-else`:```javaif (条件1) {// ...} else if (条件2) {// ...} else {// ...}```
`switch-case` (适用于多分支,JDK 7+ 支持 `String`):```javaswitch (表达式) {case 值1:// 代码块1break; // 跳出 switchcase 值2:// 代码块2break;...default:// 没有匹配 case 时执行}```
循环语句:
for
(已知循环次数):
for (初始化; 循环条件; 迭代语句) {// 循环体}````while` (先判断条件):```javawhile (循环条件) {// 循环体}````do-while` (至少执行一次):```javado {// 循环体} while (循环条件);```循环控制:`break;` - 跳出当前循环。`continue;` - 跳过本次循环剩余语句,进入下一次循环。`return;` - 跳出当前方法 (也会终止循环)。
本篇内容到此结束,接下来还会出一篇供大家学习。
相关文章:
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...