【Java基础 1】Java 环境搭建
🍊 欢迎加入社区,寒冬更应该抱团学习:Java社区
📆 最近更新:2023年4月22日
文章目录
- 1 java发展史及特点
- 1.1 发展史
- 1.2 Java 特点
- 1.2.1 可以做什么?
- 1.2.2 特性
- 2 Java 跨平台原理
- 2.1 两种核心机制
- 2.2 JVM
- 2.3 垃圾回收器(GC)
- 2.4 Java SE 的组成概念图
- 3 如何编写代码
- 3.1 Java 程序开发的三个步骤
- 3.2 语法
- 4 JDK和JRE
- 5 环境搭建
- 5.1 JDK下载
- 5.2 eclipse安装
- 5.3 IDEA安装(推荐)
1 java发展史及特点
1.1 发展史
1992年:Oak面向对象语言
1994年:将 OaK 应用于万维网
1995年:正式更名为 Java,代表性技术:Java 虚拟机、Applet、AWT 等
1996年:JDK1.0
1997年:JDK 1.1,代表性技术:JDBC、JavaBeans、RMI、JAR 文件格式、Java 语法中的内部类和反射
1998年:JDK1.2,代表性技术:Swing、Java IDL、EJB、Java Plug-in 等,在 API 文档中,添加了 strictfp 关键字和 Collections 集合类
1999年:Java 体系分为J2ME、J2SE、J2EE三个方向、HotSpot 虚拟机发布
2000年:JDK1.3、JDK1.4 和 J2SE1.3
2002年:J2SE1.4,提供了广泛的 XML 支持、安全套接字(Socket)支持(通过 SSL 与 TLS 协议)、全新的 I/OAPI、 正则表达式、日志与断言
2004年:J2SE1.5,泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化 I/O 及可变参数
2005年:Java SE 6
2011年:Java SE 7,二进制整数、支持字符串的 switch 语句、棱形语法、多异常捕抓、自动关闭资源的 try 语言等新特性
2014年:Java SE8,Lambda 表达 式、流式编程
2017年:Java SE 9,强化了 Java 的模块化系统,让 Java 语言更轻量化,且采用了更高效、更智能的 GI 垃圾回收器,并在核心类库上进行大量更新,可进一 步简化编程
2018年:Java SE 10,局部变量类型推断,垃圾收集器改善、GC 改进、性能提升、线程管控。Java SE 11,ZGC、Http Client 等重要特性,一共包含 17 个 JEP
2019年:Java SE 12,Java SE 13,“文本块”
1.2 Java 特点
1.2.1 可以做什么?
开发桌面应用程序
银行软件、商场结算软件
开发面向 Internet 的 web 应用程序
门户网站(工商银行)、网上商城、阿里巴巴、电子商务网站
提供各行业的解决方案
金融、电信、电力…
嵌入式开发
移动电话、可视电话、数字机顶盒和汽车导航系统
1.2.2 特性
- 一种纯面向对象的编程语言。
- 一种跨平台语言。
- 一种健壮的语言,吸收了 C/C++语言的优点。
- 有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)
2 Java 跨平台原理

2.1 两种核心机制
Java 虚拟机(Java Virtual Machine)
JVM 垃圾回收器(Garbage Collection) GC

2.2 JVM

JVM 可以理解成一个可运行 Java 字节码的虚拟计算机系统
- 它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信
- 对于不同的运行平台,有不同 的 JVM。
JVM 屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。
2.3 垃圾回收器(GC)
不再使用的内存空间应当进行回收-垃圾回收。
在 C/C++等语言中,由程序员负责回收无用内存。
Java 语言消除了程序员回收无用内存空间的责任:
- JVM 提供了一种系统线程跟踪存储空间的分配情况。并在 JVM 的空闲时,检查并释放那些可以被释放的存储空间。 垃圾回收器在 Java 程序运行过程中自动启用,程序员无法精确控制和干预。
2.4 Java SE 的组成概念图

3 如何编写代码
3.1 Java 程序开发的三个步骤

