Java为什么会成为现在主流的编程语言

Java为什么会成为现在的主流语言

  • 前言
  • 一、Java语言概述
    • Java是什么
    • 为什么大多数人会选择从事Java
      • 为什么从事Java的工作者数量从年递减
  • 二、Java语言的特点
    • 简单性
    • 面向对象
    • 分布式(微服务)
    • 健壮性
    • 安全性
    • 体系结构中立
    • 可移植性
    • 解释型
    • 高性能
    • 多线程
    • 动态性
  • 三、Java语言发展简史
  • 四、Java是最好的语言么
    • Java 语言到底有什么优势可以占据排行榜第一的位置呢
    • Java社区的概况
  • 五、JavaScript和Java有什么关系呢?


前言

Java成为主流语言的原因在于其跨平台性、面向对象特性、丰富的库和框架支持,以及强大的社区和广泛的应用场景。这些优势使得Java在开发大型系统、企业级应用以及移动和Web开发等领域具有显著优势。


一、Java语言概述

Java是什么

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。

Java是一种跨平台的面向对象编程语言,由Sun Microsystems(现在是Oracle)在1995年推出。Java被设计用来支持应用程序的开发,特别是因特网上的应用程序。它具有简单性、可移植性和安全性的特点,因此成为了开发企业级应用程序的一种主流语言。

下面我们通过Java官方提供的数据来一起感受一下,Java到底有多“火”。

在这里插入图片描述

为什么大多数人会选择从事Java

过上面的数据,各位读者应该对Java目前到底有多流行有一个直观的认识了吧。这里有的读者可能会问了,上面的数据主要是Java在应用市场的流行,那么对于我们开发者,Java是否是我们开发应用程序的第一选择呢?

来看下图
在这里插入图片描述
在这里插入图片描述

为什么从事Java的工作者数量从年递减

  1. 工作市场上的Java工作者太多了

  2. 随着技术和市场的发展,对不同类型的开发人员需求也会变化。某些领域可能对Java的需求减少,导致从事Java的工作者数量递减。例如,移动应用开发中,Android平台使用的是Java语言,但随着React Native等跨平台开发框架的出现,其他语言的使用也有增加的趋势。

  3. 技术行业的就业市场是动态变化的,有时某个技术可能会在一段时间内更受欢迎,而在另一段时间内相对较少。这可能会导致从事Java的工作者数量的波动。

  4. 每个人都有自己的兴趣和发展方向,有些从事Java的工作者可能会选择转向其他领域或技术,以追求个人的职业发展和兴趣。这也可能是导致从事Java的工作者数量递减的原因之一。

需要注意的是,这仅仅是一种趋势,而实际情况可能因地区、行业和个人的不同而有所差异。Java作为一种广泛应用的编程语言,仍然有很多企业和项目需要Java开发人员的技能。但总的来说Java还是主流

二、Java语言的特点

简单性

Java语法是C++语法的一个“纯净版本”。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。

ps:关于C++可以关注我的C++专栏,里面包含了我是如何学习C++的

不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。

面向对象

什么是面向对象?

这里我们用木匠打一个比方,一个“面向对象”的木匠始终关注的是所制作的椅子,第二位才是所使用的工具;而一个“非面向对象的”木匠首先考虑的是所使用的工具。

在Java的世界里,一切皆对象。

Java的面向对象特性与C++旗鼓相当,与C++的主要不同点在于多重继承。在Java中,取而代之的是更简单的接口概念。而且与C++相比,Java提供了更丰富的运行时自省功能。

分布式(微服务)

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

健壮性

Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性

ps:对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性。

不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。

安全性

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

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

  • 运行时堆栈溢出。蠕虫和病毒常用的攻击手段。
  • 破坏自己进程空间之外的内存。
  • 未经授权读写文件

体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。

Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。

可移植性

与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。

例如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。

解释型

Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个增量式且轻量级的过程。所以开发过程也变得更加快捷,更加具有探索性。

