【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史

个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : Java入门到精通
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 一. Java语言概述与优势
    • 1.1 Java的概述
    • 1.2 Java语言的优势
  • 二. Java领域与发展史
    • 2.1 Java的使用领域
    • 2.2 Java发展史简述
  • 三. Java语言特性

在这里插入图片描述

一. Java语言概述与优势

1.1 Java的概述

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

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

1.2 Java语言的优势

语言广泛使用程度:

​ 下图数据来自于TIOBE编程语言社区2023年8月最新的排行榜,是近些年最火的编程语言之一。
在这里插入图片描述

注意:上述排名不能说明那个语言好,那个语言不好,每门编程语言都有适应自己的应用场景。

二. Java领域与发展史

2.1 Java的使用领域

企业级系统

​ 比如大型复杂的企业级软件系统,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,将来就业的选择也会非常广泛。

2.2 Java发展史简述

祖师爷JAVA之父:詹姆斯·高斯林
在这里插入图片描述

Java 语言源于 1991 年 4 月,Sun 公司 James Gosling博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。

这个就是Java的前身: Oak (得名与Java创始人James Gosling办公室外的一棵橡树),但由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1995年代互联网的发展,

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布,并提出“Write once, Run anywhere" 的口号。

三. Java语言特性

  1. Java语法相对于C++更为简洁,去除了C++中的头文件、指针运算、结构、联合、操作符重载、虚基类等内容。
  2. Java中的一切皆对象,如人、狗、手机、电脑等。Java的面向对象特性与C++相当,但不同之处在于多重继承。Java使用更简单的接口概念,同时提供了更丰富的运行时自省功能。
  3. Java拥有丰富的例程库,用于处理TCP/IP协议,如HTTP和FTP。Java应用程序能够轻松地通过URL访问网络对象,就像访问本地文件一样。
  4. Java采用的指针模型可以消除重写内存和损坏数据的可能性。Java编译器能够检测许多在其他语言中仅在运行时才能检测出的问题。
  5. Java适用于网络/分布式环境,投入了大量精力来确保安全性。Java设计初衷就是防范各种常见攻击。
  6. Java编写的程序在不同的平台上可以运行。这是因为Java程序在编译后生成的是字节码文件,而不是特定于某个平台的机器码。
  7. Java为了实现与平台无关,自己维护了一套基于栈架构的指令集。在具体硬件环境中运行时,Java解释器会逐条的将字节码文件中的指令翻译成CPU的指令集。
  8. Java程序的执行效率在有些场合不亚于C/C++,近年来JVM也在不断的优化,让Java程序的执行效率大幅提高。
  9. Java是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。
  10. Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。在Java中找出运行时类型信息十分简单。

在这里插入图片描述

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

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

相关文章

面试多线程八股文十问十答第二期

面试多线程八股文十问十答第二期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的! ⭐点赞⭐收藏⭐不迷路!⭐ 1.进程和线程的区别 概念不同:进程是操作系统中的一个独立执行单元&a…

LeetCode56. Merge Intervals

