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

在这里插入图片描述

目录

    • 一、常见的编程语言类型
      • 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架构师。

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

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

相关文章

SSM学习笔记-------SpringMVC(二)

SSM学习笔记-------SpringMVC(二) SpringMVC_day021、SSM整合1.1 流程分析1.2 整合配置步骤1:创建Maven的web项目步骤2:添加依赖步骤3:创建项目包结构步骤4:创建SpringConfig配置类步骤5:创建JdbcConfig配置类步骤6:创建MybatisConfig配置类步…

ACL 2023|如何智能生成吸引人又符合实际的标题?

夕小瑶科技说 原创 作者 | 小戏、Python 标题生成,乍一看似乎并不是一个复杂的任务,要数据简单的爬虫就可以获得许多标题-文本对,要评价通过用户点击与浏览的次数就多少可以区分“好标题”与“坏标题”,万事俱备使用一些经典的监…

HTTP/HTTPS 简介||HTTP 消息结构

HTTP/HTTPS 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP 是一个基于 TCP/IP 通信协议来传递数据&a…

IBM N系列存储和NetApp FAS之间的对应关系

IBM在很长一段时间都是OEM NetApp的FAS存储作为他的NAS产品线,在IBM叫做Storage N series,就是N系列,在2014年IBM终止了和NetApp之间的OEM关系,目前在市场上的OEM的NetApp存储型号主要是 FAS3000,FAS31和FAS32的中端系…

【新星计划·2023】Linux系统的架构和组件讲解

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 前言 本文将讲解Linux系统的架构和组件。 目录 一、Linux系统的架构 1、硬件层 2、内核层 3、进程管理子系统 4、内存管理子系统 5、…

C语言 base32与base64加解密

概述 Base32、Base64编码就是分别用32个、64个可打印字符表示二进制数据。 一、Base32规则 32 2^5,所以需要5 Bit来表示一个base32字符。一个字节8 Bit,5和8的最小公倍数是40。编码的过程中,以5个字节为一组转为8个base32字符,不…

服务端⾼并发分布式结构演进之路

1.前置概念 应⽤(Application)/系统(System) 为了完成一整套服务的一个程序或相互配合的程序群 模块(Module)/组件(Component) 当应⽤较复杂时,为了分离职责&#xf…

2023年测试之路,从功能测试进阶测试开发工程师,突破内卷...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 测试开发工程师到…

SpringBoot配置外部Tomcat项目启动流程源码分析

前言 SpringBoot应用默认以Jar包方式并且使用内置Servlet容器(默认Tomcat),该种方式虽然简单但是默认不支持JSP并且优化容器比较复杂。故而我们可以使用习惯的外置Tomcat方式并将项目打War包。 【1】创建项目并打War包 ① 同样使用Spring Initializer方式创建项目 …

并发编程_jmm部分

1. JMM 理解 前提:并发编程有3大问题,可见性、有序性、原子性。 导致可见性的原因是缓存,有序性的原因是 编译器优化。解决方法就是直接禁用缓存和编译器优化,导致程序性能堪忧。 因此合理的方案就是按需禁用缓存和编译器优化。 …

JUC之ThreadLocal

文章目录 1 基础知识1.1 强软弱虚四种引用 2 ThreadLocal出现的好处3 ThreadLocal源码分析3.1 ThreadLocal内存泄露问题3.2 ThreadLocal为什么使用的是弱引用3.3 清扫过期的Entry 4 ThreadLocal使用建议 1 基础知识 1.1 强软弱虚四种引用 【整体结构】 【强引用】 【软引用…

初始网络原理

目录 网络发展史 独立模式 网络互连 局域网LAN 广域网WAN 网络通信基础 IP地址 端口号 认识协议 五元组 协议分层 OSI七层模型 TCP/IP五层(或四层) 网络设备所在分层 封装和分用 网络发展史 独立模式 独立模式:计算机之间相互…

【技能实训】Day01

文章目录 任务1 项目准备一、开发环境二、系统简介三、项目创建 任务2【任务2.1】菜单项设计及其测试【任务2.2】使用数组存储采集的数据【任务2.3】控制显示采集的数据 任务1 项目准备 一、开发环境 1.JDK8下载及其环境变量配置(JDK8以上版本) 2.IDE :Eclipse 或…

应用层:万维网WWW

1.万维网WWW 笔记来源: 湖科大教书匠:应用层概述 湖科大教书匠:万维网WWW 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 浏览器最重要的部分是渲染引擎,也就是浏览器内核。负责对网页内容进行解析和…

postgresql 数据库 索引 介绍

postgresql 数据库 索引 介绍 文章目录 postgresql 数据库 索引 介绍前言一 什么是索引?二 简介三 索引的种类B-treeHash索引GiST索引GIN 索引BRIN 索引SP-GiST索引 CREATE INDEX1.大纲2.描述3. 参数UNIQUECONCURRENTLYIF NOT EXISTSINCLUDEnameONLYmethodcolumn_na…

Vue3:在 VSCode 中如何成功安装 Mockjs 及成功引入 Mock 的详细过程

Ⅰ、Mock 简介: 1、什么是 Mock? 其一、Mock 的解释一: Mock 服务是指在测试过程中对于某些复杂(或者不太好构造)的对象,用一个虚拟的对象替代它;对于前端来说,就是后台数据还没有…

RS485或RS232转ETHERCAT连接安川ethercat总线伺服

最近,生产管理设备中经常会遇到两种协议不相同的情况,这严重阻碍了设备之间的通讯,串口设备的数据不能直接传输给ETHERCAT。这可怎么办呢? 别担心,远创智控YC-ECT-RS485/232来了!这是一款自主研发的ETHER…

数据结构第一章 绪论——走进数据的世界

名人说:唯一可以确定的是,明天会使我们所有人大吃一惊。——阿尔文托夫勒 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) ✔ 课件资料及视频课程学习:王道 数据结构&#xff08…

Linux 网络延迟排查方法详解

概要 在 Linux 服务器中,可以通过内核调优、DPDK 以及 XDP 等多种方式提高服务器的抗攻击能力,降低 DDoS 对正常服务的影响。在应用程序中,可以使用各级缓存、WAF、CDN 等来缓解 DDoS 对应用程序的影响。 但是需要注意的是,如果 …

Lingo优化软件初步

一、Lingo软件介绍 1、lingo软件的简单介绍 美国芝加哥大学的Linus Schrage教授于1980年左右开发的专门用于求解最优化问题的软件包,后经多年完善与扩充,并成立了LINDO系统公司进行商业运作取得巨大成功。根据 LINDO公司主页(http://www.li…