Java 编程思想 研读1

本文探讨了编程语言从底层到高层的抽象过程,从基本类型、函数、循环到类、封装、继承、多态等概念,剖析了这些抽象机制如何提高开发效率并减少重复工作。

抽象


所谓的高级,就是不断抽象的结果。

汇编对机器码进行抽象,C 语言对汇编抽象,Java 站在了 C++  的肩膀上。

凡事都有两面,抽象后效率会降低,但弊端远不及抽象来的好处。

(事物的发展总是一步步循序渐进的,因为人的脑力有限,无法一次性发展到极端。)



语言


我学过的语言只有 C++ 和 Java,就根据这个两个语言的认识来谈谈语言。


首先,是基本类型。

计算机的初衷是计算,通过 "0110" 的方式 的把不同基本类型的数据映射到硬盘上,实现了保存数据的功能。

然后有了计算的功能,这应该和寄存器有关,我不是学底层的。


再则,是函数。

当重复的代码块出现了很多次以后,当人们厌倦了复制粘贴的复用方式后,

某个先驱者发明了函数,把重复的代码块抽象为一个函数。

慢慢的,有了带参数的函数,函数重载等等。


循环语句

当人们厌倦了,func(); func(); func(); func(); func();  的写法。


结构体

当人们因为变量太多,难以掌控而头痛时。

就将一些类型绑定在一起,更方便来描述某种东西。

(至始至终,目标没有变,让人脑更省力。)


当人们写了成千上万的函数,发现实在是难以管理。

有些函数明明是专给某个结构体使用的,为什么不绑定起来呢。


语言慢慢发展,类的静态属性,静态方法等都按着某种顺序出现了。

(看到某个东西,觉得很不不可思议时,应该是省略了过程直接看到结果吧,就像魔术。)



封装


当类有 private,封装出现了,封装意味着边界,意味着黑盒。

这就和使用第三方类库时一个概念,会用而不懂实现。

与其对应的是开源,不隐藏内部实现,可以任意修改。



继承


继承意味着一种规则,子类必须按基类制定的一些规则来实现自身。

这也是一种抽象。抽象分离出共性,而子类保留各自的个性。


细度


在编程,还有个概念很重要,细度,即不要出现任何重复的部分。

函数越短越好,只干某一件事,分割到不能再被分割为更小的函数为止。

继承一方面也是为了彻底的分离。



多态


广义上的多态有很多,比如一段 "0101" 根据类型的不同可以被解释为 int 或者是 double。

但更一般的来说,多态是指父类引用不同子类(或自身)实例,调用同一函数造成的不同行为。



引用

Java 中叫引用,实质是指针。

"0101" 只是硬盘上一堆无意义的数据,如何变成千奇百怪的对象实例呢?

答案就是引用,通过引用的类型,编译器知道了如何来解释这段 "0101"。

通过引用,知道了类的模型,知道了类的函数存在何处。

上面的多态,就是同一 "0101" 被不同类型指针引用的结果。



泛型


当一个求和的方法,面对 int double 类型的参数时,函数重载出现了,这也是一种抽象。

当一个类需要面对不同类型时,泛型就出现了。



GC


垃圾回收机制,在 Java 的书里自然是说 GC 多好多好。

但C++ 给我的感觉更安心,自己写了构造函数,为什么不写析构函数,而搞得虎头蛇尾的。



异常


我没感觉异常有什么好的,什么健壮性,用 catch 把本该抛出的错误隐藏掉叫健壮吗?

因为异常机制,我不得写无意义的 try catch 才是费时费力的。



跨平台


Java 最大的特点还是跨平台,重要的是连带效应。

一个款应用开发后,可以在不同平台下运行,用户使用起来没有任何困难。

既然一直在提抽象,实现了如此巨大抽象的 Java 不是很棒吗?

Java 是一种平台。

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值