高性能

尽管对解释后的字节码性能已经比较满意,但在有些场合下可能需要更加高效的性能。字节码可以(在运行时刻)动态的翻译成对应运行这个应用的特定cpu的机器码。

多线程

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

动态性

Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单

三、Java语言发展简史

Java 语言源于 1991 年 Sun 公司 James Gosling 领导的的 Oak 项目,1995 年 Sun 公司正式起名为 Java,并提出“Write once, Run anywhere" 的口号。
在这里插入图片描述

1996 年 1 月 Java 1.0 发布,提供了一个解释执行的 Java 虚拟机,其时恰逢互联网开始兴起,Java 的 Applet 能在Mozilla 浏览器中运行,被看作是未来的互联网语言。

1997 年 2 月 Java 1.1 发布,Java 语言的基本形态基本确定了,比如反射 (reflection), JavaBean, 接口和类的关系等等,一直到今天都保持一致。然而,Java 最初的一些目标,如在浏览器中执行 Applet,以及跨平台的图形界面Awt 很快遭遇到负面的评价。

1998 年 12 月,Java 第一个里程碑式的版本,即 Java 1.2 发布了。这个版本使用了 JIT(Just in time)编译器技术,使得语言的可迁移性和执行效率达到最优的平衡,同时 Collections 集合类设计优良,在企业应用开发中迅速得到了广泛使用。Sun 公司把 Java 技术体系分成三个方向,分别是 J2SE(面向桌面和通用应用开发),J2EE(面向企业级应用开发),J2ME(面向移动终端开发)。这个分类影响非常久远,体现出主流语言设计者的思想:针对于不同的应用领域,在形态,API 集合等进行划分。

2000 年 5 月,Java 1.3 发布,这个版本中 Corba 作为语言级别的分布式对象技术,成为 J2EE 的一个技术前提。

J2EE 受到 Corba 的设计的影响较大,早期 EJB 的 Home,接口和实现就是 Corba 在 C 语言的实现,被移植到Java 语言之中。J2EE 中的 Servlet 规范获得了极大的成功,伴随着互联网的兴起,和浏览器直接通过 HTTP 协议交互的 Servlet,和众多的 MVC 框架,成为 Web1.0 的网红。

2002 年 2 月,Java 1.4 发布,Java 语言真正走向成熟,提供了非常完备的语言特性,如 NIO,正则表达式,XML处理器等。同年微软的.NET 框架发布,两者开始了为期十几年的暗自竞争。从语言特性上来说,.NET 后发先至,一直处于优势。但 Java 依赖良好的开发者生态,绝大多数大型软件公司的使用者众多和不断贡献,以及对 Linux操作系统良好的支持,渐渐的在服务器端获得优势地位。

2004 年 9 月,Java 5 发布,Sun 不再采用 J2SE, J2EE 这种命名方式,而使用 Java SE 5, Java EE 5 这样的名称。我认为 Java 5 是第二个里程碑式的版本。Java 语言语法发生很大的变化,如注解 (Annotation),装箱 (Autoboxing),泛型 (Generic),枚举 (Enum),foreach 等被加入,提供了 java.util.concurrent 并发包。Java 5 对于 Java 语言的推动是巨大的,特别是注解的加入,使得语言定义灵活了很多,程序员可以写出更加符合领域定义的描述性程序。

2006 年 5 月, JavaEE 5 发布,其中最主要是 EJB3.0 的版本升级。在此之前,EJB2.X 版本被广泛质疑,SpringFramework 创建者 Rod Johnson 在经典书籍“J2EE Development without EJB“中,对 EJB2 代表的分布式对象的设计方法予以批驳。EJB3 则重新经过改造,使用注解方式,经过应用服务器对 POJO 对象进行增强来实现分布式服务能力。在某种程度,可以说 EJB3 挽救了 JavaEE 的过早消亡。

