Java入门笔记(1)
引言
在计算机编程的广袤宇宙中,Java无疑是一颗格外耀眼的恒星。那么,Java究竟是什么呢? Java是美国Sun公司(Stanford University Network)在1995年推出的一门计算机高级编程语言。曾经辉煌的Sun公司在2009年被Oracle(甲骨文)公司收购,但Java的影响力并未因此而衰减。普遍认同Java的联合创始人之一詹姆斯·高斯林(James Gosling)为“Java之父”,他的智慧与创造力为Java的诞生奠定了基石。
为什么Java会被企业广泛采用呢?
其一,Java是世界上最流行的编程语言之一,在国内更是使用最为广泛。从TIOBE编程语言社区指数图表中可以清晰地看到,多年来Java始终保持在前列,其流行度经久不衰。其二,Java拥有完善的开发社区。在这个庞大的社区里,开发者们可以分享经验、交流技术、获取丰富的开源资源,极大地丰富了Java的功能。其三,Java具备出色的特性,它具有很好的可移植性,能够在不同的操作系统和硬件平台上稳定运行;安全可靠,为企业级应用提供了坚实的保障;性能也较为出色,能够满足各种复杂业务场景的需求。
学完Java能做什么呢?
其应用领域十分广泛。在大数据与云计算领域,Python和SQL占据重要地位,Java也可以,它可以用于构建分布式系统、处理海量数据等。对于桌面应用开发,Java提供了丰富的工具和框架,能够开发出功能强大、界面友好的应用程序。在移动端App开发方面,Kotlin和前端框架发展迅速,但Java仍然是重要的开发语言之一。科学计算领域,Java的高精度和稳定性使其成为不错的选择。游戏开发中,Java也有一席之地,能够打造出各种精彩的游戏。而在企业服务器端软件开发方面,Java更是占据了90%以上的市场份额,成为企业级应用开发的首选语言。
Java拥有三大技术平台
- Java SE(Java Standard Edition)即标准版,是Java技术的核心和基础,它为Java应用程序的开发提供了基本的类库和运行环境。
- Java EE(Java Enterprise Edition)即企业版,是一套针对企业级应用开发的解决方案,包含了众多用于开发大型、分布式、企业级应用的技术和规范,如Servlet、JSP、EJB等。
- Java ME(Java Micro Edition)即小型版,主要针对移动设备应用,为手机、PDA等小型设备提供了Java应用开发的平台。
- Java凭借其强大的功能、广泛的应用和丰富的技术生态,在编程语言的舞台上绽放着持久而耀眼的光芒,无论是编程新手还是经验丰富的开发者,都能在Java的世界中找到属于自己的机会和挑战。
安装jdk工具
- 下载 JDK:
- 打开 Oracle 官方网站的 Java 下载页面(Java Downloads | Oracle ),找到适合 Windows 系统的 JDK 版本(如 JDK 17 等),根据系统是 32 位还是 64 位选择对应的安装包下载。
- 也可以选择 OpenJDK,一些开源组织提供的 OpenJDK 在功能上与 Oracle JDK 类似,可从 Adoptium(Home | Adoptium )等网站下载。
- 安装 JDK:
- 双击下载好的.exe 安装文件,按照安装向导提示操作,选择安装路径等参数,默认安装路径一般为 C:\Program Files\Java\jdk - <版本号> ,可自行修改。
- 安装过程中可能会提示安装 JRE(Java Runtime Environment),可根据需要选择是否安装。
- 配置环境变量:
- 右键点击 “此电脑”,选择 “属性”,然后点击 “高级系统设置”。
- 在弹出的 “系统属性” 窗口中,选择 “高级” 选项卡,点击 “环境变量”。
- 在 “系统变量” 中,找到 “Path” 变量,点击 “编辑”。
- 点击 “新建”,将 JDK 安装目录下的 “bin” 目录路径(如 C:\Program Files\Java\jdk - < 版本号 >\bin )添加进去。
- 也可新建 “JAVA_HOME” 系统变量,变量值为 JDK 的安装目录(如 C:\Program Files\Java\jdk - < 版本号 > )。
- 验证安装:打开命令提示符(CMD),输入 “java -version”,若显示 JDK 的版本信息,则说明安装成功。
JDK的组成
JDK(Java Development Kit)即Java开发工具包,主要由以下部分组成:
1. Java虚拟机(JVM,Java Virtual Machine):是Java程序的运行核心,负责加载字节码文件,并将字节码解释或编译成机器码在不同操作系统上执行,提供内存管理、垃圾回收、安全检查等功能。
2. Java运行时环境(JRE,Java Runtime Environment):包含JVM、Java核心类库以及支持Java程序运行的其他组件。它是运行Java程序所必需的环境,即使不开发Java程序,仅运行Java程序也需安装JRE。
3. Java开发工具:
- 编译器(javac):将Java源文件(.java)编译成字节码文件(.class)。
- 解释器(java):负责运行编译后的字节码文件,启动JVM并执行其中的指令。
- 调试器(jdb):用于调试Java程序,能设置断点、查看变量值、单步执行等,帮助开发者查找和解决代码中的错误。
- 打包工具(jar):可将多个.class文件及相关资源文件打包成一个JAR(Java Archive)文件,便于程序的分发和部署。
4. Java类库:
- 核心类库:提供了Java编程中常用的类和接口,像用于输入输出的java.io包、集合框架java.util包、网络编程的java.net包等,是开发Java程序的基础。
- 扩展类库:除核心类库外,还有一些扩展功能的类库,可根据特定开发需求使用。
什么是Path环境变量?
用于配置程序的路径,方便我们在命令窗口的任意目录下启动该程序。
JDK安装时,关于环境变量的配置,需要注意什么?
- 较新版本的JDK会自动配置PATH环境变量,较老的JDK版本则不会。
- 建议还是自己配置一下“PATH”、“JAVA_HOME” 。
IDEA企业开发工具简介以及安装
IntelliJ IDEA 是一款由 JetBrains 公司开发的强大集成开发环境,堪称 Java 开发者的得力助手。它拥有智能代码补全功能,能依据代码上下文精准预测补全内容,大幅提升编码效率。同时具备强大的代码分析与重构能力,可实时检测潜在问题并提供优化建议,方便团队协作开发。
IntelliJ IDEA 分为社区版和旗舰版。社区版免费开源,适合初学者和小型项目开发;旗舰版功能更全面,支持多种技术框架,适用于企业级大型项目。它支持 Windows、macOS、Linux 等多平台,还有丰富插件可拓展功能,满足不同开发者的多样需求。
- 下载安装包:
- 访问 JetBrains 官方网站(IntelliJ IDEA – the Leading Java and Kotlin IDE ),在页面中找到 IntelliJ IDEA 下载选项。
- IDEA 分为社区版(Community)和旗舰版(Ultimate)等,社区版免费开源,旗舰版功能更强大,适合企业开发,有试用期限,根据需求选择下载。
- 点击下载按钮,获取.exe 格式的安装包。
- 安装程序:
- 下载完成后,双击安装包文件启动安装向导。
- 按照向导提示操作,如选择安装路径(默认一般在 C:\Program Files\JetBrains\IntelliJ IDEA <版本号> ,可自定义修改)、选择创建桌面快捷方式等选项。
- 点击 “Next” 逐步完成安装,最后点击 “Finish” 完成安装过程。
- 首次启动与配置:
- 安装完成后,双击桌面的 IntelliJ IDEA 图标启动软件。
- 首次启动时,会弹出配置向导,可选择是否导入之前版本的设置等。
- 接着会提示选择主题(如 Darcula、IntelliJ 等),根据喜好选择。
- 之后软件会自动检测电脑上已安装的 JDK,如果没有检测到合适的 JDK,需要手动配置(在后续创建项目或在设置中配置)。
相关文章:
Java入门笔记(1)
引言 在计算机编程的广袤宇宙中,Java无疑是一颗格外耀眼的恒星。那么,Java究竟是什么呢? Java是美国Sun公司(Stanford University Network)在1995年推出的一门计算机高级编程语言。曾经辉煌的Sun公司在2009年被Oracle&…...
设计模式的艺术-开闭原则
原则使用频率图(仅供参考) 1.如何理解开闭原则 简单来说,开闭原则指的是 “对扩展开放,对修改关闭”。 当软件系统需要增加新的功能时,应该通过扩展现有代码的方式来实现,而不是去修改已有的代码。 例如我…...
【C语言系列】深入理解指针(3)
深入理解指针(3) 一、字符指针变量二、数组指针变量2.1数组指针变量是什么?2.2数组指针变量怎么初始化? 三、二维数组传参的本质四、函数指针变量4.1函数指针变量的创建4.2函数指针变量的使用4.3两段有趣的代码4.4 typedef关键字 …...
three.js+WebGL踩坑经验合集:写在前面的话
笔者从2023年初开始参与一个基于three.js引擎的web项目的开发工作。本打算2024年春节就把期间踩过的坑写到博客上分享给大家,然而哪怕本专栏的各种构思和内容已经在笔者的脑海里翻滚了一年,得了严重拖延症患者的我还是一直拖到了现在,实在惭愧…...
利用Linux的工作队列(Workqueue)实现中断下半部的处理
本文代码在哪个基础上修改而成? 本文是在博文 https://blog.csdn.net/wenhao_ir/article/details/145228617 的代码基础上修改而成。 关于工作队列(Workqueue)的概念 工作队列(Workqueue)可以用于实现Linux的中断下半部的,之前在博文 https://blog.cs…...
LabVIEW处理复杂系统和数据处理
LabVIEW 是一个图形化编程平台,广泛应用于自动化控制、数据采集、信号处理、仪器控制等复杂系统的开发。它的图形化界面使得开发人员能够直观地设计系统和算法,尤其适合处理需要实时数据分析、高精度控制和复杂硬件集成的应用场景。LabVIEW 提供丰富的库…...
spring-springboot -springcloud
目录 spring: 动态代理: spring的生命周期(bean的生命周期): SpringMvc的生命周期: SpringBoot: 自动装配: 自动装配流程: Spring中常用的注解: Spring Boot中常用的注解: SpringCloud: 1. 注册中心: 2. gateway(网关): 3. Ribbon(负载均…...
DRG/DIP 2.0时代下基于PostgreSQL的成本管理实践与探索(下)
五、数据处理与 ETL 流程编程实现 5.1 数据抽取与转换(ETL) 在 DRG/DIP 2.0 时代的医院成本管理中,数据抽取与转换(ETL)是将医院各个业务系统中的原始数据转化为可供成本管理分析使用的关键环节。这一过程涉及从医院 HIS 系统中抽取患者诊疗数据,并对其进行格式转换、字…...
打造本地音乐库
文章目录 存储介质硬盘(NAS)媒体播放器(可视MP3、MP4)实体介质(CD光盘、黑胶片)注意事项为什么不使用在线音乐(App)和网盘打造一套HiFi系统的成本非常高 获取音乐正版音乐途径免费音…...
【2024 - 年终总结】叶子增长,期待花开
写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言论博客创作保持2024的记录清单博客科研开源工作生活 总结与展望互动致谢参考 前言…...
python 统计相同像素值个数
目录 python 统计相同像素值个数 最大值附近的值 python 统计相同像素值个数 import cv2 import numpy as np import time from collections import Counter# 读取图像 image cv2.imread(mask16.jpg)# 将图像转换为灰度图像 gray_image cv2.cvtColor(image, cv2.COLOR_BGR2…...
蓝卓“1+2+N”智慧工厂架构,让工业智能更简单
面对复杂的工业环境、海量的数据以及多样化的业务需求,如何实现智能化转型,让工业智能触手可及,成为了众多企业面临的难题。蓝卓以创新精神为引领,推出了“12N”智慧工厂架构,旨在简化工业智能的实现路径,让…...
12、MySQL锁相关知识
目录 1、全局锁和表锁使用场景 2、行锁的意义 3、为什么说间隙锁解决了快照的幻读? 4、RR隔离级别产生幻读的场景 5、详解元数据锁(MDL)作用以及如何减少元数据锁 6、出现死锁场景 7、查看MySQL锁情况 8、自增锁 1、全局锁和表锁使用场景 全局锁 备份数据库:当需要…...
某大厂一面:HashMap 的put方法具体做了哪些操作
HashMap 的 put 方法是一个常用的操作,它将一个键值对插入到哈希表中。下面是 put 方法执行的详细流程,包括各个步骤的解释,并附上相应的代码片段。 1. 检查键是否为 null 如果传入的键为 null,HashMap 会特别处理这种情况&…...
WPF基础 | 深入 WPF 事件机制:路由事件与自定义事件处理
WPF基础 | 深入 WPF 事件机制:路由事件与自定义事件处理 一、前言二、WPF 事件基础概念2.1 事件的定义与本质2.2 常见的 WPF 事件类型 三、路由事件3.1 路由事件的概念与原理3.2 路由事件的三个阶段3.3 路由事件的标识与注册3.4 常见的路由事件示例 四、自定义事件处…...
精选100+套HTML可视化大屏模板源码素材
大屏数据可视化以大屏为主要展示载体的数据可视化设计。 “大面积、炫酷动效、丰富色彩”,大屏易在观感上给人留下震撼印象,便于营造某些独特氛围、打造仪式感。 原本看不见的数据可视化后,便能调动人的情绪、引发人的共鸣。 使用方法&…...
如何使用Python爬虫按关键字搜索AliExpress商品:代码示例与实践指南
在电商领域,能够按关键字搜索并获取商品信息对于市场分析、选品和竞品研究至关重要。AliExpress(速卖通)作为全球知名的跨境电商平台,提供了丰富的商品数据。以下将详细介绍如何使用Python爬虫按关键字搜索AliExpress商品…...
No.36 学习 | Python 函数:从基础到实战
最近我在学 Python 编程,今天可算是狠狠钻研了一把 Python 里的函数,感觉脑袋里的知识又充实了不少,赶紧来记一记。 一、Python函数基础概念 (一)pass语句:代码块的“占位符” 在编写代码时,有…...
Unity常用特性(Attribute)用法
一.UnityEngine命名空间 1.[Header(string)] inspector面板上给显示的字段上加一个描述 通常情况下,用于在 Inspector 窗口中创建字段的逻辑分组 public class AttributeTest : MonoBehaviour {[Header("public_field_num")]public int num; }2.[Tool…...
VUE对接deepseekAPI调用
1.先去开放平台注册账号申请api key。开放平台:https://platform.deepseek.com/api_keys 2.你的项目需要有发送请求的axios或者自己写。 npm install axios # 或 yarn add axios 3.创建 API 调用函数 在 Vue 项目中,通常会将 API 调用的逻辑封装到一个…...
Z-Image-GGUF文生图案例分享:看看AI能画出多美的图片
Z-Image-GGUF文生图案例分享:看看AI能画出多美的图片 1. 开篇:当文字遇见画笔 想象一下,你只需要输入一段描述,就能得到一张精美的图片。这不是科幻电影里的场景,而是Z-Image-GGUF带给我们的现实体验。作为阿里巴巴通…...
OpenClaw数据清洗神器:Qwen3-14b_int4_awq智能修复CSV文件异常值
OpenClaw数据清洗神器:Qwen3-14b_int4_awq智能修复CSV文件异常值 1. 为什么需要智能数据清洗 作为经常处理实验数据的科研狗,我每天至少要花2小时在数据清洗上。上周处理一组气候观测数据时,发现某个气象站的温度记录里混入了几个"999…...
HoRain云--Bootstrap5图像形状全攻略
🎬 HoRain 云小助手:个人主页 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...
造相-Z-Image代码实例:Streamlit双栏UI自定义参数调节逻辑解析
造相-Z-Image代码实例:Streamlit双栏UI自定义参数调节逻辑解析 1. 项目概述 造相-Z-Image是一个基于通义千问官方Z-Image模型的本地轻量化文生图系统,专门为RTX 4090显卡进行深度优化。该系统采用BF16高精度推理技术,具备显存极致防爆能力&…...
Qwen3.5-9B训练复现:从SFT到RLHF的全流程开源实践指南
Qwen3.5-9B训练复现:从SFT到RLHF的全流程开源实践指南 1. 项目概述 Qwen3.5-9B是一个拥有90亿参数的开源大语言模型,具备强大的逻辑推理、代码生成和多轮对话能力。该模型支持多模态理解(图文输入)和长上下文处理(最…...
MCP协议实战:用npx免安装部署文件系统服务的完整指南
MCP协议实战:用npx免安装部署文件系统服务的完整指南 在当今快速迭代的开发环境中,如何高效部署和管理文件系统服务成为许多开发者面临的挑战。传统方式往往需要全局安装各种工具包,不仅占用系统资源,还可能引发版本冲突。本文将带…...
电机轴承异响?5分钟教你用振动分析仪定位故障(附实测案例)
电机轴承异响诊断实战:振动分析仪操作全流程解析 轴承异响是工业现场最常见的电机故障之一,但很多维护工程师面对"嗡嗡"声或"咔嗒"响往往无从下手。上周某化工厂的水泵电机就因轴承早期磨损未被及时发现,导致整机报废&am…...
SEO_快速诊断并解决网站SEO问题的常见方法(164 )
快速诊断网站SEO问题的有效方法 在当今数字化时代,网站的SEO(搜索引擎优化)问题不仅关乎网站的流量,更直接影响到业务的发展。对于许多网站来说,SEO问题往往是隐藏在表面现象背后的复杂问题。因此,快速诊断…...
全球不到3%的C++开发者掌握的量子模拟技巧:利用constexpr量子门编译期展开,启动速度提升41倍
第一章:量子计算 C 量子比特模拟示例在经典C环境中模拟量子比特行为,是理解量子门操作与叠加态演化的有效教学手段。本节基于线性代数原理,使用标准C17及以上特性(无需外部量子SDK),通过复数向量与酉矩阵实…...
区块链AI骗局:深扒某DeFi项目的测试造假链
当技术信任沦为欺诈工具 在软件测试领域,我们习惯于与代码、流程和标准打交道,致力于构建可靠、可验证的系统。然而,在区块链与人工智能融合的前沿地带,一场针对“信任”本身的系统性造假正在上演。本文旨在从一个软件测试工程师…...
