Java程序设计入门教程--Java语言概述

news2024/11/30 0:36:41

目录

1.1 Java语言诞生与发展

1.2 Java语言的特点

1.3 运行机制与虚拟机


1.1 Java语言诞生与发展

       Java语言的诞生最早可以追溯至1991年,那时称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境,其最初目的只是为了开发一种独立于平台的软件技术。
       1994年,开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。
       1995年,SUN公司正式推出Java,并快速引发了全球范围内的Java开发与应用的热潮。

        1996年1月,Sun公司正式发布了Java开发工具包(Java Development Kit)JDK 1.0,其中包括两大部分:运行环境和开发工具。

        1998年12月,Sun公司隆重发布了JDK 1.2,标志着Java2平台的诞生。在Java 1.2版以后将JDK 1.2改名为J2SDK,将Java改名为Java 2,并推出了备受业界追捧的Swing组件库。 
        1999年,Sun公司推出了以Java2为核心的J2EE、J2SE和J2ME三大平台。随着三大平台的迅速推进,全球形成了一股巨大的Java应用浪潮。

        2000年5月,Sun公司推出J2SE1.3,丰富了已有的API并加强对新API的拓展;
        2002年2月,Sun公司发布J2SE1.4,它是J2SE第一个参与了 Java共同体过程(JCP)的J2SE版本。Borland、Compaq、Symbian、IBM等公司参与共同体规范定制;
        2004年10月,Sun公司隆重发布J2SE5.0,J2SE的这次变更之重大和意义之深远,无论在成熟度、稳定性、可伸缩性、安全性上都有大幅度提升,市场的反应证明它的确值得升级为J2SE 5.0。
        2009年4月,著名的甲骨文公司(财团)收购SUN公司,次年发布了对Sun各项业务的整合规划,Java平台的发展迎来新的飞跃。

 


1.2 Java语言的特点

1Java语言是简单的

       Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

2Java语言是面向对象的

       Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯面向对象程序设计语言。

