49天精通Java,第0天,编程语言类型有哪些?我心中的TOP1编程语言,什么是java跨平台性?

news2024/11/15 20:10:07

在这里插入图片描述

目录

    • 一、常见的编程语言类型
      • 1、机器语言
      • 2、汇编语言
      • 3、高级语言
    • 二、计算机编程语言
    • 三、跨平台性
      • 1、跨平台的优势包括:
      • 2、实现跨平台的方式包括:
    • 四、Java的跨平台性
    • 五、java运行时和虚拟机
    • 六、Java内存管理和Java垃圾回收
      • 1、Java内存管理
      • 2、Java垃圾回收

大家好,我是哪吒。

作为一名程序员,选择一款适合自己的编程语言是非常重要的。每种编程语言都有自己的专业优点和缺点,以及它们适用的特定场景。在本文中,我将探讨评选最佳编程语言时需要考虑哪些标准,并从专业优点和缺点、未来发展趋势等方面分析我心中的TOP1编程语言。

一、常见的编程语言类型

常见的编程语言类型包括机器语言、汇编语言、高级语言。

在这里插入图片描述

1、机器语言

机器语言(machine language)是一种指令集的体系,是最早出现的计算机语言。 机器语言从属于硬件设备。 不同的计算机设备有不同的机器语言.所以机器语言是一种面向机器的语言。 计算机指令系统中的指令是由“0”和“1”两种符号组成的代码,并且能被机器直接理解执行,它们被称为机器指令。 一个计算机的机器指令的集,就构成了该计算机的机器语言,即计算机可以直接接受、理解的语言。

机器语言的特点包括:

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。

特点:能利用机器指令精准地描述算法,且编程质量高;所占存储空间小;执行速度快。
缺点:难记、难读、难修改。这种程序直观性很差,容易出错,阅读检查和修改调试非常困难。需要人工分配内存。程序通用性差。由于不同类型计算机的指令系统不同,机器语言也不同。

机器语言是一种面向机器的低级语言。

总之,机器语言是计算机硬件能够直接识别的一种指令集,具有特定的应用场景和优势,但也有一些缺点需要我们注意。

2、汇编语言

汇编语言(assembly language)是一种低级计算机编程语言,它使用一种非常接近于计算机硬件的指令系统。因此,汇编语言也被认为是一种次级的计算机语言。

汇编语言的特点包括:

  1. 汇编语言可以提供对计算机硬件的直接访问,因此它被用于编写操作系统和嵌入式系统等高性能的程序。
  2. 汇编语言具有非常高的执行效率,因为它不需要进行高级语言的编译,也不需要进行解释,可以直接在硬件上执行。
  3. 汇编语言的代码密度非常高,因为它的指令系统非常紧凑,可以有效地利用内存空间。
  4. 汇编语言的执行速度非常快,因为它的指令可以直接被计算机硬件理解并执行。
  5. 汇编语言需要程序员有更深入的计算机体系结构和硬件知识,因为它的指令系统比较复杂,编写难度也比较大。

总的来说,汇编语言是一种面向机器的低级语言,它直接访问计算机硬件,具有高执行效率和代码密度等优点。但因为它的指令系统复杂,编写难度较大,需要程序员有较高的技术水平。

3、高级语言

高级语言(high-level programming language)是一种与具体硬件和操作系统无关的编程语言,它更接近于自然语言和数学语言,具有更高的可读性和可维护性。

高级语言的特点包括:

  1. 高级语言具有更强的可读性和可维护性,因为它的语法结构和自然语言更为接近,可以更容易地被人类理解。
  2. 高级语言具有更高的抽象能力,可以更容易地表达复杂的算法和逻辑结构,同时也更容易被程序员理解和维护。
  3. 高级语言的指令系统通常更为复杂,需要编译器将高级语言代码转换为机器码,因此高级语言的代码通常比较大。
  4. 高级语言可以提供更多的功能和特性,例如变量、函数、循环、条件语句、数组、对象等,使得程序编写更加方便和灵活。
  5. 高级语言可以更好地支持面向对象编程(OOP)的特性,例如封装、继承、多态等,这使得程序更加模块化和可扩展。

总的来说,高级语言是一种与具体硬件和操作系统无关的编程语言,它更接近于自然语言和数学语言,具有更高的可读性和可维护性。虽然它的指令系统复杂,但因为它提供了更多的功能和特性,使得程序编写更加方便和灵活。

二、计算机编程语言

