stackoverflow上一个最会举例子的专家
发布日期:2021-06-30 19:33:04 浏览次数:2 分类:技术文章

本文共 1854 字,大约阅读时间需要 6 分钟。

是stackoverflow上一个一个最会举例子的专家,我特意收集了他的一些有趣的举例:

 

 

这三个类都实现了Map接口,并提供了大部分相同的功能。最重要的区别是条目的迭代顺序:

  • HashMap绝对不保证迭代顺序。当添加新元素时,它甚至可以(并且将)完全改变。
  • TreeMap将根据其compareTo()方法(或外部提供的Comparator)按键的“自然排序”进行迭代。此外,它实现了接口,该接口包含依赖于此排序顺序的方法。
  • LinkedHashMap 将按照条目放入地图的顺序进行迭代

是基于散列的映射的通用名称。在Java API的上下文中, Hashtable是一个过时的类,它来自Java 1.1之前的集合框架。它不应再被使用,因为它的API混杂着复制功能的过时方法,并且它的方法是同步的(这会降低性能并且通常是无用的)。使用而不是Hashtable。

这三个都表示从唯一键到值的映射,因此实现了接口。

  1. HashMap是基于键的映射。它支持O(1)get / put操作。密钥必须具有为此工作。

  2. LinkedHashMap与HashMap非常相似,但它增加了对添加(或访问)项目的顺序的认知,因此迭代顺序与插入顺序(或访问顺序,取决于构造参数)相同。

  3. TreeMap是基于树的映射。其put / get操作需要O(log n)时间。它要求项目具有一些比较机制,可以使用Comparable或Comparator。迭代顺序由此机制确定。

 

 

其实就是LinkedHashMap是插入顺序,TreeMap是排序的顺序。

 

----

高内聚,低耦合指南

实质上,高内聚意味着将代码库的一部分保存在一个地方。同时,低耦合是尽可能地分离代码库的不相关部分

理论上,指南看起来很简单。但是,在实践中,您需要深入了解软件的域模型,以便了解代码库的哪些部分实际相关。

----

内聚是指类(或模块)可以做什么。低凝聚力意味着班级做了各种各样的行动 - 它是广泛的,没有关注它应该做什么。高凝聚力意味着课程专注于应该做的事情,即只关注课堂意图的方法。

低内聚的例子:

-------------------| Staff           |-------------------| checkEmail()    || sendEmail()     || emailValidate() || PrintLetter()   |-------------------

高内聚的例子:

----------------------------| Staff                   |----------------------------| -salary                 || -emailAddr              |----------------------------| setSalary(newSalary)    || getSalary()             || setEmailAddr(newEmail)  || getEmailAddr()          |----------------------------

至于耦合,它指的是两个类/模块相互依赖或相互依赖的方式。对于低耦合类,更改一个类中的主要内容不应该影响另一个类。高耦合会使您难以更改和维护代码; 由于课程紧密相连,因此进行更改可能需要对整个系统进行改造。

良好的软件设计具有高内聚力低耦合性

有人可以简要解释如何使用ThreadFactory?使用和不使用ThreadFactory的示例可能对理解差异非常有帮助。

他也是引用了这里:

 

如何在不是线程的对象上调用wait()notify()方法?那真的没有意义,是吗?

当然,它必须有意义,因为这两种方法可用于所有Java对象。有人可以提供解释吗?我无法理解如何使用wait()和之间的线程之间进行通信notify()

其实waitnotify成员函数不应该属于线程,它应该属于命名为东西条件变量它来自。你可以看看cpp如何包装这个概念,它将它包装成一个专用的类名。

我认为cpp比java更好地封装,java做得太多了,它把概念直接放到了Object类中,好吧,这让人们在开始时感到困惑。

 

 

有人可以通过现实世界的例子解释注释中的隔离传播参数@Transactional。基本上何时以及为什么我应该选择更改其默认值。

 

 

 

 

转载地址:https://linuxstyle.blog.csdn.net/article/details/88823322 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Jdk11,Jdk12的低延迟垃圾收集器ZGC
下一篇:Java弱引用最精彩的解释

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月23日 20时59分49秒