( 3Java语言是分布式的

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URLURLConnectionSocketServerSocket等。

4Java语言是健壮的

Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

5Java语言是跨平台的

Java语言具有跨平台性,且提出了“一次编译、随处运行”的口号,这是因为Java源文件(.java)在Java平台上被编译为体系结构中立的字节码格式(.class, 然后可以在实现这个Java平台(装有JVM)的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

6Java语言是可移植的

Java的可移植性源于其跨平台性,此外Java还严格规定了各个基本数据类型的长度,它们在不同的机型上都保持固定的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。

7Java语言是多线程的

Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制。
 

1.3 运行机制与虚拟机

        Java程序最大特点就是“一次编译,随处运行”,其实现的核心就是Java虚拟机(Java  Virtual Machine, JVM),它是java实现跨平台的最核心的部分。
       所有的Java程序会首先经Java编译器被编译为一种与平台无关的字节码文件(.class格式),该文件不能被直接执行,必须经过由JVM负责的特定解释操作,生成可以被各类本地平台所识别的机器码指令后才能被执行,如图所示。

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

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

相关文章

完美解决接口测试难题,数据驱动带签名混合封装框架实现

目录 前言: 一、框架概述 二、框架架构 三、代码实现 四、实战步骤 五、总结 前言: 接口自动化测试是保障软件质量的重要手段之一,其自动化程度越高,越能有效提高软件测试效率。而接口自动化测试中,接口测试框架…

推荐 6 款还不错的文档协作工具~

你们团队是否正在寻找便捷丰富功能的文档协作软件? 文件协作软件帮助你和你的团队更有效地工作,并进行实时协作,为创新创造更多的空间。 但是,今天有数百种文档协作工具,你应该选择哪一种呢? 为了帮助你…

SpringSecurity的认证原理及如何自定义认证结合MyBatis替换原数据源

文章目录 一、自定义认证二、自定义登录界面三、自定义成功的处理1、前后端分离返回json 四、如何在前端显示异常1、传统的方法2、前后端分离返回错误的json 五、注销登录配置1、注销登录前后端不分离2、前后端分离的方法 六、登录⽤户数据获取1、SecurityContextHolder2、Secu…

【Netty】Netty 程序引导类(九)

文章目录 前言一、引导程序类二、AbstractBootStrap 抽象类三、Bootstrap 类四、ServerBootstrap 类五、引导服务器5.1、 实例化引导程序类5.2、设置 EventLoopGroup5.3、指定 Channel 类型5.4、指定 ChannelHandler5.5、设置 Channel 选项5.6、绑定端口启动服务 六、引导客户端…

STL-reverse_iterator 反向迭代器

回顾 对于STL中的容器,迭代器(iterator)是很重要的部分,同时迭代器也是STL六大组件之一,在之前我们实现vector和list中,我们已经对于迭代器有了初步的认识,为什么设计迭代器? 就是为了能像数组中的指针一样…

虹科干货|创新求变:虹科Redis企业版数据库驱动金融实时业务

BDO调查显示,43%的金融企业正计划全力加速数字化转型,互联网巨头与金融科技初创公司正在颠覆传统。”与此同时,客户行为、消费习惯和期望持续变化,以客户为中心的快速金融服务已成趋势,企业微服务、云原生应用亟需一组…

【算法题解】30. 全排列的递归解法

这是一道 中等难度 的题 https://leetcode.cn/problems/permutations/ 题目 给定一个不含重复数字的数组 n u m s nums nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1…

景点解说二维码怎么做?一键教你轻松生成二维码

现在的各种景区为了节省人工都会将景点的详细讲解做成二维码。通过手机扫码就能自助导览。那么,大家知道这种景区讲解二维码是怎么制作的吗? 一、什么工具能制作二维码图片? 机智熊二维码生成器(https://www.jzx.com/)…

什么是高性能计算实习生?做高性能计算有前景吗?

随着大模型和算力时代的大火,高性能计算实习的岗位越来越多了,各个大厂都在码人,百度、小米、字节、华为等等,也有很多网友晒出了面试一众知名芯片企业的面经和笔试题。 但是依然有很多朋友不清楚什么是高性能计算实习生&#xf…

搜索推荐系统[10]项目实战系列Z1:手把手教学(商品搜索系统、学术文献检索)语义检索系统搭建、召回排序模型详解。

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

每日一练 | 网络工程师软考真题 Day12

阅读以下说明,答复以下【问题1】至【问题3】 【说明】 某单位有1个总部和6个分部,各个部门都有自己的局域网。该单位申请了6个C类IP地址202.115.10.0/24~202.115.15.0/24,其中总部与分部4共用一个C类地址。现方案将这些部门用路由器互联&…

linuxOPS基础_操作系统概述

计算机发展史 第一台计算机是1946 年2 月14 日诞生日,第一台名称ENIAC。体积一间屋子的大小,重量高达28t。 第一代:1946 – 1958 > 12 年 (电子管) 第二代:1958 – 1964 > 6 年 (晶体管…

VR数字展厅——助力商企实现数字化营销展示

近年来,随着元宇宙、虚拟现实等概念逐渐进入大众视野,VR虚拟展厅也慢慢的发展成为了一种新的展示形式。VR数字展厅可以将展示场景复刻在线上,不再受限于线下环境,随着VR全景技术的高速发展,虚拟展厅帮助商企实现更具创…

一起CPU很闲,load却很大的案例分析

1、软硬件环境 硬件: 飞腾E2000Q 平台 软件: linux 4.19.246 2、问题现象 系统在上电后,无意中发现系统的平均负载很大,数值显示远超过cpu的承载能力。心想也没有跑什么业务程序呀,吓得赶紧运行top命令,瞅…

无人车端到端驾驶模型概述

摘要: 通常,端到端驾驶模型使用一个深度神经网络来完成这种映射,网络的所有参数为联合训练而得。这种方法因它的简洁高效而引人关注。 引言 在搭建无人车时,我和小伙伴们的主要工作是建立一个驾驶模型。所谓的驾驶模型是控制无人…

idea模板配置

idea版本:2023.1 未设置模板的idea,新建类会自动生成类注释 格式如下: /*** author user* date 2023/5/20 0020 14:25*/ public class User {} 其中,user为当前用户名 这里,如果希望将类注释改写成如下&#xff0…

“卷”还是“躺平”?职场人如何在工作中找到价值感?

今天不谈技术,只谈进步。 曾经看过一个回答说“职场人最好的姿势是仰卧起坐”。 卷累的就躺,休息好了再继续卷,卷是常态,“仰卧起坐”也好,“卷的姿势”也好,都是在反复“卷起”的过程中寻找一些舒适和平衡…

Z-Library2023现状

网上基本上年年都会传出来Z-Library要被干掉的消息,我一直觉得,如果那真的发生了,会是人类的悲哀。 由于之前我存储的地址又挂了,所以紧急又寻找了一下。 1.朋友帮忙 朋友帮我搜了一下,发现有三个地址。 他说这第一个…

智能CAN/串口协议转换器LCNET Pro RS-232/485

智能CAN/串口协议转换器LCNET Pro RS-232/485提供一路RS-485、一路RS-232和一路CAN通道,实现CAN与串口RS-485或RS-232之间的双向数据智能转换。每个通道独立隔离,每路通道采用金升阳电源模块和信号隔离芯片实现2500VDC电气隔离,电源输入防反设…

基于Redis的Java分布式锁,接口并发处理,并发方案

Redis的分布式锁很多人都知道,比如使用Jedis的setNx、incr等方法都可以实现分布式锁的功能,但是Jedis需要自己管理连接池,就稍微麻烦一点。 今天介绍的是使用RedisTemplate切面编程自定义注解SPEL来实现分布式锁的功能,封装完成后…