2006 年 12 月,Java 6 发布,这个语言语法改进不多,但在虚拟机内部做了大量的改进,成为一个相当成熟稳定的版本,时至今日国内的很多公司依然以Java6 作为主要 Java 开发版本来使用。同年 Sun 公司做出一个伟大的决定,将 Java 开源。OpenJDK 从 Sun JDK1.7 版本分支出去,成为今天 OpenJDK 的基础。OpenJDK6 则由 OpenJDK7 裁剪而来,目前由红帽负责维护,来满足 Redhat Enterprise Linux 6.X 用户的需要。

在这里插入图片描述

2009 年 12 月,JavaEE 6 发布,这个版本应该说是 JavaEE 到目前为止改进最大影响最深远的一个版本。因为JavaEE5 只有 EJB3 适应了 Java 注解语法的加入,而 EE6 全面接纳了注解。CDI 和 BeanValidation 规范的加入,在 POJO 之上可以定义完备的语义,由容器来决定如何去做。Servlet 也升级到 3.0 版本,并在接口上加入异步支持,使得系统整体效率可以大幅提高。EE 划分为 Full Profile 和 Web Profile,用户可以根据自己的需要选择不同的功能集。

在此之前,Oracle 已经以 74 亿美金的价格收购了 Sun 公司,获得了 Java 商标和 Java 主导权。也收购了 BEA 公司,获得市场份额最大的应用服务器 Webogic。JavaEE 6 虽然是收购之后发布的版本,但主要的设计工作仍然由原 Sun 公司的 Java 专家完成。

2011 年 7 月,Oracle 发布 Java 7, 其中主要的特性是 NIO2 和 Fork/Join 并发包,尽管语言上没有大的增强,但我个人认为,自从 Oracle JDK(包括 OpenJDK7),Java 虚拟机的稳定性真正做到的工业级,成为一个计算平台而服务于全世界。

2013 年 6 月,Oracle 发布 JavaEE 7,这个版本加入了 Websocket,Batch 的支持,并且引入 Concurrency 来对服务器多线程进行管控。然而所有的子规范,算上可选项 (Optional) 总共有 40 多项,开发者光是阅读规范文本就很吃力了,更不要说能够全局精通掌握。JavaEE 规范的本质是企业级应用设计的经验凝结,每一个 API 都经过众多丰富经验的专家反复商议并确定。各个版本之间可以做到向后兼容,也就是说,即使是 10 年前写的 Servlet 程序,当前的开发者也可以流畅的阅读源码,经过部分代码调整和配置修改,可以部署在当今的应用服务器上。反过来,今后用 Servlet4 写的程序,浏览器和服务器通信使用全新的 HTTP/2 协议,但程序员在理解上不会有障碍,就是因为 Servlet 规范的 API 非常稳定,基本没有大的变化修改。

2014 年 3 月,Oracle 发布 Java 8,这个版本是我认为的第三个有里程碑意义的 Java 版本。其中最引人注目的便是 Lambda 表达式了,从此 Java 语言原生提供了函数式编程能力。语言方面大的特性增加还有:Streams,Date/Time API,集合的并行计算支持等,Java8 更加适应海量云计算的需要。

美国当地时间2018 年9月25日,Oracle 官方宣布Java 11 (18.9 LTS) 正式发布,可在生产环境中使用!这是自 Java8 后的首个长期支持版本

四、Java是最好的语言么

不是,因为在每个领域都有更合适的编程语言。

C 语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系统都是 C 语言写成的。

C++ 是面向对象的 C 语言,一直在不断的改进。

JavaScript 是能运行在浏览器中的语言,丰富的前端界面离不开 Javascript 的功劳。近年来的 Node.js 又在后端占有一席之地。

Python 用于系统管理,并通过高性能预编译的库,提供 API 来进行科学计算,文本处理等,是 Linux 必选的解释性语言。

Ruby 强于 DSL(领域特定语言),程序员可以定义丰富的语义来充分表达自己的思想。Erlang 就是为分布式计算设计的,能保证在大规模并发访问的情况下,保持强壮和稳定性。

