【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安装

  1. 打开官网: https://www.eclipse.org/ , 点击 Download

  2. 点击 Download Packages

  3. 根据操作系统不同,选择不同版本进行下载请添加图片描述

  4. 在新的页面中点击 Download 进行下载
    请添加图片描述

将下载完毕的 eclipse 压缩包, 解压就完成了安装

5.3 IDEA安装(推荐)

和eclipse二选一,现在更主流

  1. 打开官网 https://www.jetbrains.com.cn/idea/download/#section=windows

  2. 点击下载即可
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/15440.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阳光开朗孔乙己,会否奔向大泽乡

前言 🔥学历对职业关系到底有什么影响呢?🔥学历给我们带来了优势吗?🔥到底是什么造成了"孔乙己的长衫"? 孔乙己是中国清代作家鲁迅创作的一篇短篇小说,发表于1919年。这部作品被认为是…

跌倒检测和识别2:YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码)

跌倒检测和识别2:YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码) 目录 跌倒检测和识别2:YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码) 1. 前言 2. 跌倒检测数据集说明 (1)跌倒检测数据集 (2)自定…

初学Python来用它制作一个简单的界面

前言 很多刚开始学习python的宝子,就想着自己开始琢磨一些界面,但是吧很多都是有点难度的,自己又琢磨不透,只能把代码复制粘贴运行 现在就带你们来了解一个制作简单界面的代码 ttkbootstrap 是一个基于 tkinter 的界面美化库&am…

Spring RabbitMQ 实现消息队列延迟

1.概述 要实现RabbitMQ的消息队列延迟功能,一般采用官方提供的 rabbitmq_delayed_message_exchange插件。但RabbitMQ版本必须是3.5.8以上才支持该插件,否则得用其死信队列功能。 2.安装RabbitMQ延迟插件 检查插件 使用rabbitmq-plugins list命令用于查看…

workerman开发者必须知道的几个问题

1、windows环境限制 windows系统下workerman单个进程仅支持200个连接。 windows系统下无法使用count参数设置多进程。 windows系统下无法使用status、stop、reload、restart等命令。 windows系统下无法守护进程,cmd窗口关掉后服务即停止。 windows系统下无法在一个…

appuploader 常规使用登录方法

转载:登录appuploader 登录appuploader 常规使用登录方法 双击appuploader.exe 启动appuploader 点击底部的未登录,弹出登录框 在登录框内输入apple开发者账号 如果没有apple开发者账号,只是普通的apple账号,请勾选上未支付688…

本地运行 minigpt-4

1.环境部署 参考官方自带的README.MD,如果不想看官方的,也可参考MiniGPT-4|开源免费可本地进行图像对话交互的国产高级大语言增强视觉语言理解模型安装部署教程 - openAI 当然,所有的都要按照作者说明来,特别是版本号…

什么是3D渲染,3D渲染在CG项目中为何如此重要?

随着科技的发展,现如今任何人都可以使用免费软件在个人计算机上创作 3D 图像,当然也有人对于专业 3D 艺术的创作方式及其相关工作流程存在一些误解,认为创建一个模型后,在上面放上材料和纹理,就可以立马得到一个漂亮的…

SpringCloud源码之OpenFeign

OpenFeign 基于 OpenFeign 2.2.6.RELEASE版本进行源码阅读 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.6.RELEASE</version> </dependen…

【细读Spring Boot源码】监听器合集-持续更新中

前言 监听器汇总 归属监听器名称作用cloudBootstrapApplicationListenercloudLoggingSystemShutdownListenercloudRestartListenercloudLoggingSystemShutdownListenerspringbootEnvironmentPostProcessorApplicationListener用于触发在spring.factories文件中注册的Environm…

市级大数据中心大数据资源平台概要设计方案(ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 大数据管理中心发展背景 为建设卓越全球城市&#xff0c;实现政府治理能力现代化目标&#xff0c;由市大数据中心牵头&#xff0c;在政务公共数据管理和互联网政务服务方面…

numpy的下载、数据类型、属性、数组创建

下载numpy 因为numpy不依赖于任何一个包所以numpy可以直接使用pip命令直接下载 下载命令&#xff1a; pip install numpy # 默认从https://pypi.org/simple 下载 pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 从清华大学资源站点下载 pip install nump…

UG NX二次开发(C#)-显示-更改对象颜色

文章目录 1、前言2、UG NX中的更换对象颜色的功能3、采用UG NX二次开发实现颜色修改3.1 采用直接赋值对象颜色不能直接更改对象颜色3.2 采用NewDisplayModification的方法如下:1、前言 当一个三维模型展现在我们面前时,总会有颜色赋予三维模型的对象上,比如红色、蓝色、银灰…

if条件语句

if条件语句 条件测试 test 测试表达式是否成立&#xff0c;若成立返回0&#xff0c;否则返回其他数值 格式1 &#xff1a;test 条件表达式&#xff1b;格式2 &#xff1a;[ 条件表达式 ] echo $?参数作用-d测试是否为目录 (Directory)-e测试目录或文件是否存在(Exist)-f测…

直线导轨水平仪零位调整方法

对于直线导轨的使用&#xff0c;相信很多人都知道&#xff0c;这主要是因为直线导轨的使用范围非常广泛&#xff0c;小到抽屉&#xff0c;大到机械设备&#xff0c;我们都能看到他的身影&#xff0c;接触得多自然就熟悉了。 事实上&#xff0c;大家对直线导轨的了解可能就仅限于…

Cortex-A7中断详解(一)

STM32中断系统回顾 中断向量表NVIC&#xff08;内嵌向量中断控制器&#xff09;中断使能中断服务函数 中断向量表 中断向量表是一个表&#xff0c;表里面存放的是中断向量。 中断服务程序的入口地址或存放中断服务程序的首地址成为中断向量&#xff0c;因此中断向量表是一系…

【Linux入门】linux指令(1)

【Linux入门】linux指令&#xff08;1&#xff09; 目录 【Linux入门】linux指令&#xff08;1&#xff09;操作系统登录服务器Linux下的基本指令ls指令pwd指令Linux路径分割符 /cd指令touch指令mkdir指令&#xff08;重要&#xff09;rmdir指令&&rm指令&#xff08;重…

linux实现网络程序

1️⃣ 在linux下&#xff0c;通过套接字实现服务器和客户端的通信。 2️⃣ 实现单线程、多线程通信。或者实现线程池来通信。 3️⃣ 优化通信&#xff0c;增加守护进程。 有情提醒&#xff0c;类里面默认的函数是内联。内联函数在调用的地方展开&#xff0c;没有函数地址&…

Mac使用命令行工具解压和压缩rar文件

目前在Mac电脑里支持解压缩的格式主要有&#xff1a;zip、gz等&#xff0c;但是还不支持rar格式的文件&#xff0c;接下来带着大家学习一下如何解压缩rar格式文件。 1.下载rar工具 打开&#xff1a;https://www.rarlab.com/download.htm 根据自己电脑的芯片要求选择自己的安装…

【计算机基本原理-数据结构】数据结构中树的详解

【计算机基本原理-数据结构】数据结构中树的详解 1&#xff09;总览2&#xff09;树的相关概念3&#xff09;二叉树、满二叉树、完全二叉树4&#xff09;二叉查找树 - BST5&#xff09;平衡二叉树 - AVL6&#xff09;红黑树7&#xff09;哈弗曼树8&#xff09;B 树9&#xff09…