【Java基础 1】Java 环境搭建

news2024/9/20 11:00:07

🍊 欢迎加入社区,寒冬更应该抱团学习: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. 点击下载即可
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Activiti入门

目录 一、了解工作流 1、什么是工作流 2、工作流引擎 3、常见工作流引擎 4、Activiti7概述 4.1、Activiti介绍 4.2、建模语言BPMN 4.3、Activiti使用流程 一、了解工作流 1、什么是工作流 工作流(Workflow),就是通过计算机对业务流…

SSeg总体思路

1:在train中加载train和test数据集。 2:指定数据集为kitti,确定训练验证的batchsize。 3:提前定义好数据预处理,首先是几何变换,包括随机裁切等。 4:然后是外观变换,包括高斯滤波…

计算同列排斥力的一种可能方法

假设神经网络同列数字之间有一种排斥力,且这种排斥力也与距离的平方成反比。设0是环境,1是粒子,则两个1之间的排斥力就是距离平方的倒数。 考虑任意遥远的两个粒子之间都有排斥力,可以得到同列排斥力的计算方法为 如计算"01…

移动硬盘数据恢复软件实用技巧

在我们日常生活中,移动硬盘已经成为了我们不可或缺的存储设备之一。但是,由于各种原因,移动硬盘中的数据有时会丢失或损坏,这时候我们就需要使用移动硬盘数据恢复软件来帮助恢复数据。那么,移动硬盘数据恢复软件有哪些…

Windows环境下实现设计模式——中介者模式(JAVA版)

我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows环境下如何编程实现中介者模式(设计模式)。 不知道大家有没有这样的感觉,看了一大堆编程和设计模式的书,却还是很难理解设计模式&#xff…

modbus指令测试

目录 一.抓包二.modbus与plc三.usb包分析四.编写modbus指令测试五.调试工具 一.抓包 1.串口抓包?wireshark!: https://xuxeu.github.io/uart-catch/ 2.Windows&Linux USB抓包方法总结:https://zhuanlan.zhihu.com/p/267820933 3.USB The Setup Pack…

(“树” 之 前中后序遍历 ) 94. 二叉树的中序遍历 ——【Leetcode每日一题】

基础概念:前中后序遍历 1/ \2 3/ \ \ 4 5 6层次遍历顺序:[1 2 3 4 5 6]前序遍历顺序:[1 2 4 5 3 6]中序遍历顺序:[4 2 5 1 3 6]后序遍历顺序:[4 5 2 6 3 1] 层次遍历使用 BFS 实现,利用的就是 BFS…

一文搞懂Java中的异常问题

思考几个问题 1:JavaWeb系统中,我的代码未做任何处理,报错了还会往下执行吗? 2:JavaWeb系统中,我的代码做了 try catch finally, 报错了还会往下执行吗? 3:JavaWeb系统中&#xff0c…

软考高频考点--《项目采购管理》

现在离2023年上半年软考还有一个多月的时间,相信各位小伙伴们已经进入紧张的备考状态了。 小编今天为大家整理了软考的一些高频考点–《项目采购管理》,希望对正在备考软考的你有所帮助! 采购是从项目团队外部获得产品、服务或成果的完整的购…

alsa_lib移植到IMX6ULL

简介 ALSA是Advanced Linux Sound Architecture的缩写,目前已经成为了linux下的主流音频体系架构,提供了音频和MIDI的支持。 交叉编译alsa_lib和alsa_utils 下载alsa_lib 在官网中下载AlsaProject 编译 先将文件解压,然后进入alsa_lib…

运筹说 第94期|论文速读之基于关键路径的置换流水车间调度问题

前几期的推送已经讲解了网络计划的基本知识、数学模型和相关算法,相信大家对网络计划已经有了充分的了解,这期小编将带大家一起来读一篇基于关键路径的置换流水车间调度问题的文章。 1.文章信息 题目:An efficient critical path based meth…

手把手教你分析解决MySQL死锁问题

在生产环境中出现MySQL死锁问题该如何排查和解决呢,本文将模拟真实死锁场景进行排查,最后总结下实际开发中如何尽量避免死锁发生。 一、准备好相关数据和环境 当前自己的数据版本是8.0.22 mysql> select version; ----------- | version | --------…

Arduino 多任务软件定时器:Simpletimer库的使用

Arduino 多任务软件定时器:Simpletimer库的使用 📌Simpletimer库Arduino官方介绍信息:https://playground.arduino.cc/Code/SimpleTimer/✨该库也是利用了millis()函数来实现任务轮询的。与之类似的还有ESP8266固件自带的Ticker库,但是Ticker库使用仅限于ESP8266内调用,Si…

Discourse Google Analytics 3 的升级提示

根据 Google 官方的消息: Google Analytics(分析)4 是我们的新一代效果衡量解决方案,即将取代 Universal Analytics。自 2023 年 7 月 1 日起,标准 Universal Analytics 媒体资源将停止处理新的命中数据。如果您仍在使…

linux-01-基础回顾

文章目录 Linux-Day01课程内容1. 前言1.1 什么是Linux1.2 为什么要学Linux1.3 学完Linux能干什么 2. Linux简介2.1 主流操作系统2.2 Linux发展历史2.3 Linux系统版本 3. Linux安装3.1 安装方式介绍3.2 安装VMware3.3 安装Linux TODO3.4 网卡设置3.5 安装SSH连接工具3.5.1 SSH连…

【Python】【进阶篇】1、Django是什么?

目录 1、Django是什么?1. Django的由来2. Django的命名3. Django的版本发布1) 功能版2) 补丁版3) LTS 版本 4. Django框架的特点 1、Django是什么? Django 是使用 Python 语言开发的一款免费而且开源的 Web 应用框架。由于 Python 语言的跨平台性&#…

IDA调试

IDA动态调试 有时候程序在运行过程中会生成一些关键的数值,而人力通过静态分析的结果模拟程序的运行来推出这些中间的数值可能很麻烦。简单重复的工作是计算机所擅长的而不是人,所以我们可以让这个程序运行起来,得到这些中间过程的数值。这就…

VLAN与access接口、hybrid接口实验

[r1]dhcp enable //开启DHC0功能P [r1-GigabitEthernet0/0/0]int g 0/0/0.1 [r1-GigabitEthernet0/0/0.1]ip add 192.168.1.1 24 [r1-GigabitEthernet0/0/0.1]dhcp select interface //接口地址池 [r1-GigabitEthernet0/0/0.1]dhcp server dns-list 8.8.8.8 [r1-GigabitEthern…

【Linux】输入系统详述 + 触摸屏应用实战(tslib)

目录简述 前言: 一、输入系统 二、Linux输入系统框架 (1)输入系统的驱动层 (2)输入系统核心层 (3)输入系统事件层 三、APP访问硬件的方式 (1)查询方式、休眠-唤醒…

Linux环境下安装RocketMQ

目录 前置要求: 一、下载RocketMQ 二、上传解压 三、配置rocketmq的环境变量 四、查看rocketmq的目录结构 五、启动 5.1 启动nameserver 5.2 启动broker 六、测试发送消息 七、关闭 前置要求: 准备一台Linux系统的虚拟机提前安装jdk1.8 不会…