3.2 语法
注释 :java 程序有三种注释方式
- 单行注释:
//注释 - 多行注释:
/*注释*/ - 文档注释:
/**注释*/
java 代码的位置:
- class 必须编写在.java 文件中
语法规则:
- java 是严格区分大小写的
- java 是一种自由格式的语言 代码分为结构定义语句和功能执行语句 功能执行语句的最后必须用分号结束
4 JDK和JRE
JDK 包括两大部分:开发工具和运行环境。
JDK(Java Development Kits) —— Java 开发工具集
- JRE(JavaRuntimeEnvironment)Java运行时环境
- JVM
- Java API (应用程序编程接口)
- Java 编译器(javac.exe)、Java 运行时解释器(java.exe)、Java 文档化化工具(javadoc.exe)及其它工具及资源
JRE 的三项主要功能:
- 加载代码:由类加载器(classloader)完成;
- 校验代码:由字节码校验器(bytecodeverifier)完成;
- 执行代码:由运行时解释器(runtimeinterpreter)完成。
5 环境搭建
5.1 JDK下载
jdk-11.0.6_windows-x64_bin.exe
配置环境变量:





5.2 eclipse安装
-
打开官网: https://www.eclipse.org/ , 点击 Download
-
点击 Download Packages
-
根据操作系统不同,选择不同版本进行下载

-
在新的页面中点击 Download 进行下载

将下载完毕的 eclipse 压缩包, 解压就完成了安装
5.3 IDEA安装(推荐)
和eclipse二选一,现在更主流
-
打开官网 https://www.jetbrains.com.cn/idea/download/#section=windows
-
点击下载即可