文章目录 一、题目二、题解 一、题目 Given an array of intervals where intervals[i] [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input. Example 1: Input: interva…

目标检测mAP计算以及coco评价标准

这篇是我对哔哩哔哩up主 霹雳吧啦Wz 的视频的文字版学习笔记 感谢他对知识的分享 讲一下目标检测中的一些常见的指标 在我们使用目标检测网络训练时 最后在验证集上会得到一个coco的评价列表 就像我们图中给的这一系列参数列表一样 我们再进一步引入两个概念 第一个叫做precisi…

P1 Qt的认识及环境配置

目录 前言 01 下载Qt Creator windows下载安装包拷贝到Linux Linux直接下载 02 Linux 安装Qt 前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类…

地址栏不安全提示

在使用浏览器时访问网站的时候,我们可能会遇到地址栏提示不安全的情况。这种情况通常都是是由于未安装有效SSL证书或者网站SSL证书过期等原因导致的。本文将介绍如何处理地址栏提示不安全的问题,以确保我们的上网安全。 1,缺少SSL证书&#x…

golang游戏服务器 - tgf系列课程01

TGF框架的特点和功能 课程介绍了TGF框架的特点和功能在第一节课程中我们并不会介绍框架的使用。我们希望在这节课程中,能让你了解到tgf是一个什么样的框架 概要 本节课程介绍了TGF框架的特点和功能。TGF是一个开箱即用的服务器框架, 适合中小型团队和独立开发者进行游戏开发。…

基于单片机音乐盒仿真仿真系统设计

**单片机设计介绍,基于单片机音乐盒仿真仿真系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的音乐盒仿真仿真系统是一种基于嵌入式系统技术的设计方案,用于模拟传统的音乐盒功能。它通…

002 self-attention自注意力

目录 一、环境 二、self-attention原理 三、完整代码 一、环境 本文使用环境为: Windows10Python 3.9.17torch 1.13.1cu117torchvision 0.14.1cu117 二、self-attention原理 自注意力(Self-Attention)操作是基于 Transformer 的机器翻…

【XILINX】记录ISE/Vivado使用过程中遇到的一些warning及解决方案

前言 XILINX/AMD是大家常用的FPGA,但是在使用其开发工具ISE/Vivado时免不了会遇到很多warning,(大家是不是发现程序越大warning越多?),并且还有很多warning根据消除不了,看着特心烦? 我这里汇总一些我遇到的…

http和https区别

http和https区别 HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在网络上传输数据的两种协议。它们之间的主要区别在于安全性和数据传输方式: 安全性:HTTP是明文传…

华清远见嵌入式学习——QT——作业2

作业要求&#xff1a; 代码运行效果图&#xff1a; 登录失败 和 最小化 和 取消登录 登录成功 和 X号退出 代码&#xff1a; ①&#xff1a;头文件 #ifndef LOGIN_H #define LOGIN_H#include <QMainWindow> #include <QLineEdit> //行编辑器类 #include…

如何在centos8上配置一个ca证书颁发机构并且颁发一个自签名证书【超详细!!!】

在CentOS 8上配置CA证书颁发机构并颁发自签名证书的步骤如下&#xff1a; 1. 安装OpenSSL sudo dnf install openssl 2. 创建CA证书目录 sudo mkdir /etc/pki/CA/ sudo chmod 0700 /etc/pki/CA/ 3. 创建CA证书数据库 sudo touch /etc/pki/CA/index.txt sudo echo 1000 >…

Java Spring + SpringMVC + MyBatis(SSM)期末作业项目

本系统是一个图书管理系统&#xff0c;比较适合当作期末作业主要技术栈如下&#xff1a; - 数据库&#xff1a;MySQL - 开发工具&#xff1a;IDEA - 数据连接池&#xff1a;Druid - Web容器&#xff1a;Apache Tomcat - 项目管理工具&#xff1a;Maven - 版本控制工具&#xf…

探索人工智能领域——每日20个名词详解【day12】

目录 前言 正文 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x1f4e3;如需转载&#xff0c;请事先与我联系以…

学习JVM

java虚拟机 流程&#xff1a;helloworld.java----(javac编译)----helloworld.class-------(java运行)——JVM——机器码JVM功能 *解释和运行 *内存管理 *即时编译&#xff08;跨平台-慢一点&#xff09;jit &#xff08;反复用到的代码 解释保存再内存里面&#xff09;…

进程、线程、线程池状态

线程几种状态和状态转换 进程主要写明三种基本状态&#xff1a; 线程池的几种状态&#xff1a;

STM32的BKP与RTC简介

芯片的供电引脚 引脚表橙色的是芯片的供电引脚&#xff0c;其中VSS/VDD是芯片内部数字部分的供电&#xff0c;VSSA/VDDA是芯片内部模拟部分的供电&#xff0c;这4组以VDD开头的供电都是系统的主电源&#xff0c;正常使用时&#xff0c;全部都要接3.3V的电源上&#xff0c;VBAT是…

Leetcode2477. 到达首都的最少油耗

Every day a Leetcode 题目来源&#xff1a;2477. 到达首都的最少油耗 解法1&#xff1a;贪心 深度优先搜索 题目等价于给出了一棵以节点 0 为根结点的树&#xff0c;并且初始树上的每一个节点上都有一个人&#xff0c;现在所有人都需要通过「车子」向结点 0 移动。 对于…

从阻抗匹配看拥塞控制

先来理解阻抗匹配&#xff0c;但我不按传统方式解释&#xff0c;因为传统方案你要先理解如何定义阻抗&#xff0c;然后再学习什么是输入阻抗和输出阻抗&#xff0c;最后再看如何让它们匹配&#xff0c;而让它们匹配的目标仅仅是信号不反射&#xff0c;以最大能效被负载接收。 …

面试宝典之自我介绍

听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 如需要项目实战或者是体系化资源,文末名片加V! 作者:哈哥撩编程,工作十余年, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。荣誉:2022年度博客之星Top4、2023年度超级个体得主、谷歌与亚马逊开发…