计算机编程语言是用于向计算机发出指令,使其执行特定任务的计算机语言。以下是一些常见的计算机编程语言:

  1. Java:Java是一种广泛使用的编程语言,适用于开发跨平台应用程序,包括Web应用程序和移动应用程序。
  2. Python:Python是一种易于学习和使用的编程语言,适用于数据科学、机器学习和Web开发等领域。
  3. C++:C++是一种高效且功能强大的编程语言,适用于系统编程、游戏开发、虚拟现实和计算机图形学等领域。
  4. JavaScript:JavaScript是一种用于Web开发的脚本语言,用于创建交互式网页和动态效果。
  5. C#:C#是一种面向对象的编程语言,由微软开发,适用于Windows应用程序和Unity游戏开发。
  6. PHP:PHP是一种用于Web开发的服务器端脚本语言,用于创建动态网站和Web应用程序。
  7. Ruby:Ruby是一种易于学习和使用的编程语言,适用于Web开发、脚本编写和系统管理等领域。
  8. Swift:Swift是一种用于iOS和macOS应用程序开发的编程语言,由苹果公司开发。
  9. Kotlin:Kotlin是一种面向对象的编程语言,适用于Android应用程序开发。

以上仅是一些常见的计算机编程语言,实际上还有许多其他的编程语言,每个语言都有其特定的应用场景和优势。

如果按照有没有虚拟机来划分,高级编程语言可分为两类:

  • 有虚拟机:Java,Lua,Ruby,JavaScript等等;
  • 无虚拟机:C,C++,C#,Golang,以及大部分常见的编程语言;

如果按照是编译执行,还是解释执行,可以分为:

  • 编译执行:C,C++,Golang,Rust,C#,Java,Scala,Clojure,Kotlin,Swift 等等;
  • 解释执行:JavaScript 的部分实现和 NodeJS,Python,Perl,Ruby 等等;

按照语言特点分类:

  • 面向过程:C,Basic,Pascal等;
  • 面向对象:Java,C++,Ruby等;
  • 函数式编程:LISP、Haskell、Erlang、OCaml、Clojure、F# 等等。

三、跨平台性

我们希望编写好的代码和程序,最好可以在任意平台和环境下运行,而不需要根据不同的平台,编写不同的代码。

比如,我编写的一个博客管理系统,我希望它可以在windows中运行,也可以在Linux环境下运行,也可以在MacOS环境下运行。

这就是跨平台特性,节省开发和运维成本。

1、跨平台的优势包括:

  1. 提高开发效率:通过编写一次源代码,就可以在多个操作系统上使用,可以大大减少开发时间和成本,提高了开发效率。
  2. 提高代码的可复用性:由于不同的操作系统之间有很多相似的特性,通过编写跨平台的代码,可以让代码在不同的操作系统之间进行复用,避免了重复编写代码的问题。
  3. 提高应用程序的兼容性:通过编写跨平台的代码,可以让应用程序在不同的操作系统上运行,提高了应用程序的兼容性和可扩展性。
  4. 提高了代码的可维护性和可管理性:由于跨平台的代码可以在多个操作系统上进行管理,因此可以更容易地进行代码的维护和管理,减少了代码出错的可能性。

2、实现跨平台的方式包括:

  1. 使用跨平台的编程语言:例如C++、Java、Python等,这些编程语言具有跨平台的特性,可以在多个操作系统上编写和运行程序。
  2. 使用跨平台的API和库:通过使用跨平台的API和库,可以使得编写的程序可以在不同的操作系统上运行。例如,使用标准C库、STL等。
  3. 使用跨平台的工具和框架:通过使用跨平台的工具和框架,可以使得编写的程序可以在不同的操作系统上运行。例如,使用GTK+、Qt等。

总的来说,源码跨平台是一种提高开发效率、减少成本、提高应用程序兼容性和可维护性的有效方式。但需要注意的是,不同的操作系统之间仍然存在一些差异,因此编写跨平台的代码仍然需要一些特定的技巧和注意事项。

四、Java的跨平台性

在这里插入图片描述

Java源码只需编译一次,将java文件编译成class文件,就可以通过安装在Windows或Linux中的JVM中运行。

五、java运行时和虚拟机

Java运行时是指Java程序运行所需的软件环境,它包含了Java虚拟机、Java类库和其他必要的组件。Java运行时是Java程序运行的基础,它提供了一个安全、稳定、高效的运行环境,使得Java程序可以跨平台运行。

Java虚拟机是Java运行时的一个重要组成部分,它是Java编程语言的核心特性之一。Java虚拟机是一种软件程序,它可以在不同的操作系统和硬件平台上模拟出一个Java程序运行的硬件环境。Java虚拟机可以解释和执行Java字节码,并将其转换为机器码来执行。

