java 基础随笔

 用java 也有3年多,但总觉得用的不是那么熟练,会的不知道原理,不会的仍是不会。所以为了不让忘的快,就把自己的一些体会记在这儿了

  1.String、StringBuffer、StringBuilder的区别

  类 继承性       线程安全性拼接效率应用场景 
Stringfinal不安全+,concat每次生成一个新实例,但concat并不比append慢(可能是测试场景不对,或未理解原理),但+比append慢得多字符串常量,小量拼接
StringBuilderfinal不安全append 比StringBuffer的append快,没有加锁的影响局部变量, 大量拼接,非多线程环境
StringBufferfinal安全append比String 的+快,但并不比String 的concat方法快 大量拼接,多线程环境

  2.equals、==、hashCode

    其实==不应该放到一起比较,因为它是一种运算符,而equals、hashCode是方法。但是由于equals与==总被纠缠在一起,也就比较一下了

对比项说明互推性重载场景
==比较两个对象的引用或基本类型的值两对象==,则hashCode一定相等 
equals根据具体子类重载的情况而定,在Ojbect根类中,默认是比较对象的引用是否相等, 在String中是先比较引用,若不相等再比较值(重载过)两对象equals,则hashCode一定相等集合类
hashCode取对象的某一部,经运算后得到的一个int值,并不一定是正数

两对象hashCode相等,不能推出==,或equals;

但hashCode不相等,则equals一定不相等

集合类

   3.override,overloade

   先copy一个测试题放在上面,如果能做对,估计也理解了两者的区别了,下面的也就不用再看了

    1) class Super{ 
    2) public float getNum(){return 3.0f;} 
    3) } 
    4) 
    5) public class Sub extends Super{ 
    6) 
    7) } 
   下面哪条语句放在第6行将出现编译报错? 
     A. public float getNum(){return 4.0f;} 
     B. public void getNum(){} 
     C. public void getNum(double d){} 
     D. public double getNum(float d){return 4.0d;} 

     下面的对比是网上借鉴的

对比项含义参数是否相同返回值存在位置
override重写,一个类中有多个同名函数,但至少参数顺序,参数类型或返回值三者中有一个不同参数类型或个数或顺序至少有一项不同可不同同一个类中,或父类中
overload重载,子类覆盖父类的同名实例方法(static方法无法覆盖)与父类完全相同相同  本类中,从父类继承而来

    4.I/O

    这块就只会些基本的的,网上讲的很多,我也就放几个地址了

  

      对于更深入的了解,可以参阅以下地址

      http://blog.youkuaiyun.com/historyasamirror/article/details/4270633

      http://19880512.blog.51cto.com/936364/381722

      http://blog.youkuaiyun.com/kexin_bo/article/details/6925351 

   5.java.util.*

   java.util应该是我们平时用得最多的包了,当然util包下同还有子包,里面的东西太多了。但最重要的应该是java.util.concurent.*包下面的内容中,里面包含了java并发方面的精髓。其中的ConcurrentHashMap,AbstractQueuedSynchronizer两个类应该很值得学习研究了。

   跟I/O一样吧,先放张图,再放几个地址了

  

       更深入的学习请参考以下地址:

      http://www.goldendoc.org/category/juc/

      http://www.khotyn.com/2011/06/12/juc_aqs/

  可能是最近有些不知道干什么了,竞写了这篇博客。

  

转载于:https://www.cnblogs.com/every/archive/2013/03/28/2986603.html

内容概要:本文系统介绍了算术优化算法(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、付费专栏及课程。

余额充值