Java帝国之风云再起

编程语言江湖风云:你钟爱哪门武功? 在编程的江湖中,编程语言如同各派武功,各具特色、各有所长。从入门小白到资深架构师,每个人心中都有自己偏爱的那一款。今天,我们就来聊聊这些编程语言的江湖地位,也想听听你的选择——你最喜欢的编程语言是哪一种呢? 阅读详情

IO大臣这些年来和线程大臣斗,和XML大臣争,和JDBC大臣抢,发现争来争去、抢来抢去不过是皇上的棋子而已,实在是没什么意思。

他心灰意冷,称病告假,赋闲在家。

如今在家里养养花草,养养小动物,也挺悠闲的。

这一日IO大臣正在拾掇一个名贵的盆景,下人通报有乡下亲戚来访。 IO大臣心想估计又是哪个八竿子打不着的亲戚来借钱了,送几两银子打发了算了。 

可是下人说来者是一个小伙子,仪表堂堂,衣帽干净,不是一个穷光蛋,转念一想,反正闲着没事,了解下民间疾苦还是不错滴嘛! 于是吩咐让他在书房召见。

小伙子一见到IO大臣,立刻迎上前去行礼,自报家门说:“大人,小人名叫李忠,也是您老老家XXXX地方的人,大人为Java帝国建了这么多的功业,功勋卓著,家乡人都以大人您为荣啊,已经打算为您立一个石碑了!”

IO大臣微微点头,马屁拍得太多了,都没有感觉了,看到桌子上不菲的礼品,心想还是切入正题吧。

“小李,此次来京城有何贵干?”

小李说:“小的不才,只考中了秀才,一直在老家靠写Java程序为生,最近小人打算写一个MVC的框架,方便家乡的人开发Web程序,但是发现Java中缺失了一个重要的功能,进行不下去了!”

能写框架 ? 看来这位秀才有两把刷子。

“缺了什么功能啊?” 

“大人,我们家乡的人在写Web程序的时候,经常需要把一个URL和一个Java类/方法关联起来,比如http://localhost:8080/hello, 对于/hello这个URI,大家希望由HelloWorld这个Java类来执行,对于http://localhost:8080/add, 大家希望由Calculator这个类的add()方法来执行。” 说完小李抬头看了一眼。

IO大臣点头表示理解。

“为了实现这样的功能,我们得写不少重复的代码,小人就想,要不我写个简单的MVC框架,把HTTP请求封装起来,通过配置文件的方式让大家把一个URL和Java类关联起来,这样就省了好多事情了。比如像下面这样”

0?wx_fmt=jpeg

0?wx_fmt=jpeg

IO大臣也是经历过大风大浪的老手,他马上就明白了,这是一个不错的办法啊,当你在浏览器中输入http://xxxxxx/add?num1=10&num2=20的时候, 这个框架就可以把HTTP请求封装起来,然后读取这个XML的配置文件(哼,该死的XML老头儿), 就知道由Calculator这个类来处理,可以new 出来一个Calculator的对象,调用add方法即可,嗯,还需要想办法把num1,num2这样的参数给传入进来,最好也弄点配置....  IO大臣越想越深入。

“大人?” 小李看到IO大臣入神了,轻声提醒。 

“哦......”,IO大臣从沉思中惊醒, “后生可畏啊,小李子,你这个想法非常不错,你刚才说Java缺少了一个什么重要功能来着?”

“是这样的,大人,我们不是要读取这个XML配置文件,然后去创建那个Calculator类的对象吗?”

“你直接new出来不就行了吗?”

“大人请注意,我的框架想创建这个类的实例是在运行时,不是在编译时,我只知道类的名字,这只是一个字符串,没法new啊!”

IO大臣立刻明白了,小李子的MVC框架是事先写好的,事先并不知道用户要创建一个Calculator对象,还是一个HelloWorld对象,他只知道一个字符串的类名,没法创建类的实例出来。

即使创建出这个Calculator对象,还需要从执行相关的方法,但是MVC框架只知道方法名称,这也是个字符串("add"),怎么去执行啊?

“那你怎么不向当地的官府反映下? ”

“这个......”

“有话直说!”

“现在大人您不怎么上朝,在家修身养性,可能不知道朝中局势大变,我们家族的人,只要是和大人您有点关联,都会受到打压,我去官府反映了,可是被一顿棍棒给打了出来啊。”

IO大臣勃然大怒,这还了得,老夫这才休息了多久?就被人欺负成这个样子!

冷静下来一想,不怪别人,还是自己疏忽了。

