Java从入门到“放弃”(精通)之旅——启航①
🌟Java从入门到“放弃 ”精通之旅🚀
今天我将要带大家一起探索神奇的Java世界!希望能帮助到同样初学Java的你~ (๑•̀ㅂ•́)و✧
🔥 Java是什么?为什么这么火?
Java不仅仅是一门编程语言,更是一个完整的技术体系!它由Sun公司(现Oracle)在1995年推出,凭借"Write Once, Run Anywhere"的理念迅速风靡全球。
Java语言发展史 
看看2017年12月和2018年10月最新的TIOBE编程语言社区排行榜就知道Java有多受欢迎了:
排名 | 语言 | 市场份额 |
---|---|---|
1 | Java | 17.801% |
2 | C | 15.376% |
3 | C++ | 7.593% |
✨ 小知识:Java最初叫Oak(橡树),因为创始人James Gosling办公室外有一棵橡树🌳
💼 Java能做什么?就业方向有哪些?
学Java不愁找工作!主要应用领域包括:
- 🏢 企业级系统:银行、电信等大型系统
- 🌐 Web开发:京东、淘宝等电商平台
- 📱 Android开发:80%的安卓APP用Java开发
- 📊 大数据:Hadoop、Spark等大数据框架
- 🎮 游戏开发:Minecraft就是用Java写的!
✨ Java的11大特性
1. 简单性:比C++更简洁,没有指针等复杂概念
- Java语法是C++语法的一个“纯净版本”,相当于对C++做了一个减法。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开
发环境。
2. 面向对象:一切皆对象!🐶🐱
- 比如:人、狗、手机、电脑等都是对象。所谓面相对象,就是依靠对象之间的交互来完成事情,比如:人用手机网上购物,狗吃骨头…
3. 可移植:Java规范中没有“依赖具体实现的地方
- 基本数据类型的大小以及有关运算都做了明确的说明。例如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。
4. 健壮性:自动内存管理,告别内存泄漏
- Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。
5. 多线程:轻松处理高并发
- Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。
6. …(还有更多等你探索!)
🛠️ 开发环境搭建
安装JDK是第一步!
- 可能是Windows下最简单的Java
- 环境安装指南Linux下JDK的安装(多种方式)
- Mac下JDK的安装
# 检查安装是否成功
java -version
javac -version
⚠️ 注意配置环境变量哦!PATH和JAVA_HOME都要设好~
🎯 第一个Java程序:Hello World
Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。
/*** 我的第一个Java程序* @author 你的名字*/
public class HelloWorld {/** main方法是程序入口*/public static void main(String[] args) {// 打印Hello World!System.out.println("Hello, World!"); }
}
编译运行步骤:
- 保存为
HelloWorld.java
- 编译:
javac HelloWorld.java
- 运行:
java HelloWorld
📝 Java三大注释类型
- 单行注释:
// 我是注释
- 多行注释:
/* 我是多行注释 */
- 文档注释:
/** 我是文档注释 */
(可以用javadoc生成文档)
注释规范
- 内容准确: 注释内容要和代码一致, 匹配, 并在代码修改时及时更新
- 篇幅合理: 注释既不应该太精简, 也不应该长篇大论.
- 使用中文: 一般中国公司都要求使用中文写注释, 外企另当别论.
- 积极向上: 注释中不要包含负能量(例如 不想工作,想躺平等).
# 生成API文档
javadoc -d doc HelloWorld.java
🏷️ 标识符命名规则
在上述程序中,Test称为类名,main称为方法名,也可以将其称为标识符,即:在程序中由用户给类名、方法名或者变量所取的名字。
-
硬性规则:
- 不能以数字开头
- 不能是关键字
- 区分大小写
-
软性建议(团队协作很重要!):
- 类名:
大驼峰
,如HelloWorld
- 方法/变量:
小驼峰
,如getUserName
- 常量:
全大写_连接
,如MAX_SIZE
- 类名:
🔑 Java关键字大全
Java有50+个关键字,先认识几个常用的:
类别 | 关键字示例 |
---|---|
访问控制 | public , private , protected |
类相关 | class , interface , extends |
流程控制 | if , else , for , while |
异常处理 | try , catch , finally |
❌ 注意:关键字不能用作标识符!
💡 学习建议
- 多敲代码!光看不动手=学不会游泳只看书🏊
- 遇到报错别慌,这是进步的机会💪
- 坚持写注释和文档,三个月后的你会感谢现在认真的自己
- 加入Java学习社群,互相督促成长
❓【面试题】JDK、JRE、JVM之间的关系?
解答:
- JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。
- JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。
- JVM:Java虚拟机,运行Java代码
🌈 总结
Java是一门强大而优雅的语言,无论是就业还是个人成长都是绝佳选择。从今天开始,让我们一起在Java的世界里探索吧!下次我会带来Java基础语法的详细讲解,敬请期待~
互动时间:你学Java的目的是什么?评论区告诉我吧!👇
💌 PS:如果觉得有帮助,别忘了点赞收藏哦!你的支持是我更新的最大动力~
相关文章:
Java从入门到“放弃”(精通)之旅——启航①
🌟Java从入门到“放弃 ”精通之旅🚀 今天我将要带大家一起探索神奇的Java世界!希望能帮助到同样初学Java的你~ (๑•̀ㅂ•́)و✧ 🔥 Java是什么?为什么这么火? Java不仅仅是一门编程语言,更…...
Web前端之Vue+Element实现表格动态不同列合并多行、localeCompare、forEach、table、push、sort、Map
MENU 效果图公共数据数据未排序时(需要合并的行数据未处于相邻位置)固定合并行(写死)动态合并行方法(函数)执行 效果图 公共数据 Html <el-table :data"tableData" :span-method"chang…...
JavaScript(JS进阶)
目录 00闭包 01函数进阶 02解构赋值 03通过forEach方法遍历数组 04深入对象 05内置构造函数 06原型 00闭包 <!-- 闭包 --><html><body><script>// 定义:闭包内层函数(匿名函数)外层函数的变量(s&…...
学习51单片机Day02---实验:点亮一个LED灯
目录 1.先看原理图 2.思考一下(sbit的使用): 3.给0是要让这个LED亮(LED端口设置为低电平) 4.完成的代码 1.先看原理图 比如我们要让LED3亮起来,对应的是P2^2。 2.思考一下(sbit的使用&…...
线性回归模型--California房价预测
#利用线性回归模型california房价预测 #调用API from sklearn.datasets import fetch_california_housing from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegression,SGDRe…...
c++进阶之----异常
1. 异常处理的基本概念 异常处理是 C 中一种用于处理运行时错误的机制,允许程序在遇到错误时优雅地处理问题,而不是直接崩溃。异常处理的核心是通过 try、catch 和 throw 关键字来实现,它允许程序在遇到错误时优雅地处理问题,而不…...
SmolDocling:一种超紧凑的视觉语言模型,用于端到端多模态文档转换
paper地址:SmolDocling: An ultra-compact vision-language model for end-to-end multi-modal document conversion Huggingface地址:SmolDocling-256M-preview 代码对应的权重文件:SmolDocling-256M-preview权重文件 一、摘要 以下是文章摘要的总结: SmolDocling 是一…...
多模态大模型在目标检测领域的最新进展
1. 技术融合创新 多模态数据融合: 传感器融合:整合图像、激光雷达(LiDAR)、毫米波雷达等数据,提升检测精度和鲁棒性。例如,在自动驾驶中,通过融合视觉与LiDAR数据,实现三维目标检测…...
KWDB创作者计划—KWDB技术重构:重新定义数据与知识的神经符号革命
引言:数据洪流中的范式危机 在AI算力突破千卡集群、大模型参数量级迈向万亿的时代,传统数据库系统正面临前所未有的范式危机。当GPT-4展现出跨领域推理能力,AlphaFold3突破蛋白质预测精度时,数据存储系统却仍在沿用基于关系代数的…...
我开源了一个“宝藏”开源项目
我开源了一个“宝藏”开源项目 - AI需求分析项目 | 适合交作业和学习 🚀 前言 大家好!最近在学习软件工程和大模型应用开发的过程中,我发现许多学生都遇到了需求分析AI的题目。把一份需求文档转化为用户故事、实体关系或数据库设计ÿ…...
从零实现Agent智能体配置使用(Ragflow)
从零实现Agent智能体配置使用(Ragflow) 1. 创建智能体2. 配置智能体2.1 配置问题识别2.2 配置问题分类2.3 不同问题进行单独配置2.4 保存Agent 3. 体验效果 1. 创建智能体 2. 配置智能体 2.1 配置问题识别 2.2 配置问题分类 2.3 不同问题进行单独配置 当…...
Fluent VOF水下固体火箭发射仿真
本案例利用VOF模型对水下固体火箭(10m水深)发动机点火初期的流场进行了仿真。该案例所用模型为假设模型,且缺少相关燃气参数,仅作计算设置参考。通过此案例后续跨可以对不同水深、不同模型的工况展开类似仿真计算。 1 假设说明 …...
电脑死机/锁屏后死机无法唤醒
电脑死机/锁屏后死机无法唤醒 导航 文章目录 电脑死机/锁屏后死机无法唤醒导航一、系统日志分析二、电源管理与睡眠模式问题1、禁用快速启动2、调整电源计划(开启高性能模式&关闭硬盘休眠)若是没有禁用睡眠和关闭显示器方法一:方法二&am…...
爱普生可编程晶振SG8201CJ和SG8200CJ在胃镜机器人发挥重要作用
在医疗机器人技术高速发展的今天,胃镜机器人作为胃肠道疾病诊断与治疗的创新设备,正逐渐改变传统诊疗模式。其复杂精密的系统需要精准的时间同步与稳定的信号输出,胃镜机器人是一种先进的医疗设备,用于无创性地检查胃部疾病。与传…...
按规则批量修改文件名称,支持替换或删除文件名称中的内容
文件重命名的需求在我们工作中是非常常见的一个需求,也非常的重要的一个需求,我相信很多小伙伴在工作中都会碰到需要进行文件重命名的场景。今天就给大家介绍一个文件重命名的方法,支持多种方式批量修改文件名称。功能非常的强大,…...
scrum详细理解
Scrum与传统瀑布模型区别 瀑布模型:需要花费几个月来规划产品----->在花费几个月时间进行研发----->产品测试、评审----->最终发布产品 缺点:①如果市场需求发生变化,研发的产品可能无法满足市场需求 ②产品规划必须早于后续工作之…...
数据结构(五)——AVL树(平衡二叉搜索树)
目录 前言 AVL树概念 AVL树的定义 AVL树的插入 右旋转 左旋转 左右双旋 右左双旋 插入代码如下所示 AVL树的查找 AVL树的遍历 AVL树的节点个数以及高度 判断平衡 AVL树代码如下所示 小结 前言 前面我们在数据结构中介绍了二叉搜索树,其中提到了二叉搜…...
Linux文件传输:让数据飞起来!
一、前置任务 为了便于实验,我用母盘的虚拟机克隆出两台虚拟机来模拟两台主机进行文件传输 查询两台主机的IP BL1 192.168.163.130/24 BL2 192.168.88.129/24 二、文件传输 scp命令 不填选项正常显示进度的传输-q静默传输-r递归传输(用于传输目录及目…...
repo仓库文件清理
1. repo 仓库内文件清理 # 清理所有Git仓库中的项目 repo forall -c git clean -dfx # 重置所有Git 仓库中的项目 repo forall -c git reset --hard 解释: repo forall -c git clean -dfx: repo forall 是一个用于在所有项目中执行命令的工具。-c 后…...
MyBatis-Plus 的 FieldStrategy 属性
前几天做个需求的时候,有几个字段在更新的时候,可能为空。想着MyBatis-Plus有注解可以直接使用,就找寻了一下。此处记录一下。我用的MyBatis-Plus的版本是 3.5.1。版本之间对于 TableField 中的方法定义有些区别,但大体相差不大。…...
解锁塔能科技,开启工厂绿色转型与可持续发展双引擎
在全球积极推进可持续发展的大背景下,能源的高效利用与节能减排,已成为各行各业迈向高质量发展进程中无法回避的核心任务。工厂作为能源消耗大户与污染排放重点源头,其绿色转型迫在眉睫,这不仅关乎企业自身的长远发展,…...
c++进阶--智能指针
大家好,今天我们来学习一下c中的智能指针部分。 智能指针的使⽤及其原理 1. 智能指针的使⽤场景分析 下⾯程序中我们可以看到,new了以后,我们也delete了,但是因为抛异常导,后⾯的delete没有得到执⾏,所以…...
五种常用的web加密算法
文章目录 五种常用Web加密算法实战及原理详解1. AES (高级加密标准)原理详解应用场景实战代码(Node.js) 2. RSA (非对称加密)原理详解应用场景实战代码(Node.js) 3. SHA-256 (安全哈希算法)原理详解应用场景实战代码(浏…...
LeetCode 题目 「二叉树的右视图」 中,如何从「中间存储」到「一步到位」实现代码的优化?
背景简介 在 LeetCode 的经典题目 「二叉树的右视图」 中,我们需要返回从右侧看一棵二叉树时所能看到的节点集合。每一层我们只能看到最右边的那个节点。 最初,我采用了一个常规思路:层序遍历 每层单独保存节点值 最后提取每层最后一个节…...
MySQL——存储过程、索引
一、存储过程 1、存储过程使用的场景 例如:有一个购物网站,要验证查询商品的性能,测试之前肯定要准备大量的测试数据,如果是通过 执行 insert 语句一条一条进行插入,效率很低。这种情况下,写一个存储过程…...
【项目管理】第9章 项目范围管理
相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应:第6章-第19章 (二)知识笔记 第9章 项目范围管理 1.管理基础 1.1 产品范围…...
无人机隐身技术难点要点!
全频段雷达隐身 频段覆盖挑战:传统隐身材料(如铁氧体、掺杂半导体)多针对特定频段(如X波段),难以应对米波至毫米波的宽频段探测。 低频段突破:低频雷达(如米波雷达)波长…...
gerrit配置及使用git-lfs
gerrit服务器端配置 下载git-lfs插件 登录Dashboard [Jenkins] (gerritforge.com),下载对应版本的插件 配置gerrit 将下载的lfs.jar插件放到${GERRIT_SITE}/plugins/下面为所有仓库启用git-lfs 此步骤需要修改 All-projects 仓库配置,步骤如下 1、克隆仓…...
基于DNS的负载均衡和反向代理负载均衡
基于 DNS 的负载均衡和反向代理负载均衡有一些相似之处,但实际上它们存在诸多区别,主要体现在以下几个方面: 工作原理 DNS 负载均衡:通过在 DNS 服务器中为同一主机名配置多个 IP 地址,DNS 服务器根据一定的算法&…...
Windows10 ssh无输出 sshd服务启动失败 1067报错 公钥无法认证链接 解决办法
背景描述 最近突然发现windows 10的ssh服务好像挂了,在系统设置-可选功能那里反复重新安装还是报错。命令行输入ssh按回车无输出(正常情况下应该输出一堆参数说明),但是Get-Command ssh 又可以找到system32下的ssh程序。任务管理…...
【图书管理系统】深入解析基于 MyBatis 数据持久化操作:全栈开发图书管理系统:查询图书属性接口(注解实现)、修改图书属性接口(XML 实现)
查询图书属性接口 约定前后端交互接口 约定前后端交互接口,进入修改页面,需要显示当前图书的信息; 请求 /book/queryBookById?bookId25 参数 无 响应 { "id": 25, "bookName": "图书21", "…...
消息队列(IPC技术)
目录 一、Linux 中主要的进程间通信方式如下: 二、消息队列函数 (1)msgget函数 功能概述 函数原型 参数解释 返回值 示例 结果 问题 (2) msgsnd函数 功能概述 函数原型 参数说明 返回值 示例 结果 (3࿰…...
分支语句和循环语句
什么是语句? C语言中由一个分号;隔开的就是一条语句。 比如: printf("haha");12;分支语句 if语句 if语句的语法结构: if(表达式)语句;if(表达式)语句1; else语句2;//多分支 if(表达式1)语句1; else if(表达式2)语句2; else语句3;在C语言…...
MySQL基础 [八] - 事务
目录 前言 什么是事务 事务的版本支持 事务的提交方式 事务的相关演示 并行事务引发的问题 脏读 dirty read 不可重复读 non-repeatable read 幻读 phantom read 事务的隔离级别 查看与设置隔离级别 读未提交(Read Uncommitted) 读提交&…...
深入理解Java反射
反射(Reflection)是Java语言的一个强大特性,它允许程序在运行时动态地获取类的信息并操作类或对象的属性、方法和构造器。就是在获取运行时的java字节码文件,通过各种方法去创建对象,反射是Java被视为动态语言的关键特性之一。 反射其实就是…...
【UE】渐变框材质
效果 步骤 新建一个材质,这里命名为“M_GlowingBorder”,打开“M_GlowingBorder”后,设置材质域为“用户界面”,混合模式为“半透明” 添加如下节点: 代码: Begin Object Class/Script/UnrealEd.Materia…...
2025年第十八届“认证杯”数学中国数学建模网络挑战赛【ABCD题】思路分析
首先,需要理解用户的需求。问题1需要数学模型来确定小行星的相对距离,而问题2需要预测短期轨道并计算特定时间的观测角度。这两个问题都需要结合天文学和数学建模的知识,涉及到轨道力学和几何定位的方法。 接下来,查阅提供的搜索…...
JavaScript 性能优化:突破瓶颈的实战指南
一、引言 在现代 Web 应用和 Node.js 服务端开发中,JavaScript 已成为核心编程语言。随着应用复杂度提升,性能问题愈发凸显。高延迟、卡顿甚至崩溃等现象,不仅影响用户体验,还可能导致业务流失。深入理解 JavaScript 性能瓶颈并…...
HarmonyOS:组件布局保存至相册
一,需求背景 有这样一个需求,将页面上的某个自定义组件以图片的形式保存至相册。 二,需求拆解 根据需求分析,可将需求拆解成两步: 1,将组件转换成图片资源; 2,将图片保存到相册…...
【langchain库名解析】
目录 一、from langchain_openai import ChatOpenAI 1. 核心功能 2. 典型使用场景 场景 1:直接生成对话回复 场景 3:流式输出(逐词显示结果) 3. 与其他 LangChain 组件的协同 结合提示模板(PromptTemplate&#…...
629SJBH图书管理系统设计与实现
一、 绪论 (一)课题的提出、现状及研究意义 图书馆是文献情报中心,是为教学和科研服务的学术性机构。它履行搜集、加工、存贮和传播知识信息的职能,与各系资料室互为补充,共同承担为教学和科研提供文献情报资料保障的…...
2025 年“认证杯”数学中国数学建模网络挑战赛 A题 小行星轨迹预测
近地小行星( Near Earth Asteroids, NEAs )是轨道相对接近地球的小行 星,它的正式定义为椭圆轨道的近日距不大于 1.3 天文单位( AU )的小行星。 其中轨道与地球轨道最近距离小于 0.05A 且直径大于 140 米的小行星被…...
PhotoShop学习09
1.弯曲钢笔工具 PhotoShop提供了弯曲钢笔工具可以直观地创建路径,只需要对分段推拉就能够进行修改。弯曲港币工具位于工具面板中的钢笔工具里,它的快捷键为P。 在使用前,可以把填充和描边选为空颜色,并打开路径选项,勾…...
远程管理命令:关机和重启
关机/重启 序号命令对应英文作用01shutdown 选项 时间shutdown关机 / 重新启动 一、shutdown shutdown 命令可以安全关闭 或者 重新启动系统。 选项含义-r重新启动 提示: 不指定选项和参数,默认表示 1 分钟之后 关闭电脑远程维护服务器时࿰…...
用Perl和HTTP::Tiny库的爬虫
HTTP::Tiny是Perl的一个轻量级HTTP客户端,适合简单的请求,但不像LWP那样功能全面,不过对于基本需求应该足够了。 首先,我需要熟悉HTTP::Tiny的基本用法。比如如何发起GET请求,设置user-agent,处理响应。用…...
MPP 架构解析:原理、核心优势与对比指南
一、引言:大数据时代的数据处理挑战 全球数据量正以指数级增长。据 Statista 统计,2010 年全球数据量仅 2ZB,2025 年预计达 175ZB。企业面临的核心挑战已从“如何存储数据”转向“如何快速分析数据”。传统架构在处理海量数据时暴露明显瓶颈…...
2025.04.10-拼多多春招笔试第三题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 数字重排最大化问题 问题描述 LYA是一位专业的数字设计师。她手中有两个数字序列 s 1 s_1...
前端-vue2核心
官网网址Vue2 安装 — Vue.js 搭建环境 第一种方式(刚开是接触Vue) 我们看官网,可以直接在script引入vue版本。这里有两个版本,开发版和生产版本。我们两个都下载。 然后创建一个项目,将下载的生产版本和开发版本粘…...
基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现(源码+数据库+文档+PPT)
基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:springboot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统…...
制作前的关键筹备:考试考核系统之核心要点
明确系统使用目的 制作考试考核系统前,企业需明确系统使用目的,这是开发基石,不同目的决定系统功能特性。用于员工培训考核时,系统要与培训内容结合,能生成相应考题,检验员工知识掌握程度,具备…...