那些Java平台上的非Java语言

Java .class文件编码和JVM运行期内存编码?macOS系统的Java支持?什么是macOS的五大API法王?只有Java语言才可以运行在JVM之上吗?JVM是用什么语言编写的以及跨平台吗? 本文主要介绍了Java相关技术要点,包括:1) Java文件编码机制,.class文件采用UTF-8编码;2) macOS对Java的历史支持情况;3) JVM的实现原理,采用C++编写且平台相关;4) 除Java外,Kotlin等语言也可运行在JVM上;5) Java发展历程,源自Oak语言并借鉴C++特性;6) 主流编程语言的GC机制实现差异。文章还涉及macOS的五大API框架和Java扩展语言如Scala等,为开发者提供了Java技术生态的全面概览。 阅读详情

  Java 的创造者们在一开始就把Java 语言和Java 虚拟机分开, 现在看来是个非常明智的决定。

  Java虚拟机定义了一个"软CPU", 和Intel 的x86 的指令集一样, 这个软CPU也有一套自己的指令,这就意味者对于任意一门编程语言, 只要你能编译成Java 的字节码指令,或者在运行时动态的生成字节码指令, 就可以运行在Java虚拟机中。

  1、Jython和JRuby

  从这两位名字开头的字母 "J" 就可以看出来这两个语言和Java 的血缘关系。

  没错,他们就是可以运行在Java 虚拟机上的Python 和 Ruby 。 不同于用C语言写的CPython和 CRuby, 这两者需要一个JVM才能运行。

  既然是运行在JVM上的语言, 自然要能调用Java 类库, 要不然放着这么多优质Java 资源不用多可惜!

  如果你思考的深入一些,就会有这么一个问题 : 由于Python 和ruby 都是脚本语言, 都是解释执行的, 没有编译的过程, 那Jython和JRuby 在解释的过程中,肯定得生成Java 字节码, 要不然JVM就会把他们拒之门外。那字节码是怎么在运行中生成的?

  答案就是ASM , 一个可以动态生成字节码的Java 类库。

  (注: 参见文章《ASM: 一个低调成功者的自述》)

  我个人觉得Jyhton和JRuby能在JVM上运行起来,调用Java 类库, 是个很好的卖点, 但是却难以大规模流行, 原因可能也是类库造成的。

  最早的时候学习C语言, 由于没有良好的类库,就是对一个字符串操作都很麻烦, 那些更加高层的语言例如Java, Python, Ruby 就弥补了这个缺陷, 语言自带强大的类库, 再加上社区的贡献, 用起来非常顺手。 说个题外话, 这也直接导致了很多初学者的疑问: 语言都封装好了, 我还学数据结构干嘛?!

  Python, Ruby 社区已经积累了大量的、好用的库, 他们才是Python, Ruby一派繁荣的主要原因, 但是这些库都是Python, Ruby写的, 也有不少是C语言写的, 这些海量的类库全部移植到Java 上绝非易事, 我们也不能要求类库的作者同时提供Java 版本 。

  而Java 现成的类库总是感觉和Python , Ruby 有一点Gap, 语言设计的思维不同, 虽然可以集成互操作, 但还是感觉别扭。

  也许Jython和JRbuy 只是小范围内或者特定场合使用吧。

  二、Groovy

  Groovy 并不像Jython, JRuby, 它并不是一个现有语言在JVM上的移植, 而是一个全新设计的语言。

推荐学习视频课程:

Java基础视频教程_java从入门到精通_java300集新手必看教程

【尚学堂】Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程_Java语言入门到精通

电机FOC控制实战:STM32 CubeMX配置六路互补PWM与死区优化 本文详细介绍了如何使用STM32 CubeMX配置六路互补PWM与死区优化,实现电机FOC控制。通过实战经验分享,包括时钟配置、定时器设置、死区时间计算及优化技巧,帮助开发者避免常见问题,提升电机控制性能。特别适用于STM32G4系列的无刷电机驱动应用。 阅读详情

相关推荐

