【Java入门】Java的语言概述

news2024/11/19 4:23:41

在这里插入图片描述
前言

📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
📗本文收录于Java入门篇系列,该专栏主要讲解:什么是java、java的数据类型与变量、运算符、程序的逻辑控制、方法的使用、数组的定义与使、类和对象、继承和多态、抽象类和接口、认识String类、认识异常等……持续更新,请大家拭目以待恒川的专栏!
📘相关专栏C语言初阶、C语言进阶、恒川的日常汇报、系列等,大家有兴趣的可以看一看
📙Python零基础入门系列,正在发展中,喜欢Python的朋友们可以关注一下哦!


Java语言概述

  • 1. Java是什么
  • 2. Java语言重要性
  • 3. Java语言发展简史
  • 4. Java语言特性
  • 5. Java开发环境安装

1. Java是什么

在这里插入图片描述

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。

在这里插入图片描述

不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。

2. Java语言重要性

  1. 语言广泛使用程度
    下图数据来自于TIOBE编程语言社区2017年12月和2018年10月最新的排行榜,常年占据语言排行榜榜首,是近些年最火的编程语言之一。
    在这里插入图片描述
    TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经
    验的程序员、 课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。
    注意:上述排名不能说明那个语言好,那个语言不好,每门编程语言都有适应自己的应用场景。
  2. 工作领域
    Java语言目前在IT领域的应用是非常广泛的,掌握Java语言可以从事不少IT行业的相关开发岗位,具体包括
  • 企业级系统
    比如大型复杂的企业级软件系统,Java的安全机制以及跨平台性的优势,其在分布式系统领域开发中有
    广泛应用,涉及到金融、电信、交通、电子商务、ERP系统等。

  • Web开发领域
    Java语言在设计初期,赶上了互联网发展的风口,当时就瞄准了互联网开发,凭借稳定的性能表现和较
    好的扩展性,Java语言一直是大型互联网平台的重要解决方案。

  • android平台应用
    Android是一种智能手机操作系统,Java是一门非常流行的编程语言。Android上的应用程序就是大多是用Java编写的,Android的SDK大部分就是直接将Java SDK翻译过来的,所以具有Java基础,也可以快速上手Android开发。

  • 大数据平台开发
    大数据相关的各类框架,比如:Hadoop、spark、storm、flink等,以及各种中间件flume、kafka、sqoop等,这些框架以及工具等大多数是用Java语言开发的,随着大数据技术的落地应用,Java在大数据领域的应用前景也是比较广阔的。

除上述开发领域外,Java在游戏领域、人工智能领域、科学计算领域、嵌入式领域也有一定的应用。因此学好Java,将来就业的选择也会非常广泛。

  1. 在校招中的岗位需求在这里插入图片描述
    从上述位置需求中可以看出,由于应届生缺少实际工作经验,因此校招中企业更看重学生的基础,也就是:语言、数据结构/算法、操作系统、网络、数据库等,其他的属于加分项。

3. Java语言发展简史

在这里插入图片描述

Java 语言源于 1991 年 4 月,Sun 公司 James Gosling博士 领导的绿色计划(Green Project)
开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个就是Java的前身: Oak(得名与Java创始人JamesGosling办公室外的一棵橡树),但由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1995年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布,并提出“Write once, Run anywhere" 的口号。

在这里插入图片描述

4. Java语言特性

以下Java语言特性来自于Java白皮书:

  1. 简单性

Java语法是C++语法的一个“纯净版本”,相当于对C++做了一个减法。这里没有头文件、指针运算(甚至指针
语法)、结构、联合、操作符重载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开
发环境。

  1. 面向对象
    什么是面向对象?
    在Java的世界里,一切皆对象。比如:人、狗、手机、电脑等都是对象。所谓面相对象,就是依靠对象之间
    的交互来完成事情,比如:人用手机网上购物,狗吃骨头…
    Java的面向对象特性与C++旗鼓相当,与C++的主要不同点在于多重继承。在Java中,取而代之的是更简单的
    接口概念。而且与C++相比,Java提供了更丰富的运行时自省功能。

  2. 分布式(微服务)
    Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络
    上的对象,其便捷程度就好像访问本地文件一样。

  3. 健壮性
    Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够
    检测许多在其他语言中仅在运行时才能够检测出来的问题。

  4. 安全性
    Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防篡改的系统

