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 调用的逻辑封装到一个…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