他叫来幕僚InputReader,支开无关闲杂人等(上次的间谍事件让人心有余悸)。

InputReader了解了情况,沉思片刻说:

“概括起来有这么几层意思:

1.要能通过一个类的名称(字符串)来创建对象;

2.根据方法名称(字符串)来执行方法;

3.还应该通过一个类的名称来查看这个类有哪些字段,哪些方法。

所有的这些都应该发生在运行时, 这种能力确实是我们帝国所欠缺的。”

小李听到InputReader的总结,心里非常佩服。

IO大臣说:“这其实就是程序在运行时检视自己或他人的一个能力啊! 我们叫他反射(Reflection)怎么样? 对了,Python王国,Ruby王国有这样得东西吗?” 

IO大臣这么问,其实也是为了增加一个砝码,人家有的东西,我们Java也要有。

“他们都是动态语言,在运行时给一个对象添加方法、修改方法都不在话下,更不用说反射了!” InputReader说道。 

“那就这样,明日早朝,我给皇上上一个奏章。争取把这个反射给实现了!”

InputReader 看到一直以来精神萎靡的IO大臣精神抖擞,准备再战,自己的升官梦又死灰复燃,激动万分:“大人,我来起草奏章吧。”

IO大臣说:“嗯,你一定要把反射的API给定义好。”

“遵命!”

到了晚上,InputReader拿出了一个初步的版本:

0?wx_fmt=jpeg

三人一直研究到半夜,又增加了很多新的内容,例如获取接口、获取父类..... 总而言之,几乎所有的信息都可以通过反射来得到。

第二天早朝,IO大臣在XML大臣,线程大臣,JDBC大臣狐疑的目光中走入了大殿,心说这老头儿怎么又开始活跃起来了呢?

IO大臣向死对头们不屑地瞥了一眼,便开始向皇上慷慨陈词,陈诉反射的种种好处,顺便向皇上大倒苦水,添油加醋地说自己家族的人被欺凌的经历,还不失时机地表达了老骥伏枥志在千里,还能再效忠陛下的决心。

皇上听到IO大臣的遭遇,大为同情,差点就被说动了,但转念一想,朝中各个大臣的均势已经维持了一段时间,如果IO大臣东山再起,平衡势必要被打破。

他狠了狠心,说道:“爱卿年事已高,就不要再折腾了,朝中任务繁忙,万一有点闪失朕也无法向天下交代啊,还是在家中颐养天年吧!”

IO大臣心里一阵悲苦, 完了,彻底完了,不过无论如何我得留一个后手,他说道:“陛下,这个反射的功能对框架而言意义重大,Java帝国想繁荣昌盛,也离不开各种总各样框架的支持,另外别的王国都有这个功能,陛下不可不察。臣手下的InputReader,深谋远虑,可以承担此等重任。”

别的王国也有这个功能!皇上彻底被打动,看到IO大臣悲催的脸色,也有些于心不忍,他说道:“准奏,由InputReader任Reflection大臣!”

IO大臣心中一阵宽慰,他的的那些死敌们本来想反对,但是对这个所谓的反射确实不了解,只能听之任之了。

三个月后,Java Reflection正式推出,可以在运行时对一个类进行各种操作:查看字段/方法,设置字段/方法的权限,创建对象,调用指定的方法。所有这些,都可以通过“名称”来进行。

Java Reflection是JDK中一项非常基础、非常重要的技术,臣民们大为喜欢,利用它实现了各种各样的框架,如Spring,Hibernate, Struts,Java帝国空前繁荣。

ps:Java帝国系列已经写了很多,Java SE的主要知识点已经覆盖,关于Java,还想听的知识点?欢迎给我留言!

推荐阅读:

Java:一个帝国的诞生

我是一个Java Class

持久化:Java帝国反击战

Java帝国之消息队列

Java帝国之动态代理

Java注解是怎么成功上位的

Java帝国之泛型

JDBC的诞生

JSP:一个装配工的没落

(完)

你看到的只是冰山一角, 更多精彩文章,请移步《2016文章精华》或者《2017文章精华》


码农翻身

用故事讲述技术

0.jpeg

JavaWeb学生成绩管理系统毕设实战:从环境搭建到二次开发避坑指南 JSP、Servlet与JDBC是JavaWeb开发的经典技术组合,理解其MVC分层原理与数据库连接机制,是掌握企业级Web应用的基础。在实际工程中,环境配置、编码链路与连接池优化直接影响系统稳定性与性能。学生成绩管理系统作为典型应用场景,涵盖多角色权限、成绩统计与考勤管理,适合作为毕设项目或实战练习。本文围绕一套可直接运行的JavaWeb源码,梳理从Tomcat部署、MySQL导入到Filter统一编码与Druid连接池改造的完整路径,并给出高频问题排查清单,帮助开发者快速跑通项目并完成二次开发。 阅读详情