从一开始,Java就设计成能够防范常见的各种攻击:

  • 运行时堆栈溢出。蠕虫和病毒常用的攻击手段。
  • 破坏自己进程空间之外的内存。
  • 未经授权读写文件
  1. 体系结构中立
    编译器生成一个体系结构中立的目标文件格式,按照该中规范生成的文件,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。这就是为什么可以:“Wrice once,Run anywhere”。
    在这里插入图片描述
    而且其他语言编写的程序,在编译后如果能够严格按照字节码文件的规范生成.class文件,也可以在JVM上运行。
    在这里插入图片描述

  2. 可移植性
    与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说
    明。例如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器
    提供商指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。

  3. 解释性
    Java为了实现与平台无关,自己维护了一套基于栈架构的指令集,Java源代码经过编译之后,字节码文件中的
    指令就是按照自己的指令集来组织的,但是在具体硬件环境中运行时,系统并不能识别,因为Java程序在执行
    时,Java解释器会逐条的将字节码文件中的指令翻译成CPU的指令集。

  4. 高性能
    边解释边执行,垃圾会说等导致了Java代码运行效率偏低,近年来JVM也在不断的优化,比如:JIT(即时编译
    器),热点代码探测,让Java程序的执行效率大幅提高,在有些场合不亚于C/C++。

  5. 多线程
    Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。

  6. 动态性

Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单(反射的特性,后续会学到)因此:Java不仅仅是一门编程语言,也是一个由一些列计算机软件和规范组成的技术体系。
在这里插入图片描述

5. Java开发环境安装

该内容后续会讲到,希望大家关注着恒川的Java系列博客内容


如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。

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

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

相关文章

JavaSE入门篇——类和对象(实例理解)

文章目录 一、面向对象简述二、类与对象的基本概念三、类的定义与使用四、this引用五、对象的构造及初始化六、static成员七、 代码块 一、面向对象简述 面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象…

DRMS全国服务中心第一期讲师特训会圆满召开

,时长01:00 近日,【DRMS】数字权益管理系统在美丽的泉城济南展开了为期两天一夜的“【DRMS】全国服务中心首期讲师特训”。此次特训主要针对服务中心的负责人和讲师进行的一场从认知到理念、从规划到执行、从机制到流程的全方位特训。特训中,…

麒麟信安操作系统里安装达梦数据库无法通过./DmServiceDMSERVER启动数据库实例服务的处理

问题现象如下: 但是通过./dmserver pathxxx/dm.ini又能正常启动 查看日志发现有生成日志:/home/dmdba/dmdbms/log/ dm_unknown_yyyymm.log。 日志内容如下: fail to load libpmem.so, libpmem.so: cannot open shared object file: No such …

Nexus私服搭建与使用

文章目录 1 私服简介2 私服安装步骤1:下载解压步骤2:启动Nexus步骤3:浏览器访问步骤4:首次登录重置密码 3 私服仓库分类4 本地仓库访问私服配置步骤1:私服上配置仓库步骤2:配置本地Maven对私服的访问权限步骤3:配置私服的访问路径 5 私服资源上传与下载步骤1:配置工程上传私服的…

css属性选择器、css3结构选择器、伪元素选择器、仿土豆网隐藏遮罩层案例、伪元素清除浮动

属性选择器 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>属性选择器</title><style>…

Kafka在Java项目中的应用

Kafka在Java项目中的应用 Docker 安装Kafka 一.首先需要安装docker,可看这篇文章安装docker 二.拉取zookeeper和KafKa镜像 docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafkaKafka组件需要向zookeeper进行注册,所以也需要安装zookeeper 三.启动zookeeper…

被00后卷的油尽灯枯了...

内卷的来源 内卷最早的“出处”是几张名校学霸的图片。 大学生们刷爆朋友圈的几张“内卷”图片是这样的&#xff1a;有的人骑在自行车上看书&#xff0c;有的人宿舍床上铺满了一摞摞的书&#xff0c;有的人甚至边骑车边端着电脑写论文。这些图片最早在清华北大的学霸之间流传。…

手机APP性能测试工具PerfDog安装教程及简单使用

一、下载PerfDog PerfDog下载安装传送带&#xff1a;PerfDog | 全平台性能测试分析专家 点击下载对应系统版本&#xff0c;Darren这里下载的是windows版本&#xff0c;苹果电脑可下Mac OS版本。 二、解压文件包 我们在想要存放PerfDog的文件路径先建立一个文件夹&#xff08;方…

远程桌面连接工具在哪里下载?

在市场上&#xff0c;有很多种不同的工具可用。一些远程桌面连接工具&#xff08;如RayLink&#xff09;具有高清流畅、操作简单和连接速度快的特点。而其他一些连接工具则更注重保护安全和数据保密性。不同的远程桌面连接工具各有特点&#xff0c;需要根据不同的需求进行选择。…

