随笔 - 607,  文章 - 173,  评论 - 2,  阅读 - 21万

1.1        equals和==的区别

equals()方法用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断;
"==" 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象
 
1.2    String和stringbuffer和stringbuilder的区别
String是一组不可变的unicode编码的字符序列;
StringBuffer的长度是可变的,如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法;线程安全;
StringBuilder是从 JDK 5开始,为StringBuffer该类补充了一个单个线程使用的等价类;通常应该优先使用 StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
 
 
1.3        linkdlist和arraylist的区别
 
相同点:
  都实现了List接口和Collection;
不同点:
  1、ArrayList是基于数组实现的;LinkedList是基于链表实现的;
  2、ArrayList随机查询速度快;LinkedList插入和删除速度快;
原理解析:
  ArrayList是基于数组实现的,他的特性就是可以使用索引来提升查询效率;插入和删除数组中某个元素,会导致其后面的元素需要重新调整索引,产生一定的性能消耗;
  LinkedList是基于链表实现的,没有索引,所以查询效率不高,但是插入和删除效率却很高;为什么呢?因为链表里插入或删除某个元素,只需要调整前后元素的引用即可;
 
 
1.4    sql的执行顺序
SQL逻辑查询语句执行顺序
# 执行FROM语句   先确定从哪个表中取数据,所以最先执行from table
# 执行ON过滤
# 执行WHERE过滤
# 执行GROUP BY分组
# 执行HAVING过滤
# SELECT列表
# 执行DISTINCT子句
# 执行ORDER BY子句
 
 
1.5    为什么要建索引及建索引的原则
首先索引存在的目的是让你快速检索到你想要的数据
首先明白为什么索引会增加速度,DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度。
数据库简历索引的原则:
  1. 为经常出现在关键字order by、group by、distinct后面的字段,建立索引。
  2. 在union等集合操作的结果集字段上,建立索引。其建立索引的目的同上。
  3. 为经常用作查询选择的字段,建立索引。
  4. 在经常用作表连接的属性上,建立索引。
  5. 考虑使用索引覆盖。对数据很少被更新的表,如果用户经常只查询其中的几个字段,可以考虑在这几个字段上建立索引,从而将表的扫描改变为索引的扫描。
  6. 限制表上的索引数目。
  7. 不要在有大量相同取值的字段上,建立索引。

1.6        hashmap原理,hashmap与hashtable区别

HashMap的工作原理 :HashMap是基于散列法(又称哈希法)的原理,使用put(key, value)存储对象到HashMap中,使用get(key)从HashMap中获取对象。当我们给put()方法传递键和值时,我们先对键调用hashCode()方法,返回的hashCode用于找到bucket(桶)位置来储存Entry对象。HashMap是在bucket中储存键对象和值对象,作为Map.Entry。并不是仅仅只在bucket中存储值。
区别:
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
 
1.7    分片键
字段的某一列是唯一的,这样分库时能迅速找到对应的库,然后再去对应库中搜索
https://zhuanlan.zhihu.com/p/629492994
posted on   菜鸟乙  阅读(89)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2015-08-20 eclipse调试(转)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示