1.1.2 了解JAVA语言

news2025/1/16 2:34:02

文章目录

  • 1 JAVA语言发展史
  • 2 面向对象的概念
  • 3 跨平台性
  • 4 JDK


1 JAVA语言发展史

JAVA是由詹姆斯•高斯林(James Gosling)所创建的,其1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年 获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。

1995年,Sun公司正式发布Java语言;

1996年,Sun公司研发了JDK(Java开发环境),同年十家最主要的操作系统供应商声明在其系统中直接嵌入支持JDK;

1998年,JDK2.0版本诞生,在该技术版本中将Java技术细分为三个方向:
J2SE------------Java基础技术(桌面软件开发)
J2EE------------Java互联网开发技术(服务器后台开发)
J2ME-----------Java移动端技术,后期衍生出来了Android方向

2006年,JDK6.0版本诞生,同年Sun公司宣布将JDK完全开源;

2009年,Sun公司倒闭,被Oracle公司收购,Java归Oracle所有;

2011年,Oracle公司研发了JDK 7.0;

2014年,JDK8.0版本诞生,目前企业所用的版本就是JDK8.0;

2017年,JDK9.0诞生;

2018年,JDK 10和JDK 11诞生;

其实对JAVA语言的学习中,不应该只把JAVA作为一种语言去进行学习,更应该将其作为一个平台,或者说作为一个生态去进行学习,JAVA具有完整的一个平台,有一个完整庞大的库,其中包含着许多可以重用的代码,以及提供一个诸如安全性,跨操作系统的可移植性以及自动垃圾回收等服务的执行环境。

JAVA整洁的语法以及容易理解的语义,在其庞大的库的支持下, 使得JAVA成为现在最受市场喜欢的语言之一。

2 面向对象的概念

JAVA是一种面向对象的编程语言,简单的讲,面向对象是一种程序设计技术,在JAVA的世界中,可以把所有事物都比作成一个对象,比如一只狗,可以看作JAVA中的dog对象,而这只狗的颜色,品种,大小,性格等都可以是这个dog对象的属性。

关于面向对象的具体含义,在后续的文章中进行具体的讲解。

3 跨平台性

在JAVA的开发中,只要对应设备安装好对应的JDK之后就可以进行,开发时Java对设备的要求很低;由于Java程序的运行看JRE,Java编写的软件不能直接运行,所以Java不适合写软件;

因为JDK的原因,所以造就了JAVA跨平台的特性:

Java语言编译:

  1. java源代码文件,经过编译之后生成Java字节码文件(.class);
  2. JVM去加载(0和1)并运行Java字节码文件;

假设QQ是Java写的:Java版QQ,编译之后生成QQ的字节码文件,然后
Windows版的JVM--------------运行在Windows系统上
Linux版的JVM-------------------运行在Linux系统上

意味着使用JAVA开发的程序,可以实现“一次编译,到处使用”的跨平台,前提是系统要提前安装并配置好JDK环境。

如果是运行JAVA应用程序的话,我们只要在需要运行JAVA应用程序的OS(操作系统)上,安装一个JVM,由JVM来负责JAVA程序在该系统中的运行即可。不同的OS(操作系统)都有与之对应的JVM,所以只需要写一个Java程序,就可以在多个不同的操作系统上执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。

4 JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。
JDK是整个java开发的核心,它包含了:

JAVA开发工具(jdk\bin)
基础开发库(jdk\jre\lib\rt.jar)
基础开发库的源码(jdk\src.zip)

JDK是Java开发环境,也就是JDK是提供给Java开发使用,JDK内部包含JRE和开发工具包;

JRE是Java运行环境,也就是JRE是提供给Java运行使用,JRE内部包含JVM和系统类库;

JVM是Java虚拟机,也就是说JVM是具体负责Java程序的编译等操作的核心;

在这里插入图片描述

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

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

相关文章

4)Mybatis数据源以及事务实现

1. Mybatis数据源分为两种,一种直接连接数据库,一种使用连接池连接数据库,具体代码实现在包目录下 org.apache.ibatis.datasource 数据源接口: javax.sql.DataSource 池化数据源: org.apache.ibatis.datasource.…

OpenGL集锦(1)-安装与概述

目录概述fedora下安装编写OpenGL应用程序测试hello,world概述 OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于…

Lichee_RV学习系列--CoreMark-Pro移植

Lichee_RV学习系列文章目录 Lichee_RV学习系列—认识Lichee Rv Dock、环境搭建和编译第一个程序 Lichee_RV学习系列—移植dhrystone 文章目录Lichee_RV学习系列文章目录一、CoreMark-Pro简介二、获取源码三、编译coremark-pro1、配置coremark-pro2、编译coremark-pro四、开发板…

各种树的总结

1.B树和B树 数据库的大量数据用什么存储?为什么是B树和B树?使用二叉树不行吗?先来说说他们的演变吧,首先如果用二叉树的话都为排好序的树查询起来是不是效率不高?所以此时我们提出了对树排序,就变成了二叉…

