温故一下,说不定有你遗忘了的(一)

前言

很多基础性的原理等等什么的,不在赘述,网上很多相关内容,这里仅仅是总结性并且很快能看完的结论.


java中==和equals和hashCode的区别

  • ==是对内存地址的比较,对比两个变量是否相同, Object默认的equals方法,是对比对象的地址,和==的结果是相同的的.但是在很多Obj的子类上面,很多都是覆写了equals方法的,比如String 不再是对比地址,而且对比具体的值.其他类,在没有覆写equals的话,使用的是obj的equals方法,直接对比复合数据类型的地址.
  • hashcode 会有一个大前提, 因为hashcode生成的是一个离散的数字,会有重复的概率,会首先得到两个结论
    (1)如果两个复合数据类型调用equals相同,那么生成的hashcode码是一定相同的.(2)如果两个复合数据类型调用equals不同,那个生成的hashcode码不一定相同.
  • 在Java具体中使用,体现在HashMap上面, HashMap在放入数据的时候首先会匹配hashcode,如果已经不存在相同的hashcode则直接放入,如果有相同的hashcode,会再去匹配的equals方法,如果不相同则放入其中,否则就不放入其中.同样,在get的时候会根据key.hashCode()算出数组下标,然后再看equels如果相同,就找到目标了,具体更多的HashMap数据存取的细节,就不在这里赘述了.

int与integer的区别

  • int 是基本数据类型
  • integer是对int的装箱
  • integer的默认值是null,int的默认值是0
  • integer实际是对int的引用,当new 一个Integer对象的时候 实际是生成一个指针 指向此对象,而int则是直接储存对象.

谈谈对java多态的理解

  • 首先,多态存在的几个必要条件
    (1).要有继承 (2).要有重写 (3).父类引用指向子类引用
  • 实际使用场景
    例如同样的父类引用,调用方法A,但是在不同的场景,执行不同的动作,例如同样的F1按键,在主界面是帮助,在聊天界面是头像,在设置界面是关于软件.
  • 多态的好处
    可替换,可扩展,接口性,灵活,简化.

String、StringBuffer、StringBuilder区别

  • 首先从速度上面来说:StringBuilder->StringBuffer->String
  • 其次StringBuffer对比StringBuilder来说StringBuffer是线程安全
    ,里面很多方法是Synchronized
  • 那StringBuilder的原理又是怎么样的?StringBuilder内部有一个字符数组,每次组装, 如果容量不够,就扩大容量,然后往里面添加字符,组装出想要的字符串.
  • 最后来说这个String,这个要分jdk版本来说,在1.5以前,String的拼接,其实每次都是创建一个新的String对象来处理的,但是在1.5以后,每次+的时候,创建的是StringBuilder去append的,这也是为什么直接使用加号组装字符串速度最慢的原因

继续更新中...

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 熟练掌握java是很关键的,大公司不仅仅要求你会使用几个api,更多的是要你熟悉源码实现原理,甚至要你知道有哪些不...
    勤息嘻嘻嘻阅读 543评论 0 3
  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 855评论 1 6
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,142评论 0 62
  • 时间,像一条路 不断地向后 远方的山脉和远去的树林 都成了风景 唯有眼前的景色 模糊略过 这命运的汽车 载着我在人...
    黎埠阅读 118评论 0 1
  • 我是清儿,每天一篇文章的。第30天第27篇。谢谢你花时间看我的文章。 最近育儿感悟越来越多~同时自己也越做越好,娃...
    Q清儿阅读 238评论 0 0