相关推荐

旋翼无人机目标检测实战:YOLO训练、小目标优化与部署避坑

目标检测是计算机视觉的核心任务之一,深度学习模型的快速发展让实时检测成为可能。YOLO系列算法凭借速度与精度的平衡,成为工程落地的首选框架。在低空安防、电力巡检等场景中,小型旋翼无人机检测面临目标小、速度快、背景复杂等挑战,对数据质量与模型调优提出更高要求。本文从无人机数据集的结构与标注校验切入,讲解基于Ultralytics YOLO的训练配置,针对小目标检测的瓶颈提出分辨率调整、IoU阈值优化与NWD损失改进等策略,并总结训练过程中的典型陷阱。最后介绍置信度校准与热力图验证方法,帮助读者判断模型是否真正

weixin_34343000的博客 354

《码农翻身》之Java帝国

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/a724888/article/details/81321455 这位大侠,这是我的公众号:程序员江湖。 分享程序员面试与技术的那些事。 干货...

weixin_34404393的博客 374

Java手机游戏--帝国时代.jar

Java手机游戏--帝国时代.jar Java手机游戏--帝国时代.jar Java手机游戏--帝国时代.jar Java手机游戏--帝国时代.jar

Java帝国之安全争斗

1前言在Java帝国第三代国王的推动下,帝国对臣民们提供了一个叫做Java 认证与授权服务(Java Authentication Authorization Servi...

码农翻身 388

保姆级教程:用AI辅助反编译Python3.9+的EXE文件(兼容新版pycdc工具)

本文详细介绍了如何利用AI技术辅助反编译Python 3.9+的EXE文件,解决传统工具如uncompyle6无法处理新版字节码的问题。通过pycdc工具和AI大模型的结合,开发者可以高效还原代码逻辑,并提供了从EXE解包到字节码解析的完整流程,适用于逆向工程和代码分析场景。

hill8的博客 1224

别再折腾老教程了!树莓派4B/5最新系统(Raspberry Pi OS Bookworm)红外遥控配置,用gpio-ir驱动一次成功

本文详细介绍了树莓派4B/5在最新Raspberry Pi OS Bookworm系统下配置红外遥控的完整指南,摒弃过时的lirc-rpi驱动,采用现代gpio-ir驱动方案。从硬件连接到软件配置,提供10分钟快速上手指南,涵盖驱动加载、信号测试、按键映射及高级应用场景,帮助用户高效完成红外遥控配置。

weixin_42520909的博客 442

码农翻身之大话编程篇:4 Java——一个帝国的诞生

                        第一章    C语言帝国的统治        现在是公元1995年,C语言帝国已经通知了我们20多年,实在是太久了。1972年,随着C语言的诞生和UNIX的问世,帝国迅速建立通知,从北美到欧洲,从欧洲到亚洲,无数程序员臣服在他脚下。        帝国给我们提供了极好的福利:贴近硬件,运行几块,效率极高。使用这些福利,程序员们使用C开发出了很多系统级...

希望变强的小菜鸟的博客 570

手把手教你解决Keil5安装时xerces-c_3_0.dll缺失和0xc000007b报错(附文件下载与路径设置)

本文详细解析了Keil5安装过程中常见的xerces-c_3_0.dll缺失和0xc000007b报错问题,提供了从文件获取、路径设置到系统配置的完整解决方案。同时,文章还涵盖了STM32开发环境的搭建技巧和最佳实践,帮助开发者快速构建稳定的嵌入式开发环境。

weixin_29164497的博客 600

spring风云再起(spring家族)

Spring 、Spring Boot 和 Spring Cloud 的关系 Spring 最初最核心的两大核心功能 Spring IoC 和 Spring AOP 成就了 Spring,Spring 在这两大核心的功能上不断的发展,才有了 Spring 事务、Spring MVC 等一系列伟大的产品,最终成就了 Spring 帝国,到了后期 Spring 几乎可以解决企业开发中的所有问题。 Sp...

纵横的博客 198

手把手教你用GNU Radio和PlutoSDR搭建FM收音机(附完整流程图)

本文提供了一份详细的实践指南,教你如何使用GNU Radio和PlutoSDR搭建一个功能完整的FM收音机。从软硬件环境准备、核心流程图构建,到运行调试与效果优化,手把手带你完成从射频信号接收、下变频、FM解调到音频输出的全过程,是入门软件定义无线电(SDR)的绝佳实践项目。

weixin_29189377的博客 750

Springboot信息泄露以及heapdump的利用

努力是为了不平庸~安全有些时候是枯燥的,这一次,让我们先人一步,趣学渗透!

LiBai'S BLOG 3万+

Java 江湖风云录:10 位改变世界的代码大神与他们的传奇趣事

这些大神并非生来就是神。James Gosling 也曾为命名头疼,Rod Johnson 也曾是个音乐学家,梁飞也曾独自面对空白的编辑器。伟大的代码往往源于对现状的不满和对美好的执着。下次当你写下时,不妨想想这些名字。也许,下一个改变世界的 Java 故事,就由你来书写。你最喜欢的 Java 大神是谁?或者你在开发中遇到过哪些有趣的 Bug?欢迎在评论区留言分享!

lipansfj的博客 695

交通仿真软件:SUMO_(13).Python脚本与TraCI接口

通过TraCI接口,用户可以实现与SUMO仿真器的实时交互,获取和控制交通数据。本文档详细介绍了如何使用Python脚本与TraCI接口进行交互,包括基本的设置、数据获取和控制方法。此外,还展示了几个高级应用示例,如交通流优化、多代理系统、车辆路径规划和车辆行为模拟。这些示例可以帮助用户更好地理解如何利用TraCI接口进行复杂的交通仿真和分析。希望这些内容对您有所帮助,如果您有任何问题或需要进一步的帮助,请参考SUMO的官方文档或社区支持。

kkchenjj的博客 997

Java日志江湖风云录:那些年我们追过的日志框架

在Java诞生初期,程序员们过着"刀耕火种"的生活,所有日志都要靠System.out.println()手工雕刻在控制台石碑上。眼看Apache门派日渐壮大,Java皇族Sun公司坐不住了:"我堂堂官方,岂能没有自己的日志体系!1996年,欧洲安全电子市场项目组的Ceki Gülcü大侠,在调试代码时突然顿悟:"总用System.out太low了,我要打造一把绝世宝剑!Apache门派见江湖纷争不断,2002年又派出一位和事佬——JCL(Jakarta Commons Logging)。

飞行的Z 736

Unity音游开发全指南:模板与免费资源高效构建节奏游戏

**粒子特效** | [Universal VFX](https://assetstore.unity.com/packages/vfx/particles/universal-vfx-159182) | 免费视觉特效 || **UI素材** | [Game UI Pack](https://assetstore.unity.com/packages/2d/gui/game-ui-pack-86908) | 现代风格UI元素 |**音游开发的黄金法则**:完美的节奏游戏是音乐与游戏的和谐统一。

Loving_enjoy的博客 728

Vue3 - 超详细最新 wangEditor V5 富文本编辑器安装引入及使用教程,提供工具栏配置、基础富文本功能、API使用示例教程等(新手小白快速引入并植入到项目中)

vue3,wangEditorv5富文本编辑器,wangEditorv5官方文档,vue3最新安装wangEditorv5富文本详细使用教程,vue3使用wangEditorv5编辑器示例代码,vue3网站网页安装植入富文本编辑器教程,vue3wangEditor使用api,vue3安装富文本控制台出现报错如何解决,vue3wangEditor-v5工具栏配置,vue3中使用富文本编译器wangEditor5的方法,wangeditor5在vue3中的全使用过程,vue3超详细最新wangedi

🏆 前端领域优质创作者 4253

老王家的 “继承” 风云:Java 里的那些 “子承父业” 的事儿

摘要:本文通过老王家父子传承的故事,生动讲解Java继承的核心概念。儿子小王通过extends关键字自动继承父亲老王的属性和方法(如喝豆浆、戴眼镜),这体现了继承的基本特性。子类可以重写父类方法(如改用冰豆浆配汉堡),但需遵循方法签名一致的原则。文章还揭示了继承的注意事项:private成员不可继承、重写方法权限不能更严格、必须符合"is-a"关系、构造方法需调用父类构造器等。这些规则就像家族规矩,既保持传统又允许创新,最终形成完整的继承体系。

qq_57076730的博客 773

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

HTML5风云录(1)

接触一点互联网或智能手机技术方面的,几乎都会听过HTML5的鼎鼎大名,而且它也是智能手机的网页规范,主流的手机都支持HTML5。 HTML5自诞生之初,就是一个争议颇多的“产品”,为什么要引号的产品呢,因为它其实并不是一个产品,而是一个标准和规范,就像符合国际标准ISO 90xx那样,HTML5是产品生产的一个流程和技术规范,按照这个规范实现的一般称为HTML...

weixin_34166847的博客 95

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

你还记得当年上课天天玩 JAVA游戏吗

  回头再玩玩以前的游戏,发现意外的好玩唉,这三个我玩了好多次,我个人觉得当年的JAVA游戏中,有些RPG游戏比某些国产大IP的RPG游戏还要好玩,当年那种手机出很多Java 大作, 包括红警也有, 七夜、帝国时代也有。还有傲剑江湖 风云 战国秦殇、口袋神兽三国志,三国猛将系列,刺客骨肉分离,无情剑,宠物王国......名词解释:  Java技术的开放性、安全性和庞大的社...

buqi_2015的博客 358

1.1 新倚天屠龙之Java传-- 穿越java世界成了张无忌?

Neo是一个大三生,初学Java,深夜发现自己穿越到电脑Java世界的《倚天屠龙传》位面,成为了冰火岛时期的张无忌,看他怎么在倚天屠龙Java世界中一步步成长,叱咤风云

as4566的博客 424

C#和Java,王者争锋

C#.NET,微软全力基于.NET平台打造的号称更好的C++,或者叫C++ ++,而Java,则是目前的企业平台开发商的霸主,曾经被他的设计人员比喻为C++ --,即比C++要简单一些。二者都是脱胎于C++,都是完全的纯粹的面向对象的变成语言。在很多的设计理念上,也极为类似。Java由于出现的比较早,到目前已经有10多年的历史,先入为主,已经占据了统治地位,取得了有力地形,在现在的竞争中也

556

这个周末我好累

0.硕士老婆周六又逃课了,马上要考试了都不去复习(顺便那啥一下考子们,你们懂的),唉...事实上从学校出来以后,你将面对更多的考试!1.但是不管哪里的考试,我都不参加!2.觉得《完美回忆》结局不好,纯粹是导演开后门儿...3.只要按我的想法继续《完美回忆》,一定比《黑客帝国》还成功!我一直坚信,好的电影没有第二部且不超过三小时(一个成年人酝酿一脬屎的最短时间,当然,不算拉肚子)!4.Linux内核

TCP/IP 4764

除了您提到的《黑客帝国》、《社交网络》和《源代码》,还有几部与计算机和编程相关的电影值得一看

这些电影不仅展示了计算机科学的魅力,还让我们思考科技与人性的关系。在观看这些电影的过程中,我们不仅可以感受到科技的快速发展,还可以深入了解计算机科学背后的故事和挑战。观看这些电影,仿佛是一场精彩的编程盛宴,让我们在享受剧情的同时,也能思考科技对社会和人类的影响。在观赏过程中,我们不仅能够享受精彩的剧情和视觉效果,还能够拓宽思维视野,更全面地理解计算机科学的发展及其对人类社会的深远影响。此外,《她》(Her)也是一部与人工智能有关的电影,它从人性角度出发,展现了人与智能科技之间复杂而微妙的关系。

博客域名:borter.blog.youkuaiyun.com 646

2019燕山大学程序设计新生赛(二)

2019燕山大学程序设计新生赛(二)绝地武士参考代码绝地武士参考代码谍战风云参考代码 绝地武士 天赋异禀的绝地武士安纳金·天行者受西斯大帝达斯·西迪厄斯蛊惑,堕入原力黑暗面,随后被派去绝地圣殿进行大清洗。同时西迪厄斯向克隆人军队发出第 66 号命令:杀掉所有绝地武士。克隆人军队的制度,是每支部队由一名绝地武士指挥官率领。于是,许多冲锋在第一线,与独立星系邦联作战正酣的绝地武士,毫无征兆地就被身边下...

antRain的博客 630

《码农翻身》17-18年精华文章

原文链接 计算机基础我是一个线程TCP/IP 之 大明邮差TCP/IP 之 大明内阁TCP/IP 之 蓟辽督师CPU 阿甘CPU 阿甘之烦恼我是一个网卡我是一个路由器我是一个进程我是一块硬盘(上)我是一块硬盘(下)我是一个键盘张大胖的socket张大胖学递归操作系统是个大骗子?编程世界的那把锁加锁还是不加锁,这是...

lovego123的博客 1278
上一篇: 作为你的第一门语言,初学Java时是什么感受?
下一篇: 黑客三兄弟(续)
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值