Java虚拟机的主要作用包括:

  1. 提供了Java程序的安全性和稳定性,因为Java虚拟机可以屏蔽底层操作系统的细节和差异,提供一个统一的运行环境。
  2. 提供了Java程序的跨平台性,因为Java虚拟机可以在不同的操作系统和硬件平台上运行Java程序,使得Java程序可以在不同的平台上进行开发和部署。
  3. 提供了Java程序的性能和效率,因为Java虚拟机可以将Java字节码转换为高效的机器码,并提供了许多优化和缓存机制,提高了Java程序的执行效率。

Java运行时和虚拟机是Java编程语言的核心组成部分,它们提供了Java程序的安全性、稳定性和高效性,使得Java程序可以在不同的平台上进行开发和部署。

六、Java内存管理和Java垃圾回收

1、Java内存管理

Java内存管理是指对Java程序运行时分配的内存进行管理和控制。在Java中,内存管理主要包括以下几个方面:

  1. 分配内存:当Java程序需要分配内存时,它需要向操作系统申请一块指定大小的内存区域,并将这块区域与程序中的对象进行关联。
  2. 维护内存:Java程序需要维护已分配的内存,包括对内存进行读取和写入,以及将内存中的数据传递给其他组件。
  3. 释放内存:当Java程序不再使用某些内存时,它需要将这些内存释放回操作系统,以便其他程序可以继续使用这些内存。

2、Java垃圾回收

Java垃圾回收是指对Java程序运行时产生的垃圾对象进行回收和清理。在Java中,垃圾回收主要包括以下几个方面:

  1. 标记清除:Java垃圾回收器会定期扫描程序中的对象,并将不再被引用的对象进行标记或清除。
  2. 垃圾回收:当Java程序不再使用某些对象时,垃圾回收器会将这些对象回收并释放它们的内存,以便程序可以重复使用这些内存空间。
  3. 垃圾回收的优化:Java垃圾回收器还可以通过一些优化技术来提高垃圾回收的效率和性能,例如使用增量式垃圾回收、延迟标记、分代回收等算法。

Java内存管理和垃圾回收是Java编程语言的核心组成部分,它们使得Java程序可以更加可靠和可扩展。通过自动化的内存管理和垃圾回收机制,Java程序可以避免内存泄漏和资源耗尽等问题,提高了程序的性能和可靠性。


在这里插入图片描述

🏆本文收录于,49天精通Java从入门到就业。

全网最细Java零基础手把手入门教程,系列课程包括:基础篇、集合篇、Java8新特性、多线程、代码实战,持续更新中(每周1-2篇),适合零基础和进阶提升的同学。

🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。

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

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

相关文章

基于matlab使用虚幻引擎模拟开发视觉SLAM算法(附源码)

一、前言 本示例展示了如何使用从虚幻引擎模拟环境中获取的图像数据开发可视化同步定位和映射(SLAM)算法。 视觉SLAM是计算摄像机相对于周围环境的位置和方向,同时映射环境的过程。开发可视化 SLAM 算法并评估其在不同条件下的性能是一项具…

抖音短视频矩阵管理系统源码开发部署(开源定制)

一、什么是短视频矩阵管理系统? 短视频矩阵管理系统是专门为企业号商家、普通号商家提供帐号运营从流量 到转化成交的一站式服务方案,具体包含:点赞关注评论主动私信 ,评论区回复,自动潜客户挖掘,矩阵号营销…

今日小课堂:会议录音转文字怎么弄的

小君:嘿,你知道怎么把录音转成文字吗?我今天录了一个重要的会议,但是时间有限,需要快速整理笔记。 小辉:当然!你可以使用一些工具来将录音转换为文字。最简单的方法就是利用语音转文字的应用。…

C语言 while 和 do while 区别

先简单介绍一下C语言中的while和do while语句 while循环 语法 C 语言中 while 循环的语法: while(condition) {statement(s); } 在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。 condition 可以是任意的表达…

Kubernetes 启动Pod的方法-Pod的调度算法-Pod间的通信-k8s的控制器-Pod资源控制-发布Service服务

目录 Pod 参考文档:Pod | Kubernetes Pod配置文件:simple-pod.yaml 对master进行如下操作 Pod的状态有: 参考文档:(70条消息) Pod生命周期中的状态解释_pod状态_闹玩儿扣眼珠子的博客-CSDN博客 进入Pod内的nginx容器&#…

【Ubuntu】系统U盘变为普通U盘

如果您在 Ubuntu 系统上没有磁盘工具可用,您可以尝试使用命令行工具来格式化系统 U 盘。请按照以下步骤进行操作: 打开终端:在 Ubuntu 桌面上,按下 Ctrl Alt T 快捷键,或者在应用程序菜单中搜索并打开 "终端&qu…

PPT文件,使用python删除链接