Linux将新硬盘挂载到指定目录

MBR分区最大2T&#xff0c;超过2T需用parted工具进行GPT分区 一、fdisk工具进行MBR分区&#xff08;2T以下&#xff09; 1. 查看当前所有硬盘 fdisk -l可以看到未分区的新硬盘/dev/sdd 2. 对新硬盘进行分区 fdisk /dev/sdd输入“n”&#xff0c;按“Enter”&#xff0c;开…

实验2 指令调度和延迟分支【计算机系统结构】

实验2 指令调度和延迟分支【计算机系统结构】 前言推荐代理服务器拒绝访问解决实验2 指令调度和延迟分支1 实验目的2 实验平台3 实验内容和步骤&#xff08;1&#xff09;启动MIPSsim。&#xff08;2&#xff09;进一步理解流水段的构成和各个流水寄存器的功能。&#xff08;3&…

降低FP独立站跳出率的5个小技巧,聪明人已经学起来了

做独立站特别是fp独立站的商家们&#xff0c;要想提高客户的体验感、达到更高的转化率&#xff0c;就要研究一下独立站的跳出率。跳出率可以衡量一个独立站的消费体验&#xff0c;同样也能衡量流量在独立站转化中的重要节点。消费者体验好、跳出率低的独立站才能够留住消费者&a…

机器学习算法应用实战笔记分享

来源&#xff1a;投稿 作者&#xff1a;小灰灰 编辑&#xff1a;学姐 整体代码请参考深度之眼的《机器学习算法应用实战》 视频链接&#xff1a;https://ai.deepshare.net/p/t_pc/goods_pc_detail/goods_detail/p_5e12aa8734510_IpNUGv5w 1.无监督学习方法---主成分分析 主成…

离散数学 | 图论 | 欧拉图 | 哈密顿图 | 割点 | 桥

本文主要解决以下几个问题&#xff1a; 1.欧拉图能不能有割点&#xff0c;能不能有桥&#xff1f; 2.哈密顿图能不能有割点&#xff0c;能不能有桥&#xff1f; 首先我们要明白几个定义 割点的定义就是在一个图G中&#xff0c;它本来是连通的&#xff0c;去掉一个点v以后这个…

前几天面了个30岁的测试员,年薪50w问题基本都能回答上,应该刷了不少八股文···

互联网行业竞争是一年比一年严峻&#xff0c;作为测试工程师的我们唯有不停地学习&#xff0c;不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水&#xff0c;进入心仪的企业&#xff08;阿里、字节、美团、腾讯等大厂.....&#xff09; 所以&#xff0c;大家就迎来了…

java 通过注解实现数据动态脱敏

一、为什么要数据脱敏&#xff1f; 数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形&#xff0c;实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下&#xff0c;在不违反系统规则条件下&#xff0c;对真实数据进行改造并提供测试使用&…

10个高质量的简历制作网站推荐

刚经历完有金三银四&#xff0c;有没有因为简历不行&#xff0c;面试少的可怜的同学。 今天推荐10个高质量的简历制作网站&#xff0c;包括可以在线免费生成设计简历的网站。 1.即时设计资源社区 即时设计是国内首款专业级的 UI 设计工具&#xff0c;像 PC 端的网页&#xf…

ThingsBoard教程(四十六):规则节点解析 延迟节点 Delay Node。生成节点 Generator Node, 日志节点 Log Node

延迟节点 Delay Node Since TB Version 2.1 延迟接收消息的时间段可进行配置。 配置如下: Period in seconds - 指定暂停接收消息的时间段。 Maximum pending messages - 指定最大允许挂起消息的数量(即被暂停的消息队列)。 当特定传入消息的延迟期达到后,该消息将从…

MATLAB第九章_数据图形可视化

目录 数据图形可视化 MATLAB图形窗口 函数绘制 一元函数绘制 二元函数绘图 数据图形绘制简介 离散数据可视化 连续函数可视化 二维绘图函数 基本绘图 快速方程式画图 特殊二维图形 三维绘图函数 绘制三维曲面 生成栅格数据 网格曲线绘制 隐藏线的显示和关闭 数据…

51单片机串口通信

串口通信 1、通信的基本概念2、 51单片机串口介绍2.1、串口通信简介2.2、串口内部结构2.3、串口通信寄存器SCONPCON 2.4、串口工作方式 3、串口使用方法3.1、硬件3.2、通信协议RS2323.3、串口初始化 4、硬件设计5、 软件设计6、拓展 串口的通信&#xff0c;一般是检测通信模块是…