Dirsearch的下载、安装和使用(全)

Dirsearch工具的下载、安装和使用,超详细超全面

weixin_68416970的博客 1万+

聊聊Java 平台上的非Java语言

Java 的创造者们在一开始就把Java 语言和Java 虚拟机分开, 现在看来是个非常明智的决定。Java虚拟机定义了一个"软CPU", 和Intel 的x86 的...

码农翻身 452

MT6816角度传感器SPI通信避坑指南:从数据手册到稳定读取的3个关键步骤

本文详细解析了MT6816角度传感器SPI通信中的常见问题与解决方案,包括寄存器地址计算、SPI时序配置和数据校验等关键步骤。通过实测波形和代码示例,帮助工程师避开数据手册中的隐藏陷阱,实现稳定可靠的角度数据读取,特别适用于高精度电机控制场景。

weixin_42520573的博客 517

计算机毕业设计ssm基于Javaweb的非语言医患交流系统的设计与实现 基于Java Web的非语言医患交流平台的构建与实践 面向Java Web的非语言医患沟通系统的设计与开发

本文介绍了一款基于JavaWeb的非语言医患交流系统的设计与实现。该系统采用B/S架构,使用Java开发,MySQL存储数据,包含用户管理、在线咨询、病历管理、处方管理等模块,有效解决了传统医患沟通的时空限制问题。通过系统分析、设计及实现过程的详细说明,展示了该系统在提高医疗服务效率、改善医患沟通方面的应用价值。系统操作简便,适用于各类用户群体,具有较好的技术可行性和实用性。文末提供源码获取方式。

程序员一枚 1036

【实战】S7-PLCSIM Advanced V3.0 授权问题排查指南(Error Code:-30与LicenseNotFound深度解析)

本文深度解析S7-PLCSIM Advanced V3.0启动时遇到的Error Code:-30与LicenseNotFound报错问题。文章提供了一套系统性的排查指南,从检查WinPcap驱动兼容性、确保Automation License Manager服务运行,到正确安装浮动授权以及清理系统残留缓存,逐步解决授权链条中的各个环节故障,帮助用户彻底解决仿真环境启动失败的问题。

weixin_29185167的博客 726

实战指南 | Adjust 与 Facebook、Google Ads 自归因配置全流程解析

本文详细解析了Adjust与Facebook、Google Ads自归因配置的全流程,帮助移动应用出海推广者解决广告归因难题。通过自归因功能(SAN),开发者可以获取更准确的数据、简化配置流程并扩大安装来源覆盖,显著提升广告效果监测和ROI计算效率。

weixin_42528780的博客 539

我对非跨平台编程语言.net与跨平台语言java or php等优劣的看法

虽然.net语言微软公司自称为跨平台语言,但就算有个别方法能使得.net语言在非windows的操作系统下运行,但这客观上并未获得普及与推广,也缺乏必要的论证,所以就当前而言,我把.net看作为只能在windows下使用的编程语言,即使它真的在linux之类的系统上运行起来了,也不能以此来改变我当前的观点。 而java、php由于提供了主流操作系统的支持,所以,无疑是跨平台的语言。也就

zhangjiong81的专栏 1602

张正友标定法-MATLAB实验

该方法最早由微软研究院的Zhengyou Zhang教授提出,1998年发表在IEEE TRANSACTIONS ON PATTERNANALYSIS AND MACHINE INTELLIGENCE,论文题目为:AFlexible New Technique for Camera Calibration。 (一)标定平面到图像平面的单应性 单应性(homography):在计算机视觉中被定义

qq_37845624的博客 8290

计算机毕业设计java基于Javaweb的非语言医患交流系统的设计与实现 基于 Javaweb 的非语言医患沟通系统设计与实现 Javaweb 技术的医患非语言交流平台

