【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&…...

为何越来越多人不喜欢“试用期六个月”的公司?网友:感觉不靠谱
众所周知,任何一份工作都有试用期,一般是三月左右。但如果你遇到试用期达到半年的公司,你会不会进入? 近日,就有人遇到了此类公司,并对是否要进入该公司犹豫不决。他在论坛上发帖求助:大家是怎…...

单例模式的四种创建方式
前言 单例模式是日常开发中最常见的一种设计模式,常用来做为池对象,或者计数器之类的需要保证全局唯一的场景。 单例模式的目的是保证在整个程序中只存在一个对象实例,使用单例一个前提条件就是构造器私有化,不允许通过new 对象…...

Nginx+Keepalived 中的脑裂现象
如何解决和预防 NginxKeepalived 中会出现的脑裂现象? Nginx是一种高性能的Web服务器和反向代理服务器,可以处理大量并发请求。Keepalived是一种开源软件,用于实现IP负载均衡和故障转移。在Nginx和Keepalived结合使用时,可以通过将多个Ngin…...

04 KVM虚拟化网络概述
文章目录 04 KVM虚拟化网络概述4.1 Linux Bridge4.2 Open vSwitch 04 KVM虚拟化网络概述 为了使虚拟机可以与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux Bridge、Open vSwitch网桥等多种类型的网桥。如图1所示,数据传输路径为“虚…...

110页智慧农业解决方案(农业信息化解决方案)(ppt可编辑)
本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。 第一部分 智慧农业概述 智慧农业以农业资源为基础、市场为导向、效益为中心、产业化为抓手,面向农业管理部门、农技推广部门、农业企业、农业园区和基地、农业专…...

Java知识体系及聊天室程序
Java知识体系结构梳理如下: 基础语法:Java的基本语法,包括数据类型、运算符、控制语句、数组等。 面向对象编程:Java是一种面向对象的编程语言,需要掌握类、对象、继承、多态等概念。 异常处理:Java提供了…...

java的详细发展历程
Java是一种跨平台、面向对象的编程语言,具有简单性、可移植性、安全性等特点。Java的历史可以追溯到上世纪90年代初期,以下是Java的详细发展历程: 1991年,Sun Microsystems公司的James Gosling和他的团队开始开发一种名为Oak的编程…...

丢石子
I 一堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win". 思路: 任何正整数都可以表示为不连续斐波那契…...

skywalking手动上报一些指标信息
skywalking的相关概念我就不介绍了,有兴趣可以参看官网文档 以下提供以下简单示例手工上报一些对问题排查比较有用的一些信息。当然这些内容你也可以写成探针插件的形式,怎么开发探针插件也自行参考官方文档。此处仅在项目框架层面提供一些简单的示例&am…...

NUMA详解
目录 NUMA简介 NUMA开启与关闭 查看系统是否支持 关闭方法 numactl --hardware介绍 没有安装numactl工具下查看NUMA架构节点数: 查看每个NUMA节点的CPU使用情况: 看每个NUMA节点的内存使用情况: 查看NUMA下指定进程的运行情况 创建…...