Go 语言内置了并发能力,可以编译成本地代码。当前新的网络相关项目,很大比例是由 Go 语言编写的,如Docker、Kubernetes 等。

编写网页用 PHP,函数式编程有 Lisp/Scala,编写 iOS 程序有 Swift/Objective-C。

一句话概括,能留在排行榜之上的语言,都是好的语言,在其所在的领域能做到最好。

Java 语言到底有什么优势可以占据排行榜第一的位置呢

其一,语法比较简单,学过计算机编程的开发者都能快速上手。

其二,在若干了领域都有很强的竞争力,比如服务端编程,高性能网络程序,企业软件事务处理,分布式计算,Android 移动终端应用开发等等。

最重要的一点是符合工程学的需求,我们知道现代软件都是协同开发,那么代码可维护性,编译时检查,较为高效的运行效率,跨平台能力,丰富的 IDE,测试,项目管理工具配合。都使得 Java 成为企业软件公司的首选,也得到很多互联网公司的青睐。

没有短板,容易从市场上找到 Java 软件工程师,软件公司选择 Java 作为主要开发语言,再在特定的领域使用其他语言协作编程,这样的组合选择,肯定是不会有大的问题。 所以综合而言,Java 语言全能方面是最好的。

Java社区的概况

Java 是一门开放的语言,其开源社区也是参与者众多。最有名的应当数 Apache 社区,目前已经拥有近 200 个顶级项目,其中绝大多数是 Java 语言项目。在 Java 生态圈中,具有重要地位的如 Spring、Ant、Commons、Tomcat、Xerces、Maven、 Struts、Lucene、ActiveMQ、CXF、Camel、Hadoop 等等。

很多技术时代,一大批 Java 项目加入,如 Web 时代的 Velocity、Wicket;JavaEE 相关的 Tomee、OpenJPA、OpenWebBeans、Myfaces;WebService 时代的 jUDDI、Axis、ServiceMix;Osgi 时期的 Flex、Karaf;大数据时代的 HBase、Hive、ZooKeeper、Cassandra;云时代的 Mesos、CloudStack 等等。

涉及到软件开发的方方面面,可以说当今几乎所有的中型以上 Java 应用中,都会有 Apache 开源项目的身影。国内最早参与 Apache 社区的以国外软件公司国内研发团队成员为主,如红帽、IONA、Intel、IBM 研发中心等。如今国内互联网公司和软件公司也不断的参与,特别是开始主导一些 Apache 项目,如 Kylin 等。

JBoss 开源社区,包含了 50 多个 Java 开源项目,其中有 Hibernate、Drools、jBPM 等业界知名开源项目,也有Undertow、Byteman、Narayana 等名气不算大,但绝对是相应领域业界的顶级优秀项目。

当前 JBoss 开源社区主要以企业应用中间件软件为主,RedHat 是主要的技术贡献力量。

Eclipse 开源社区,之前主要是包含 Eclipse IDE 的项目,后来也逐步进行多方面的扩展,比如 OSGi,服务器等,目前一些知名 Java 项目,如 Jetty、Vertx 等都是 Eclipse 开源组织成员。此外 IOT 目前是 Eclispe 的一个重点方向,在这里可以找到完整的 IOT Java 开发方案。

Spring 开源社区,以 SpringFramework 为核心,包括 SpringBoot、SpringCloud、SpringSecurity、SpringXD 等开源项目,在国内有广泛的应用场景。

所以说,Java不仅仅是一门编程语言,它是一个综合的技术体系,是面向对象思想的规范。

五、JavaScript和Java有什么关系呢?

JavaScript和Java之间存在了一些混淆和误解。尽管两者名字相似,但实际上它们是两种不同的编程语言。要说到这俩的关系,举个例子。就相当于雷锋和雷峰塔的关系或者说老婆和老婆饼的关系(没有一点关系…),最开始JavaScript叫liveScript,当时Java太火了,于是乎liveScript更名为JavaScript借势宣传一波。。

