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

《Java 100 天进阶之路》第1篇:编程语言类型有哪些?我心中的TOP1编程语言,什么是Java跨平台性?

第1篇:编程语言类型有哪些?我心中的TOP1编程语言,什么是Java跨平台性?

一、核心知识点

  • 编程语言的三大类型:机器语言、汇编语言、高级语言
  • Java为什么是“一次编写,到处运行”(跨平台原理)
  • JVM(Java虚拟机)的核心作用:屏蔽操作系统差异
  • 高级语言的主要优缺点:可读性强 vs 执行效率略低

二、通俗讲解(1分钟开心学)

1. 编程语言是怎么进化来的?

  • 机器语言:计算机只认0和1。早期程序员写代码就像这样:10110000 01100001。没错,就跟你开灯关灯一样,只有两档。效率?几乎为零。
  • 汇编语言:把10110000改成MOV AL, 61h,稍微好记一点,但仍然和具体CPU型号强绑定,换个电脑就不认识。
  • 高级语言:像Java、Python,写int a = 97;,接近人类自然语言。你终于不用再背二进制了。

2. Java凭什么成为我心中的TOP1编程语言?

很多语言都能写程序,但Java做了两件大事:
第一,把**“跨平台”变成了默认能力**——你在Windows写的代码,放到Linux上不用改就能跑;
第二,企业生态极度成熟,从电商、金融、大数据到微服务,Java都是首选。
对零基础来说,Java语法规整、坑相对少、就业岗位多,是“投入产出比”最高的语言。

3. Java跨平台原理(一句话+一张图)

传统C/C++:代码 → 编译成机器码(Windows版) → 只能在Windows跑。
Java的做法:代码 → 编译成字节码(.class) → 在不同操作系统上由JVM翻译成对应机器码。

生活类比
字节码就像一本“中文说明书”,JVM就是各个国家的“翻译官”。
中国翻译官(Windows JVM)把它翻译成中文(Windows机器码)。
美国翻译官(Linux JVM)把它翻译成英文(Linux机器码)。
说明书本身不用改,只要当地有翻译官,就能看明白。

这就是“Write Once, Run Anywhere”

三、实操代码案例 + 场景说明

场景:你明天去面试,面试官让你证明Java真的能跨平台。下面这个程序就是最好的证据。

// 文件名:HelloWorld.java// 场景:在Windows上编译,然后把.class文件拿到Linux或Mac上运行publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Java跨平台测试:一次编写,到处运行");}}

验证步骤(可以自己动手试试):

  1. Windows 命令行执行:javac HelloWorld.java→ 生成HelloWorld.class
  2. 把这个.class文件发送到一台 Linux 服务器(或 Mac 电脑)
  3. 在 Linux/Mac 上执行:java HelloWorld
  4. 输出相同结果:Java跨平台测试:一次编写,到处运行

整个过程不需要修改任何代码,也不需要重新编译。这就是跨平台最直观的体验。

四、避坑要点(零基础常见错误)

错误认知后果正确理解
认为JVM本身就跨平台下载错版本,程序跑不起来JVM是C++写的,每个操作系统需要安装对应的JVM
认为.java文件直接就能跨平台运行混淆概念,面试答错字节码(.class)跨平台,源码需要先编译
以为纯Java代码一定完全等价于操作系统API调用JNI(本地接口)时可能不跨平台纯Java代码跨平台,涉及本地动态库的需要额外处理

五、面试高频考点(就业必背)

Q1:Java如何实现跨平台?

Java源码编译成统一的字节码(.class),字节码运行在JVM上。不同操作系统有各自对应的JVM,JVM负责将字节码实时翻译成本地机器码。

Q2:JVM本身跨平台吗?

不跨平台。Windows、Linux、macOS都需要下载并安装各自版本的JVM。

Q3:跨平台有什么缺点?

多了一层JVM虚拟化,执行效率比直接编译成机器码的语言(如C/C++)略低。但由于JIT(即时编译)技术的成熟,这个差距在现代Java应用中已经非常小,企业项目完全够用。

六、练习题(自学刷题 + 动手)

  1. 简答题:什么是字节码?字节码和机器码的核心区别是什么?
  2. 判断题.java文件可以直接从Windows拷贝到Linux上运行吗?(✗)
  3. 动手题:在自己的电脑上写一个Java程序,编译后把.class文件发给使用不同操作系统(比如macOS或Linux)的同学,让他尝试运行,并截图记录结果。

👉 下一篇文章预告

《配置Java环境变量》

内容简介:手把手教你下载JDK、配置JAVA_HOME和Path,验证安装成功。

💡 学完这篇,你将不再害怕“java不是内部或外部命令”的报错,并且能在任意目录下运行Java程序。

📌《Java 100 天进阶之路 | 从入门到上岗就业》每天一篇,建议收藏 + 关注,一起100天拿offer!
👉 点击关注我,更新后第一时间收到推送!

http://www.jsqmd.com/news/794357/

相关文章:

  • JDBC实现数据库增删改查
  • Cursor智能体开发:Agent 模式
  • 把边界立起来,理解 ABAP Cloud 的几根主梁
  • LangChain详解
  • SpringBoot的服装商城系统毕设源码
  • Unity路网建模踩坑实录:OpenDRIVE解析中那些“反直觉”的几何参数(hdg, curvature到底怎么算?)
  • 渗透测试技巧(七)| 系统提权
  • 从 CDS 到服务契约,读懂 ABAP Cloud 的 Model-Driven Architecture
  • openwrt--by--myself
  • PyTorch 为什么现在要把 `Helion` 推到台前:它不是“又一个 Triton 替代品”,真正稀缺的是可移植 kernel authoring 这层
  • Java 开发问题:ArrayList 容量误解导致越界
  • 别再瞎学 C 语言了!真・胎教级入门教程 | NO.3 万字详解分支与循环 | 下篇
  • 从混淆矩阵到mIOU:手把手解析语义分割核心评价指标
  • Unity RenderTexture进阶:从刮刮乐到可擦写3D表面(Shader与LineRenderer实战)
  • 离线式SMPS输入整流器设计与优化指南
  • web项目工程搭建、Result封装类、部门功能的增删改查和日志技术Logback
  • ImageGlass深度解析:打造Windows平台高效图像浏览的实战指南
  • DISTINCT 带 WHERE 仍全表扫描?两层优化刀法拆解
  • 鸿蒙与 H5 通信使用的方法及原理
  • 如何彻底解决显卡驱动残留问题?Display Driver Uninstaller深度解析指南
  • 英伟达400亿投资帝国:从卖芯片到控生态,黄仁勋的AI全链路野心
  • PCI、PCIe与InfiniBand接口技术对比与应用解析
  • 百度网盘直链解析技术深度解析:突破限速壁垒的工程实践
  • 【测试方案_100 BASE-T1】快速掌握100BASE-T1 PMA物理层一致性测试
  • MySQL索引失效
  • MCP协议实战:outx-mcp-server如何安全扩展AI工具调用能力
  • 基于 Harmony6.0 的城市空气质量监测页面开发实践:ArkUI 页面构建与跨端能力深度解析
  • PX4 Firmware V1.14.4 开源支持
  • Claude代码自动模式:跳过权限的更安全方式 Claude Code auto mode: a safer way to skip permissions —— Anthropic
  • 量子去极化信道与3槽序列纯化策略解析