在医疗服务中,语言沟通障碍可能导致医患信息传递不畅,影响诊疗效率与质量。尤其对于存在听力、语言障碍的患者,传统沟通方式难以满足需求。基于此,开发基于 Javaweb 的非语言医患交流系统,通过线上平台整合图文、表情等非语言沟通方式,为医患双方搭建便捷的交流渠道,成为提升医疗服务包容性与效率的重要举措。该系统借助 Javaweb 技术的稳定性,为非语言沟通提供可靠的技术支撑。

毕设源码纪师姐 942

博途V17 & PLCSIM & FactoryIO 连接教程

PLCSIM V17 和 FactoryIO 连接教程前言一、软件版本二、连接步骤1. 连接PLCSIM2. 博途编程3.连接FactoryIO总结 前言 该文详细讲解了新手入门博途,并通过使用自带PLCSIM和FactoryIO实现连接。 一、软件版本 TIA Portal V17 S7-PLCSIM V17 Factory IO V2.5.1 二、连接步骤 1. 连接PLCSIM 打开PLCSIM 进入项目模式 新建仿真项目 2. 博途编程 将F

soledad_chao的博客 2万+

用 SE84 反查 SAP 消息号:弹窗一闪而过也能抓到 Message ID 和 Number 的小技巧

SAP开发技巧:通过消息文本反查Message ID和编号 在SAP开发中,经常遇到系统只显示错误消息文本而缺少技术信息的情况。本文介绍两种实用方法: 使用SE84工具:通过输入带通配符的短文本(如"错误文本")反向查找消息类和编号 直接查询T100表:利用消息文本在T100表中检索完整的消息技术信息 这些技巧特别适用于处理弹窗消息、框架层错误等无法直接获取技术细节的场景。掌握消息ID和编号后,开发者可以更高效地进行问题定位、代码调试和错误处理,尤其在SAP Gateway、RAP等现代

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 375

计算机毕业设计ssm基于Java web的非语言医患交流系统的设计与实现 基于SSM框架的Java Web非语言医患沟通平台开发与实践 面向Java Web的SSM架构非语言医患沟通系统设计