相关文章:
【Java基础 1】Java 环境搭建
🍊 欢迎加入社区,寒冬更应该抱团学习:Java社区 📆 最近更新:2023年4月22日 文章目录 1 java发展史及特点1.1 发展史1.2 Java 特点1.2.1 可以做什么?1.2.2 特性 2 Java 跨平台原理2.1 两种核心机制2.2 JVM…...
2023-4-26-C++11新特性之正则表达式
🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下…...
python接口自动化测试 requests库的基础使用
目录 简单介绍 Get请求 Post请求 其他类型请求 自定义headers和cookies SSL 证书验证 响应内容 获取header 获取cookies 简单介绍 requests库简单易用的HTTP库 Get请求 格式: requests.get(url) 注意:若需要传请求参数,可直接在 …...
Photon AI Translator 和做产品的一些思考
近 4 个月内我一直在做 Apple 平台的产品,虽然从使用量来说「简体中文」用户是占多数,但我一直有做多语言的支持:英语、简体中文和繁体中文。习惯上 Google 翻译的我,基本上在使用 Xcode 过程中也会一直在浏览器开着 Google Trans…...
IPTV系统架构的分析与研究
1 引言 IPTV业务是伴随着宽带互联网的飞速发展而兴起的一项新兴的互联网增值业务,它利用宽带互联网的基础设施,以家用电视机和电脑作为主要终端 ,利用网络机顶盒(STB,Set -TopBox) ,通过互联网协议来传送电视信号.提供包括 电视节 目在 内…...
workerman开发者必须知道的几个问题
1、windows环境限制 windows系统下workerman单个进程仅支持200个连接。 windows系统下无法使用count参数设置多进程。 windows系统下无法使用status、stop、reload、restart等命令。 windows系统下无法守护进程,cmd窗口关掉后服务即停止。 windows系统下无法在一个…...
golang Gin实现websocket
golang使用 Gin实现 websocket,这里笔者重新搭建一个项目 1、创建项目安装依赖 项目名为 go-gin-websocket 在指定文件夹下,新建项目文件夹 go-gin-websocket 进入项目文件夹,打开cmd窗口,在项目(go-gin-websocket&a…...
冯·诺依曼体系结构与初始操作系统
目录 冯诺依曼体系结构 冯诺依曼体系结构图 内存 外存 网卡和磁盘 结构之间运算速度的差异 缓冲区 初始操作系统 概念 操作系统上边与下边分别有什么 从上到下依次顺序解析 用户 用户操作接口 系统调用接口 操作系统四项管理 驱动 硬件 冯诺依曼体系结构 冯诺…...
软件测试之黑盒测试的具体方法详解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一.基于需求的设计方法二.等价类三.边界值四.判定表4.1 **关系**4.2 如何设计测试用例4.3 实际案例第一步第二步第三步第四步 五.正交排列5.1 什么是正交表5.2 …...
图形编辑器:历史记录设计
大家好,我是前端西瓜哥。今天讲一下图形编辑器如何实现历史记录,做到撤销重做。 其实就是版本号的更替。每个版本保存一个状态。 数据结构 要记录图形编辑器的历史记录,支持撤销重做功能,需要两个栈:撤销࿰…...
ubuntu22.04下挂载第二块硬盘
文章目录 一、查看硬盘情况二、找到nvme1n1三、挂载四、修改分区文件 一、查看硬盘情况 首先要查看一下系统识别出来的设备。也就是说,我希望知道,ubuntu到底发现了几块硬盘。用命令:lsblk 显示结果如下: 有两块硬盘:…...
举例说明.net中in与out的作用与区别
-----作用 在 .NET 中,in 和 out 是用于泛型类型参数的修饰符,它们用于指定参数类型的协变性和逆变性。 - in 修饰符:表示这个泛型类型参数是协变的。也就是说,in 类型参数可以从较特殊的类型隐式转换为较通用的类型。例如&…...
Java常见的100道面试题(内附答案及代码示例)持续更新
什么是Java程序? Java程序是一组可执行的代码,由Java编译器编译生成,可以在Java虚拟机(JVM)上运行。 public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!&qu…...
策略设计模式知多少
目录 目标 概述 实现 目标 熟悉策略设计模式,了解策略设计模式的使用场景、具体实现。 概述 一、行为设计模式 行为设计模式是设计模式的一种类型。该类型的设计模式关注的重点在于对象的行为(通信和交互),而非对象的创建方…...
第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent
文章目录 第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent在 UNIX/Linux 和 macOS 系统上为非根实例启动 ISCAgent在 Microsoft Windows 系统上启动 ISCAgent 自定义 ISCAgent 第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Li…...
嵌入式安卓开发:使用Camera2获取相机
文章目录 Camera2介绍Camera2的主要API类介绍CameraManager通过CameraManage获取Cameracharacteristics通过CameraManage获取CameraDevice从CameraDevice获取CameraCaptureSession预览效果 参考 Camera2介绍 从Android 5.0开始,Google 引入了一套全新的相机框架 Ca…...
阿里云g8i服务器Intel Xeon(Sapphire Rapids) Platinum 8475B
阿里云服务器ECS通用型实例规格族g8i采用2.7 GHz主频的Intel Xeon(Sapphire Rapids) Platinum 8475B处理器,3.2 GHz睿频,g8i实例采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固。阿里云百科分享阿里云服…...
设计模式——组件协作模式之观察者模式
文章目录 前言一、“组件协作” 模式二、Observer 观察者模式1、动机2、模式定义3、伪代码示例①、第一种方案,最朴素的方式②、第二种方案,重构使得遵循DIP原则:③、进一步的小优化:④、修改使得支持多个观察者: 4、结…...
观察者设计模式知多少
目录 目标 概述 实现 推设计模式 拉设计模式 被动观察者设计模式 目标 熟悉观察者设计模式,了解观察者设计模式的使用场景、具体实现(包括:推设计模式、拉设计模式、被动观察者设计模式)。 概述 一、行为设计模式 行为设…...
Flink之TaskManager内存解析
一、CK失败 Flink任务的checkpoint操作失败大致分为两种情况,ck decline和ck expire: (1)ck decline 发生ck decline情况时,我们可以通过查看JobManager.log或TaskManager.log查明具体原因。其中有一种特殊情况为ck cancel&…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...
React核心概念:State是什么?如何用useState管理组件自己的数据?
系列回顾: 在上一篇《React入门第一步》中,我们已经成功创建并运行了第一个React项目。我们学会了用Vite初始化项目,并修改了App.jsx组件,让页面显示出我们想要的文字。但是,那个页面是“死”的,它只是静态…...
