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

HoRain云--Java Applet

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

一、Applet 是什么,跟普通 Java 程序的区别

二、生命周期(面试高频)

三、怎么跑(当年 vs 现在)

四、为什么死得这么彻底

五、时间线速记(面试能背)

六、现在怎么办


Java Applet 是1996 年 JDK 1.0 就跟 Java 一起出生的老伙计,定位是"嵌在网页里跑的 Java 小程序",当年用来给静态 HTML 加交互动画、图表、小游戏。但它已经被三方联手淘汰——浏览器砍 NPAPI、JDK 9 弃用、JDK 17 标记 removal、JDK 24 关掉支撑它的 Security Manager、JDK 26(2026 年 3 月)java.applet包彻底移除。现在属于考古范畴,但面试聊 Java 历史 / 维护 2000 年代老系统还可能撞上。


一、Applet 是什么,跟普通 Java 程序的区别

import java.applet.Applet; import java.awt.Graphics; public class HelloApplet extends Applet { @Override public void init() { System.out.println("初始化,只调一次"); } @Override public void paint(Graphics g) { g.drawString("Hello Applet", 20, 20); } }

HTML 里这么嵌(HTML5 已经不让用<applet>了,当年是<applet code="HelloApplet.class" width=300 height=200><object>):

<applet code="HelloApplet.class" width="300" height="200"> </applet>

几个关键区别:


二、生命周期(面试高频)

浏览器负责调度,五个核心方法:

用户访问含 Applet 的页面 → 类加载 → init() // 一次,初始化(读 param、建组件、加载资源) → start() // init 后调;用户切回页面也会再调(启动画/线程) → paint(Graphics g) // AWT 继承来的,绘制;重绘/ resize 都会再调 ← stop() // 用户离开页面时调,暂停动画/音乐,可反复 ← destroy() // 浏览器关闭时调一次,释放资源

记忆口诀:init → start → paint(反复) → stop → destroy

💡paint()不是 Applet 类自己的,是从java.awt.Component继承的,所以 Applet 本质是 AWT 组件,得靠 AWT 绘图模型。


三、怎么跑(当年 vs 现在)

时期

运行方式

1996–2015 黄金期

浏览器安装 JRE 插件,通过NPAPI​ 桥接 JVM,<applet>标签加载

开发调试

JDK 自带appletviewer工具,不用浏览器就能跑

2017 之后

Chrome 2015(F45)、Firefox 2016(F45) 砍掉 NPAPI → 浏览器里彻底跑不了;JDK 11 删掉appletviewer;JDK 17 起java.applet包标记@Deprecated(forRemoval=true)

现在想"跑一下"老 Applet,只能:


四、为什么死得这么彻底

不是单一原因,是结构性的三连击:

1. 浏览器端:NPAPI 被集体废弃

插件模型本身就被认为是不安全的"外来物",浏览器厂商一致想甩掉。

2. 安全端:沙箱守不住

2012–2016 年 CVE 公开80+ 个 Applet 沙箱逃逸漏洞(CVE-2013-0422、CVE-2016-0636 等),攻击者可绕过 Security Manager 执行本地代码。Oracle 自己都承认"沙箱已无法提供可信隔离"。JDK 24 干脆把 Security Manager永久禁用,Applet 最后一根支柱倒掉。

3. 性能 & 标准端:被 HTML5/JS/WASM 完爆

⚠️ 所以 Applet 不是"兼容性问题",是浏览器厂商 + 标准组织 + Oracle JDK 三方共同淘汰的技术范式。


五、时间线速记(面试能背)

年份

事件

1996

JDK 1.0,Applet 随 Java 一起出生

2015

Chrome 45 砍 NPAPI

2016

Firefox 45 砍 NPAPI

2017

JDK 9,@Deprecated(JEP 289)

2018

JDK 11,删掉appletviewer

2021

JDK 17,@Deprecated(forRemoval=true)(JEP 398)

2025

JDK 24,Security Manager 永久禁用(JEP 486)

2026.3

JDK 26,java.applet包彻底移除(JEP 504)


六、现在怎么办


如果你是在按"Java 已废弃特性"这条线刷,下一个可以聊Java Web Start (JNLP)(跟 Applet 同一拨死的,JDK 11 砍的)或者Security Manager 本身(JDK 24 刚埋掉)——都是面试里"为什么弃用 + 时间线"这套题的常客。挑一个?

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

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

相关文章:

  • 独立开发实战:学生管理+考试防作弊机制设计
  • laserMapping.cpp 中的 sync_packages() 详细讲解
  • 如何永久保存微信聊天记录:简单三步实现数据自主管理终极指南
  • 掌握专业级Windows Defender控制:高效系统安全防护管理实战指南
  • 彻底掌控你的Windows“此电脑“:MyComputerManager让顽固图标消失无踪
  • 深耕低代码5年,终于遇见打破行业桎梏的AI原生平台
  • 不受待见的钻石又火了?新娘不要英伟达为啥抢着要?
  • Obsidian插件汉化终极指南:3种模式快速实现英文插件中文化
  • GTA5终极修改器YimMenu:10分钟快速上手指南
  • 50. 怎么给OrCAD封装库添加新的属性?I Cadence Allegro 电子设计 快问快答
  • Shell的基础知识和常用命令
  • OpenClaw:AI智能体开发的高效跨平台解决方案
  • CUE: Concept-Aware Multi-Label Expansion to Mitigate Concept Confusion in Long-Tailed Learning
  • PIC32与25CSM04 SPI EEPROM高速数据检索实现
  • 5分钟解锁你的音乐宝库:qmcdump音频格式转换工具完全指南
  • 强力解锁喜马拉雅音频自由:跨平台下载神器XMly-Downloader-Qt5深度解析
  • 终极智能控制:用Turbo Boost Switcher重新掌控你的Mac性能体验
  • 蛋糕烘焙小程序|实用线上展示页面设计分享
  • Office批量打印软件推荐,告别低效操作
  • Python 语法基础 IO
  • Java非对称加密实战:RSA、DSA、ECC算法对比与选型指南
  • C++中的STL与标准库算法
  • 杭州创始人IP打造运营如何进行?
  • 通过kickstart 执行mysql、clickhouse数据导入
  • Web应用文件安全:IDOR、路径遍历与SSRF漏洞防御实战
  • 5分钟自动化部署:Brigadier跨平台Boot Camp驱动管理解决方案
  • 做网课直播还在用手比划?这两款键盘鼠标显示工具,让观众看清你的每一步操作
  • AI 电动窗帘电机智能驱动 静音化、高效率 完整选型方案
  • HoRain云--Java文档注释规范与最佳实践指南
  • 当青春记忆面临消失危机时,QZoneExport如何为你守护数字时光