其中,Java是一种面向对象的、静态类型的编程语言,由Sun Microsystems(现在属于Oracle)开发。Java通常被用于构建大型的、高性能的企业级应用和桌面应用程序。Java代码需要通过编译器将其转换成可执行的二进制文件(即字节码),然后才能在Java虚拟机(JVM)上运行。

而JavaScript是一种脚本语言,由Netscape公司开发。它主要用于网页开发,并且可以直接嵌入到HTML中。JavaScript是一种解释性语言,不需要编译成二进制文件,而是在浏览器中直接解析和执行。它主要用于实现网页的交互和动态效果,例如表单验证、DOM操作等。

尽管两者有一些语法上的相似之处(如基本的语法结构和一些关键字),但它们的设计目标和应用场景是不同的。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux连接文件那点事

什么是连接文件 将一个文件和另一个文件建立联系,分为硬链接和软连接(符号连接)。 硬链接 Linux中,所有的文件都有一个inode,这个东西就是文件的ID号,硬链接的方式就是通过这个inode来产生新的文件名来建…

ChatGPT4O:自然语言交互

ChatGPT 4O:引领自然语言处理的新纪元 一、技术细节与强大功能二、创新点与技术突破三、应用场景与商业化前景 在科技的浪潮中,自然语言处理(NLP)领域一直备受关注。最近,OpenAI公司发布了其最新的NLP模型——ChatGPT …

echarts 环形图实现透明间隔,嵌套环形图片和图形

echarts 环形图实现透明间隔,嵌套环形图片和图形 环形图实现透明间隔环形图嵌套环形图片环形图嵌套环形图形 环形图实现透明间隔 首先通过 radius 属性实现一个圆环图 再通过 padAngle 属性设置扇区角度即可 使用 borderRadius 属性设置扇形区块的内外圆角半径&…

【PDF技巧】PDF如何解密?

PDF文件设置了加密,需要密码才能够打开文件或者编辑文件,那么如何解密PDF密码?今天我们来一起学习一下。 首先是在已知密码的情况下,PDF文件中的打开密码或者是限制编辑,想要解密PDF密码,我们只需要在PDF编…

这些网站我愿称之为做答辩PPT的神

很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路,一窍不通。但这并不是你们的错,对于平时没接触过相关方面,第一次搞答辩PPT的人来说,这是很正常的一件事。一个好的答辩PPT可以根据以下分为以下几部分来写。 1.研究的背景和…

寒冷地区污水处理一体化设备如何选型

在寒冷地区选择污水处理一体化设备时,需要特别考虑设备的耐寒性能和处理效率,以确保在低温环境下仍能稳定运行并达到预期的处理效果。以下是一些选型时需要考虑的关键因素: 耐寒设计:选择具有耐寒设计的设备,例如&…

【GESP】2023年12月图形化一级 -- 返回地球

返回地球目 1. 准备工作 (1)删除默认小猫角色。 (2)添加角色Cat Flying和Earth。 (3)删除默认白色背景,添加背景Nebula。 2. 功能实现(根据注意事项,用积木块实现下列描述的功能) (1)点击绿旗,角色Earth的初始位置为(X=170,Y=120),并以每秒向右旋转15度的…

刘邦痛恨的叛徒雍齿,为何后来还被封了侯?

雍齿,原是沛县的世族出身,家庭往上追溯几代,也曾经显赫过。 虽然比不上先祖世代为楚将的项梁、项羽,但雍齿这个没落的世族后代,身上多多少少也还讲究点贵族遗风。 战国时期,以秦国的军功爵制为代表&#…

【Uniapp】简易封装提示框showToast/showModal

组件 // 封装提示框 export const showModal (content, showCancel false, title "提示") > {return new Promise((resolve, reject) > {uni.showModal({title: title,content: content,showCancel: showCancel,success: (res) > {resolve(res);},fail:…