联想拯救者屏幕亮度无法调节,监视器和显卡驱动问题,经过多种测试

主要的问题位置 1,设备管理器中的监视器部分 2,设备管理器的显卡适配器部分 个人电脑出现这种情况的原因 自己拆一下机器加装固态,但这种感觉不应该导致问题。但导致这种问题的原因可能是装固态时候把电池拔了。 一些网上常说的方法 更新…

数字化转型对企业有什么意义?有哪些案例可以分享?

如何看待制造企业数字化转型?制造业企业数字化转型有哪些思路和案例? 一提到制造企业数字化转型,大多数人都认为,这是专属于大型制造企业的行为。其实不然,对于中小型制造企业,数字化转型也应该从易到难&a…

interview

1.PyTorch1.1 Conv2d1.2 dataset,dataloader1.3 训练pipeline1.4 梯度归零1.5 torch保存模型种类及区别2.目标检测2.1 yolo3,4,5,7区别2.2 yolo使用的loss(ciou,BCE等等)ciouBCElossL1,L2,CE,BCE2.3 图像增强2.4 IOU计算公式3.深度学习基础3.1 卷积公式4.TensorRT5.…

Niantic:未来AR重要场景,VPS众包3D地图到底是啥?

几个世纪以来,人们使用指南针、地图、星盘和象限仪来找路,而在过去二十年里,GPS成为了主流的定位系统,并且与手机结合后,让人们的出行越来越方便。而随着摄像头等技术发展,我们也开始看到视觉定位技术的崛起…

(almalinux,rockylinux,openeuler,openanolis,centos,ubuntu)云原生容器镜像漏洞trivy扫描对比

一、下载并安装trivy漏洞扫描工具 下载: https://github.com/aquasecurity/trivy/releases/download/v0.31.3/trivy_0.31.3_Linux-64bit.rpm 以下为centos平台的安装: [rootlocalhost ~]# rpm -ivh trivy_0.31.3_Linux-64bit.rpm Preparing... …

【算法刷题 DAY03】剑指offer树相关算法题总结2

JZ7 重建二叉树 描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。 提示: 1.vin.length pre.length 2.pre 和…

CSS入门二、美化页面元素

零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…

【高速数字化仪应用案例系列】虹科数字化仪在光纤领域的应用

光纤应用 光纤越来越多地应用于各种领域。它们能够以光速长距离传输信息,并且损耗低,这使它们成为大容量远程数据通信的主要媒介。因此,光纤网络可以在电信系统中找到,它们用于传输和接收的目的。它们还用于提供各种数字服务&…

Docker命令-常用命令讲解

Docker常用命令 一:帮助命令二:镜像命令1. docker images 查看所有本地的主机上的镜像2. docker search 镜像名3. docker pull 下载镜像4. docker rmi三:容器命令1.docker run 新建容器并启动2.从容器返回到主机:3.docker ps 列出…

收银软件哪家强?2023年收银软件排行榜新鲜出炉!

每家实体店都少不了收银的程序,每个实体店老板都离不开收银的工具。随着信息技术的发展,收银的工具不再只有收银机,更高效、更方便的收银软件,已经成为了零售店老板们的新宠。收银机和收银软件有什么区别?收银机只能对…

1.11 LED灯点亮串口解析器

LED点灯实验 一.电路图: 三极管: NPN类型: PNP类型: NPN类型当基极为高电平时,集电极和发射极导通 PNP类型当基极为低电平时,集电极和发射极导通 由电路图可知LED电路图中三极管为NPN类型&am…

我在CSDN的2022---2023Flag

一、加入CSDN我是在2020年12月注册的CSDN,大一上学期就听同学给我讲了这个软件,然后就下载了,里面确实很多优质文章,对于当时向我们这样的初学者来说就是很实用。还记得都是搜什么,求最大值,最小值&#xf…

Redis热点数据处理

1、概念热点数据就是访问量特别大的数据。2、热点数据引起的问题流量集中,达到物理网卡上限。请求过多,缓存分片服务被打垮。redis作为一个单线程的结构,所有的请求到来后都会去排队,当请求量远大于自身处理能力时,后面…

RabbitMQ消息可靠性问题、死信交换机、延迟消息、惰性队列

目录消息可靠性生产者确保将消息成功送入队列消息确认消息回执消费者确保消息成功从队列中取出并成功消费消费确认机制消费失败重试机制失败策略使用第三种方式:消费者指定失败后转发的交换机使用第一种方式:在队列中指定死信交换机消息持久化问题交换机…

软件测试常见性能问题案例分析

在用户场景不确定的情况下,我们为了保障软件的正常运行就必须对软件的性能进行测试。下面我们一起来看看在软件测试中常见的性能问题,希望大家可以通过这七个比较典型的案例分析,充分掌握各种性能问题的解决方法。 案例一:某次压…

Spring Cloud 03 --- Nacos注册中心

前言 注册中心以Map形式存储消费者与生产者的IP和端口 基本概念 (1)Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供…