计算机毕业设计ssm基于Java web的非语言医患交流系统的设计与实现pl754836(配套有源码 程序 mysql数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联xi 可分享随着科技的飞速发展和互联网的普及,传统的医患沟通方式正逐渐被更高效、便捷的数字化解决方案所取代。在众多创新中,非语言医患交流系统的出现为医疗行业带来了新的曙光。这种系统通过提供非语言沟通的方式,帮助那些因为语言障碍或其他原因难以用文字或语音表达需求的患者更顺畅地与医生交流。

小新毕设 786

玩转Docker | 使用Docker部署MediaCMS内容管理系统

玩转Docker | 使用Docker部署MediaCMS内容管理系统

qq_59334230的博客 2921

计算机毕业设计ssm基于Java web的非语言医患交流系统的设计与实现 基于Java Web的非语言医患沟通平台开发与实践 非语言医患交流系统的设计与开发——基于SSM框架

计算机毕业设计ssm基于Java web的非语言医患交流系统的设计与实现pl754836(配套有源码 程序 mysql数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联xi 可分享在当今社会,随着医疗需求的不断增长和互联网技术的飞速发展,传统的医患沟通方式面临着诸多挑战。语言障碍、时间限制和地域差异等因素常常影响医患之间的有效沟通,进而影响医疗服务的质量和效率。为了打破这些限制,基于Java Web的非语言医患交流系统应运而生。

皓霖学长毕设 794

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

编译语言、半编译语言(混合型)和非编译语言(解释型)的差异

编译语言直接转机器码运行,解释型逐行执行,半编译混合两者。

weixin_42430947的博客 1069

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java为什么可以实现跨平台 甚至语言无关性。

java语言跨平台的原因:半编译,半解释 java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。 java是先把 .java文件编译成二进制字节码的 .class文件,jvm就解释执行class文件。 因为.java文件编译后形成的.class文件是一致的 。不同的操作系统有对应不同的JVM,在各个系统对应的JVM上都可以被识别解释然后运行,所以可以实现跨平...

Hurricane_m的博客 1701

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

为什么选择学习java编程语言

Java一直都是稳居排行榜第一的语言,在未来10年Java都会是最热门的语言之一,因为Java技术具有卓越的通用性、高效性、安全性和平台移植性,它可以跨平台的应用到不同的领域,工作需求足够大。为什么选择学习java编程语言 随着社会信息的发展,Java技术已经无处不在,无论是手机软件、手机Java游戏还是电脑软件等,只要你使用到电子产品就会碰到和Java有关的东西,更多的企业正采用Java语言开发...

qf2019的博客 282

JAVA语言的性质

Java语言既是编译型语言,也是解释型语言。或者说,Java语言既不是纯粹的编译型语言,也不是纯粹的编译型语言。 Java程序的执行过程必须经过先编译、后解释两个步骤。 编译:生成一种与平台无关的字节码(.class文件),它是非可执行性的; 解释:使用Java解释器来解释执行。 Java语言不是纯粹的编译型语言:由Java语言编写的程序经过编译步骤生成的不是特定平台的机器码而是.class文件...

qq_37859040的博客 273

计算机毕设 java 东北非遗文化展示平台 SSM 框架非遗文化服务平台 Java 开发的东北非遗文化展示全流程管理系统

传统东北非遗文化展示存在传播渠道有限、信息分散、互动不足等问题,人工展示模式难以满足数字化传播需求。为搭建专业化非遗文化展示平台,开发一款集视频展示、商品销售、文章传播于一体的东北非遗文化展示平台,成为推广非遗文化的关键举措。

毕设源码嘉师哥 1681

用java语言撰写一个简单程序_01--Java语言概述与开发环境 最适合入门的Java教程...

Java程序运行机制编译型语言:使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性"翻译"成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行性程序的格式,这个转换过程称为编译CCompile)。编译生成的可执行性程序可以脱离开发环境,在特定的平台上独立运行。例如:C、C++、Objective-C、Swi位、Kotlin等高级语言都属于编译型语...

weixin_39576066的博客 144

跨平台理论杂记

跨平台理论杂记 1,JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。 而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通...

c1sdn19的专栏 137

java/php/node.js/python货运车辆非现场执法平台【2024年毕设】

本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。

kug105的博客 878

“非学勿扰”学习交流平台设计与实现

这些问题严重影响了平台的学习氛围和效果,亟需一个更加专业、高效的解决方案。本课题旨在设计和实现一个基于SpringBoot的"非学勿扰"学习交流平台,以解决上述问题,为学生提供一个纯粹、高效的学习交流环境。在实际应用方面,"非学勿扰"平台将为学生提供一个专注的学习交流空间,有助于提高学习效率,促进知识共享和协作学习。💗主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。

pingfan_yu的博客 409

基于JVM的语言正在开始流行

基于JVM的语言正在开始流行赵锟总结:这是 Reuven Lerner在去年写的一篇博文,文章主要介绍了一些新兴的基于JVM的脚本语言。结合本文可以对Bruce的博文《C++和JAVA传统中积极的一面》有一个很好的理解。译者认为:语言始终都是一门工具,软件设计最重要的东西是来自于设计者的创造性,但是随着Java语言的出现,他的半动态的特性,ClassLoader,反

phphot 1810

Springboot 河南非遗助推平台 毕业设计-附源码10071

该平台不仅将作为一个信息枢纽连接非遗保护者与爱好者,还将成为推动地方经济发展的新引擎,特别是对于依赖传统手工艺和文化表演的地方社区。长远来看,平台有望激发更多年轻人对传统文化的兴趣,为非遗的持续传承注入新的活力。总之,河南非遗助推平台是利用现代科技保护和推广非物质文化遗产的一次创新尝试,它不仅有助于保护和记录这些珍贵的文化资产,同时也为全球观众打开了一扇了解中国传统文化的大门。 关键词:SpringBoot、河南非遗助推平台

m0_57774396的博客 829
上一篇: 为什么java工程师的人才需求从未衰退?
下一篇: Java基础学习总结,几个学习的技巧
java_500
博客等级 码龄5年 12粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值