当前位置: 首页 > article >正文

Java 的初认识(一)

好久不见兄弟们!之前更新完 C 语言的内容之后呢,我是做了一个“ 短暂 ”的休息昂,当然我自己的学习是没有停歇的,只是在更新博客这上面休息了一下,主要还是想让自己先把这部分的知识掌握透彻了之后,再来为大家总结出精华的部分嘛,还望诸君理解。那么接下来,咱们就正式开始更新 Java 语言的部分。好了,话不多说,咱们直接步入正题

一 . Java 语言的概念

1 . 1 什么是 Java ?

Java 是一门面向对象的编程语言,是一门极其优秀的程序设计语言

Java语言具有简单易用、功能强大两个特征,具体功能性体现在面向对象、分布式、健壮性(也叫鲁棒性)、安全性、平台独立与可移植性、多线程、动态性等等特点。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,让程序员以优雅的思维方式进行复杂的编程(这是百度百科说的昂,其实一点也不“ 优雅 ”,经常想的我抓耳挠腮的)

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

1 . 2 Java 语言的发展史

提到 Java,首先来介绍一下我们的 Java 之父 —— James Gosling(詹姆斯·高斯林 ),也就是上图那个老头昂,老爷子现在依然健在昂,诸位不用瞎猜哈哈哈。他呢,是 Java 语言的共同创始人之一,一般公认他为“ Java 之父 ”

1990 年,James Gosling 领导的,与 Patrick Naughton 和 Mike Sheridan 等人合作“ Green Project(绿色计划)”,该计划的最初目标是为了开发一种能够在各种消费性电子产品上运行的程序架构,例如电视机,收音机,冰箱等等,后来发展了一套语言叫做“ Oak(可以说是我们 Java 语言的前身)”,但是由于这些智能化家电的市场需求并没有达到预期,Sun 公司决定放弃该计划,后来随着互联网的发展,重启该计划,改造了 Oak 。1994 年底,James Gosling 在硅谷召开的“技术、教育和设计大会”上展示 Java 程式。1995 年 5 月,命名为 Java 正式上线,并提出了经典口号:“ Write once,Run anywhere ”(一次编译,到处运行)

老爷子在 2024 年的 7月份,宣布了退休,是退休,再次强调昂。大家可能第一感觉觉得 Java 的发展历史好像离我们很遥远,其实不然,Java 语言跟 C / C++ 相比起来,是一种新兴语言,但其影响力和应用领域不可忽视

二 . Java 语言的特性

(1 . 1)简单性

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

(1 . 2)面向对象

在Java 的世界中,一切皆为对象,我们的物品:桌子、杯子、手机、电脑,生物:人、猫猫、狗狗等等这些都属于 Java 的对象。而所谓面向对象,就是依靠对象之间的交互来完成事情,例如:人用电脑追剧,用手机购物,狗狗吃狗粮等等 

(1 . 3)分布式(微服务)

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

1 . 4)健壮性(鲁棒性)

Java 与 C++ 最大的区别在于,Java 所采用的指针模型可以消除重写内存和损坏数据的可能性,(对于我们之前在学习 C 语言的时候,花费大把时间和精力来排查有关指针的 BUG 这种问题,在 Java 中完全不用担心)。不仅如此,Java 编译器能够检测出许多在其他语言中仅在运行时才能检测出的问题

(1 . 5)安全性

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

(1 . 6)体系结构中立

编译器生成一个体系结构中立的目标文件格式,按照该中规范生成的文件,只要有 Java 运行时的系统,这些编译后的代码就可以在许多处理器上运行。Java 编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易在任何机器上解释执行,而且还可以动态地翻译成本地机器代码,这就是为什么可以:“ Write once,Run anywhere ”

(1 . 7)可移植性

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

 (1 . 8)解释性

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

 (1 . 9)高能性

边解释边执行。最开始 Java 的运行效率偏低,近年来 JVM 也在不断地优化,例如:JIT(即时编译器),热点代码探测,让 Java 程序的执行效率大幅提升,在有些场合不亚于 C / C++

 (1 . 10)多线程

Java 在当时很超前,它是第一个支持并发程序设计的主流语言,多线程可以带来更好的交互响应和实时行为

 (1 . 11)动态性

Java 与 C / C++ 相比更具有动态性,他能够适应不断发展的环境,库中可以自由添加新方法和实例变量,而对客户端没有任何影响

Java 不仅仅只是一门编程语言,也是一个由一些计算机软件和规范组成的技术体系

OKK,今天这一小节主要是介绍了 Java 的一些发展历史以及基本概念,大家只需浏览一下,做一个简单的了解就好了,由于后面的部分篇幅过长,也分不开,咱们就留到下一期再来正式开始讲解有关 Java 语言的语法部分。咱们下期再见,与诸君共勉!!!


http://www.kler.cn/a/513244.html

相关文章:

  • 用于牙科的多任务视频增强
  • [创业之路-255]:《华为数字化转型之道》-1-主要章节、核心内容、核心思想
  • HTML<img>标签
  • 数据结构——AVL树的实现
  • C/C++内存管理(超详解)
  • 【分类】【损失函数】处理类别不平衡:CEFL 和 CEFL2 损失函数的实现与应用
  • SpringCloud Eureka-账号密码配置
  • 线下陪玩系统架构与功能分析
  • vue2:为el-form-item的label设置背景色
  • 【SpringBoot深入浅出系列】SpringBoot之Actuator,让应用监控与管理变得简单高效
  • 深度内容运营与开源AI智能名片2+1链动模式S2B2C商城小程序在打造种草社区中的应用研究
  • 论文阅读--Qwen22.5技术报告
  • 多级缓存以及热点监测
  • C#性能优化技巧:利用Lazy<T>实现集合元素的延迟加载
  • 【PGCCC】PostgreSQL 中表级锁的剖析
  • FastAPI教程:快速构建高性能API
  • 可免费使用的电子画册制作平台
  • AutoSAR CP RTE 规范核心内容简介以及BswScheduler工作原理解析
  • PostgreSQL插件pg_repack介绍和简单使用【2】
  • 基于Python django的音乐用户偏好分析及可视化系统设计与实现
  • 2024年博客之星主题创作|从零到一:我的技术成长与创作之路
  • 嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础
  • 如何解决 Apache Shutdown Unexpectedly 错误 ?
  • 人工智能AI 与 机器学习ML 的关键区别
  • element el-table合并单元格
  • 机器学习(5):支持向量机