文章目录 一、需求二、处理方式三、代码实现 一、需求 如下图所示,将PPT文件中的链接进行删除,且不保留链接名。 原始文件: 处理后文件: 二、处理方式 使用python 的pptx模块进行处理,读取文字块,然后…

FPGA实验二:模可变计数器设计

目录 一、实验目的 二、实验要求 三、实验代码 1.实验源码 2.部分代码设计思路分析 四、实验结果及分析 1、引脚锁定 2、仿真波形及分析 3、下载测试结果及分析 五、实验心得 1.解决实验中遇到的困难及解决 2.完成实验后的心得 一、实验目的 (1&#xf…

【Linux系统编程】Linux 软件包管理器——yum

文章目录 1. 什么是yum2. yum的使用2.1 注意事项2.2 查看软件包2.3 如何安装软件2.4 如何卸载软件2.5 yum源 这篇文章我们要学习的是—— Linux 软件包管理器 yum。 1. 什么是yum 首先来问大家一个问题: 我们平时使用的手机上,都会有一个应用叫做“应…

【全栈开发指南】OAuth2授权获取token调试接口的方式

在我们实际应用接口的调用调试过程中,需要用到token或者刷新token,GitEgg支持OAuth2.0协议进行认证授权,这里介绍说明如何通过Postman获取token和refresh_token并进行接口调试。 1、使用密码模式获取token 根据spring-security-oauth2的实现…

创建虚拟机安装windowserver2016服务器(NETBASE第二课)

2 操作流程 文件-新建虚拟机-自定义(高级)-下一步-稍后安装操作系统-下一步-客户机操作系统-选择Windows 10 X64-下一步-虚拟机名输入win10-1-位置选择(E:\虚拟机\Win10-1)-下一步-固件类型选择UEFI-下一步-下一步-输入内存2048M-…

2023年Arm最新处理器架构分析——X4、A720和A520

1、引言 上一篇文章我们介绍了Arm的Cortex-X1至Cortex-X3系列处理器,2023年的5月底,Arm如期发布了新一年的处理器架构,分别为超级大核心Cortex-X4,大核心A720和小核心A520。在智能手机行业,Arm始终保持每年一迭代的处…

ModaHub魔搭社区:ChatGLM-RLHF:无需微调 教程

目录 使用方法 效果展示 对ChatGLM直接使用RLHF进行调整参数,无需传统的finetune|Modify ChatGLM params with only RLHF。 大部分的RLHF代码都是在分布式框架,不适合学习和使用,本代码的RLHF代码不需要Megatron或者deepspeed框架&#xff…

Maven高级(三)--聚合

1.解决的问题: 此时tlias-web-management模块的父工程是tlias-parent,该模块又依赖了tlias-pojo,tlias-utils模块。那么此时,我们要将tlias-web-management模块打包,是比较繁琐的。因为进行项目打包,maven会从本地仓库来查找tlias…

Jupyter notebook 安装代码提示和补全

打开Anaconda Prompt 终端 依次输入 pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user pip install jupyter_nbextensions_configurator jupyter nbextensions_configurator enable --user 打开Jupyter notebook

Linux的用户管理精简全总结

(该图由AI绘制 关注我 学习AI画图) 目录 Linux操作系统用户和组的概念 1、为什么需要了解用户和组 2、用户和组的关系 3、用户组操作 ☆☆☆☆☆☆☆☆☆☆☆ /etc/group文件解析 ☆ 用户组的修改 ☆ 用户组的删除 4、用户操作 ☆ 用户信息查…

VSCode 提示 1.16.15 版本的Go,不支持 gopls v.0.13.0

Go1.16.15无法使用 goplsv.0.13.0 问题详情解决办法 问题详情 Gopls was built with Go version 1.16, which will be unsupported by gopls v0.13.0. Please upgrade to Go 1.18 or later and reinstall gopls. If you cant upgrade and want this message to go away, pleas…

FPGA实现二进制转BCD码

1、简介 bcd码:以4bit二进制码表示一个十进制码 例如,432(d) 0100-0011-0010(bcd) 这里具体的判断方法为:(满5)加3法 二进制位宽为W,则BCD位宽只需要&…

JS 实现CSV文件转换SQL文件小工具

一. 需求 最近在项目中遇到一个问题,客户提供的数据是CSV格式的, 需要将CSV文件中的数据转换为SQL语句文件。 😅由于本人不会Excel的vba编程,因此决定使用JS来实现。 二. 实现思路 提供一个文件上传框,支持多文件上…

微信小程序全局配置详解

通过全局配置实现的效果 开发者 微信公众平台 登录网址 https://mp.weixin.qq.com/ 注册网址 https://mp.weixin.qq.com/cgi-bin/wx?token&langzh_CN 微信小程序开发者工具 下载地址 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 小…