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

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工具

  1. 下载 JDK
    • 打开 Oracle 官方网站的 Java 下载页面(Java Downloads | Oracle ),找到适合 Windows 系统的 JDK 版本(如 JDK 17 等),根据系统是 32 位还是 64 位选择对应的安装包下载。
    • 也可以选择 OpenJDK,一些开源组织提供的 OpenJDK 在功能上与 Oracle JDK 类似,可从 Adoptium(Home | Adoptium )等网站下载。
  2. 安装 JDK
    • 双击下载好的.exe 安装文件,按照安装向导提示操作,选择安装路径等参数,默认安装路径一般为 C:\Program Files\Java\jdk - <版本号> ,可自行修改。
    • 安装过程中可能会提示安装 JRE(Java Runtime Environment),可根据需要选择是否安装。
  3. 配置环境变量
    • 右键点击 “此电脑”,选择 “属性”,然后点击 “高级系统设置”。
    • 在弹出的 “系统属性” 窗口中,选择 “高级” 选项卡,点击 “环境变量”。
    • 在 “系统变量” 中,找到 “Path” 变量,点击 “编辑”。
    • 点击 “新建”,将 JDK 安装目录下的 “bin” 目录路径(如 C:\Program Files\Java\jdk - < 版本号 >\bin )添加进去。
    • 也可新建 “JAVA_HOME” 系统变量,变量值为 JDK 的安装目录(如 C:\Program Files\Java\jdk - < 版本号 > )。
  4. 验证安装:打开命令提示符(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 等多平台,还有丰富插件可拓展功能,满足不同开发者的多样需求。

  1. 下载安装包
    • 访问 JetBrains 官方网站(IntelliJ IDEA – the Leading Java and Kotlin IDE ),在页面中找到 IntelliJ IDEA 下载选项。
    • IDEA 分为社区版(Community)和旗舰版(Ultimate)等,社区版免费开源,旗舰版功能更强大,适合企业开发,有试用期限,根据需求选择下载。
    • 点击下载按钮,获取.exe 格式的安装包。
  2. 安装程序
    • 下载完成后,双击安装包文件启动安装向导。
    • 按照向导提示操作,如选择安装路径(默认一般在 C:\Program Files\JetBrains\IntelliJ IDEA <版本号> ,可自定义修改)、选择创建桌面快捷方式等选项。
    • 点击 “Next” 逐步完成安装,最后点击 “Finish” 完成安装过程。
  3. 首次启动与配置
    • 安装完成后,双击桌面的 IntelliJ IDEA 图标启动软件。
    • 首次启动时,会弹出配置向导,可选择是否导入之前版本的设置等。
    • 接着会提示选择主题(如 Darcula、IntelliJ 等),根据喜好选择。
    • 之后软件会自动检测电脑上已安装的 JDK,如果没有检测到合适的 JDK,需要手动配置(在后续创建项目或在设置中配置)。

相关文章:

Java入门笔记(1)

引言 在计算机编程的广袤宇宙中&#xff0c;Java无疑是一颗格外耀眼的恒星。那么&#xff0c;Java究竟是什么呢&#xff1f; Java是美国Sun公司&#xff08;Stanford University Network&#xff09;在1995年推出的一门计算机高级编程语言。曾经辉煌的Sun公司在2009年被Oracle&…...

设计模式的艺术-开闭原则

原则使用频率图&#xff08;仅供参考&#xff09; 1.如何理解开闭原则 简单来说&#xff0c;开闭原则指的是 “对扩展开放&#xff0c;对修改关闭”。 当软件系统需要增加新的功能时&#xff0c;应该通过扩展现有代码的方式来实现&#xff0c;而不是去修改已有的代码。 例如我…...

【C语言系列】深入理解指针(3)

深入理解指针&#xff08;3&#xff09; 一、字符指针变量二、数组指针变量2.1数组指针变量是什么&#xff1f;2.2数组指针变量怎么初始化&#xff1f; 三、二维数组传参的本质四、函数指针变量4.1函数指针变量的创建4.2函数指针变量的使用4.3两段有趣的代码4.4 typedef关键字 …...

three.js+WebGL踩坑经验合集:写在前面的话

笔者从2023年初开始参与一个基于three.js引擎的web项目的开发工作。本打算2024年春节就把期间踩过的坑写到博客上分享给大家&#xff0c;然而哪怕本专栏的各种构思和内容已经在笔者的脑海里翻滚了一年&#xff0c;得了严重拖延症患者的我还是一直拖到了现在&#xff0c;实在惭愧…...

利用Linux的工作队列(Workqueue)实现中断下半部的处理

本文代码在哪个基础上修改而成&#xff1f; 本文是在博文 https://blog.csdn.net/wenhao_ir/article/details/145228617 的代码基础上修改而成。 关于工作队列(Workqueue)的概念 工作队列(Workqueue)可以用于实现Linux的中断下半部的&#xff0c;之前在博文 https://blog.cs…...

LabVIEW处理复杂系统和数据处理

LabVIEW 是一个图形化编程平台&#xff0c;广泛应用于自动化控制、数据采集、信号处理、仪器控制等复杂系统的开发。它的图形化界面使得开发人员能够直观地设计系统和算法&#xff0c;尤其适合处理需要实时数据分析、高精度控制和复杂硬件集成的应用场景。LabVIEW 提供丰富的库…...

spring-springboot -springcloud

目录 spring: 动态代理: spring的生命周期(bean的生命周期): SpringMvc的生命周期: SpringBoot: 自动装配: 自动装配流程: Spring中常用的注解&#xff1a; Spring Boot中常用的注解&#xff1a; SpringCloud: 1. 注册中心: 2. gateway(网关): 3. Ribbon(负载均…...

DRG/DIP 2.0时代下基于PostgreSQL的成本管理实践与探索(下)

五、数据处理与 ETL 流程编程实现 5.1 数据抽取与转换(ETL) 在 DRG/DIP 2.0 时代的医院成本管理中,数据抽取与转换(ETL)是将医院各个业务系统中的原始数据转化为可供成本管理分析使用的关键环节。这一过程涉及从医院 HIS 系统中抽取患者诊疗数据,并对其进行格式转换、字…...

打造本地音乐库

文章目录 存储介质硬盘&#xff08;NAS&#xff09;媒体播放器&#xff08;可视MP3、MP4&#xff09;实体介质&#xff08;CD光盘、黑胶片&#xff09;注意事项为什么不使用在线音乐&#xff08;App&#xff09;和网盘打造一套HiFi系统的成本非常高 获取音乐正版音乐途径免费音…...

【2024 - 年终总结】叶子增长,期待花开

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言论博客创作保持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”智慧工厂架构,让工业智能更简单

面对复杂的工业环境、海量的数据以及多样化的业务需求&#xff0c;如何实现智能化转型&#xff0c;让工业智能触手可及&#xff0c;成为了众多企业面临的难题。蓝卓以创新精神为引领&#xff0c;推出了“12N”智慧工厂架构&#xff0c;旨在简化工业智能的实现路径&#xff0c;让…...

12、MySQL锁相关知识

目录 1、全局锁和表锁使用场景 2、行锁的意义 3、为什么说间隙锁解决了快照的幻读? 4、RR隔离级别产生幻读的场景 5、详解元数据锁(MDL)作用以及如何减少元数据锁 6、出现死锁场景 7、查看MySQL锁情况 8、自增锁 1、全局锁和表锁使用场景 全局锁 备份数据库:当需要…...

某大厂一面:HashMap 的put方法具体做了哪些操作

HashMap 的 put 方法是一个常用的操作&#xff0c;它将一个键值对插入到哈希表中。下面是 put 方法执行的详细流程&#xff0c;包括各个步骤的解释&#xff0c;并附上相应的代码片段。 1. 检查键是否为 null 如果传入的键为 null&#xff0c;HashMap 会特别处理这种情况&…...

WPF基础 | 深入 WPF 事件机制:路由事件与自定义事件处理

WPF基础 | 深入 WPF 事件机制&#xff1a;路由事件与自定义事件处理 一、前言二、WPF 事件基础概念2.1 事件的定义与本质2.2 常见的 WPF 事件类型 三、路由事件3.1 路由事件的概念与原理3.2 路由事件的三个阶段3.3 路由事件的标识与注册3.4 常见的路由事件示例 四、自定义事件处…...

精选100+套HTML可视化大屏模板源码素材

大屏数据可视化以大屏为主要展示载体的数据可视化设计。 “大面积、炫酷动效、丰富色彩”&#xff0c;大屏易在观感上给人留下震撼印象&#xff0c;便于营造某些独特氛围、打造仪式感。 原本看不见的数据可视化后&#xff0c;便能调动人的情绪、引发人的共鸣。 使用方法&…...

如何使用Python爬虫按关键字搜索AliExpress商品:代码示例与实践指南

在电商领域&#xff0c;能够按关键字搜索并获取商品信息对于市场分析、选品和竞品研究至关重要。AliExpress&#xff08;速卖通&#xff09;作为全球知名的跨境电商平台&#xff0c;提供了丰富的商品数据。以下将详细介绍如何使用Python爬虫按关键字搜索AliExpress商品&#xf…...

No.36 学习 | Python 函数:从基础到实战

最近我在学 Python 编程&#xff0c;今天可算是狠狠钻研了一把 Python 里的函数&#xff0c;感觉脑袋里的知识又充实了不少&#xff0c;赶紧来记一记。 一、Python函数基础概念 &#xff08;一&#xff09;pass语句&#xff1a;代码块的“占位符” 在编写代码时&#xff0c;有…...

Unity常用特性(Attribute)用法

一.UnityEngine命名空间 1.[Header(string)] inspector面板上给显示的字段上加一个描述 通常情况下&#xff0c;用于在 Inspector 窗口中创建字段的逻辑分组 public class AttributeTest : MonoBehaviour {[Header("public_field_num")]public int num; }2.[Tool…...

VUE对接deepseekAPI调用

1.先去开放平台注册账号申请api key。开放平台&#xff1a;https://platform.deepseek.com/api_keys 2.你的项目需要有发送请求的axios或者自己写。 npm install axios # 或 yarn add axios 3.创建 API 调用函数 在 Vue 项目中&#xff0c;通常会将 API 调用的逻辑封装到一个…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...