CTF网络安全大赛web题目:just_sqli

这道题目是bugku的web题目 题目的 描  述: KosenCTF{} 原文链接&#xff1a; CTF网络安全大赛web题目&#xff1a;just_sqli - 红客网-网络安全与渗透技术 题目Web源代码&#xff1a; <?php$user NULL; $is_admin 0;if (isset($_GET["source"])) {highlig…

每日学习 - APK解包

文章目录 APK的定义解析APKAPK 是什么每个文件的意义classes.dexAndroidManifest.xmlassetslibres & resources.arsc 反编译工具apktool apk解包 秒了~ APK的定义 APK&#xff08;Android Package Kit&#xff09;是用于部署和分发Android操作系统上应用程序的软件包格式。…

谷粒商城实战(024 业务-订单模块-分布式事务1)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第284p-第p290的内容 简介 模拟积分服务出异常&#xff0c;前方的锁库存事务未回滚&#xff0c;这时候就需要分布式事务 本地事务 事务的隔离…

Linux环境部署与命令技巧

Linux环境部署与命令技巧 安装Java 首先确保已经安装了Java。通过运行以下命令检查Java是否已安装&#xff1a; java -version # 查看Java版本如果未安装Java&#xff0c;可以使用以下命令安装OpenJDK&#xff1a; sudo yum install java-11-openjdk # 安装OpenJDK 11创建一个…

华为昇腾310B1平台视频解码失败[ERROR] Send frame to vdec failed, errorno:507018

目录 1 [ERROR] Send frame to vdec failed, errorno:507018 2 bug解决尝试1 3 bug解决尝试2 4 最终解决方法 参考文献&#xff1a; 1 [ERROR] Send frame to vdec failed, errorno:507018 某项目中的代码运行报错 [ERROR] Send frame to vdec failed, errorno:507018 Ac…

Python专题:十四、文件操作(1)

现代计算机中&#xff0c;我们使用文件系统来保存数据&#xff0c;使用目录结构组织文件数据的系统 相对路径 guess_number.py 文件扩展名&#xff1a;Window系统中&#xff0c;通过扩展名来识别文件 readlines()函数&#xff0c;读取整个文件并返回一个列表 Python程序读取…

ue引擎游戏开发笔记(38)——实现敌人接收攻击伤害,并作出反应

1.需求分析&#xff1a; 现在已经显示造成实际伤害&#xff0c;但敌人对实际伤害并未产生反馈&#xff0c;例如还击&#xff0c;或者死亡倒地等等&#xff0c;实现敌人对于受击的反馈。 2.操作实现&#xff1a; 1.思路&#xff1a;在动画蓝图中添加死亡动画&#xff0c;并通过…

Google I/O盛会省流全内容总结:AI模型家族革新与前沿技术应用的广阔前景

昨晚的Google I/O 发布会主要聚焦于AI模型和应用的更新与扩展&#xff0c;特别在生成模型领域取得了显著进步。以下是模型层面内容的简要总结&#xff1a; DeepMind官网链接&#xff1a;https://deepmind.google/ Google Veo官方&#xff1a;https://deepmind.google/technol…

Linux|基础IO

Linux|基础IO 回顾c语言的文件操作提炼对文件的理解系统调用初始open函数返回值fd为什么我们向fd一个整数写就写入文件了呢&#xff1f;怎么理解读写操作总结open函数有哪些功能怎么理解往硬件&#xff08;显示器&#xff0c;键盘&#xff09;中读写数据如何理解FILE*访问文件 …

ChatGPT未来可能应用于iPhone?

苹果接即将与OpenAI达成协议 ChatGPT未来应用于iPhone 前言 就在5月11日&#xff0c;苹果公司正与OpenAI进行深入讨论&#xff0c;计划在其最新的iOS操作系统中整合OpenAI的先进技术。这一举措是苹果公司在为其产品线融入更先进的人工智能功能所做努力的一部分。 目前情况双方…