首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2019年Java面试题基础系列228道(6),查漏补缺!

62、两个相同的对象会有不同的的 hash code ? 63、我们可以在 hashcode() 中使用随机数字?...b)Hashtable 是同步的,比较慢,但 HashMap 没有同步策略,所以更快。 c)Hashtable 不允许有个空的 key,但是 HashMap 允许出现一个 null key。...59、我们能自己写一个容器类,然后使用 for-each 循环码? 可以,你可以写一个自己的容器类。如果你想使用 Java 中增强的循环来遍历,你只需要实现 Iterable 接口。...b)使用 NIO 和 NIO2 c)在 finally 块中关闭流,或者使用 try-with-resource 语句。 d)使用内存映射文件获取更快的 IO。...下面是一些更通用的原则: a)使用批量的操作来插入和更新数据 b)使用 PreparedStatement 来避免 SQL 异常,并提高性能。

94800

2019年总结:Java中高级面试题228道系列(6)

62、两个相同的对象会有不同的的 hash code ? 63、我们可以在 hashcode() 中使用随机数字?...b)Hashtable 是同步的,比较慢,但 HashMap 没有同步策略,所以更快。 c)Hashtable 不允许有个空的 key,但是 HashMap 允许出现一个 null key。...59、我们能自己写一个容器类,然后使用 for-each 循环码? 可以,你可以写一个自己的容器类。如果你想使用 Java 中增强的循环来遍历,你只需要实现 Iterable 接口。...b)使用 NIO 和 NIO2 c)在 finally 块中关闭流,或者使用 try-with-resource 语句。 d)使用内存映射文件获取更快的 IO。...下面是一些更通用的原则: a)使用批量的操作来插入和更新数据 b)使用 PreparedStatement 来避免 SQL 异常,并提高性能。

60820
您找到你想要的搜索结果了吗?
是的
没有找到

笨办法学 Python · 续 练习 18:性能测量

它所做的就是接受字符串形式的 Python 代码,并使用一些时间运行它。你不能传递函数引用,.py文件除字符串之外的任何内容。...有了一个作为目标的指标,你明白什么时候放弃,已经做得足够了。 你可以用于分析的最简单过程是这样: 在代码上运行性能分析器,就像我在这里使用测试所做的一样。你得到的信息越多越好。...循环内有循环?调用函数太频繁?在调查诸如缓存之类的复杂技术之前,寻找可以改变的简单事物。 一旦你列出了所有最慢和最小的函数,以及简单的更改,使它们更快并寻找规律。...列出你尝试的所有东西,以及你所完成的所有性能增益。如果你不这样做,那么你不断地回到你已经处理过的函数上,并浪费精力。 在这个过程中,“最慢和最小”的概念是变化的。...在下一个练习中,我们将会使用这个过程,来改进这些算法的性能。 挑战练习 此练习的挑战是,将我对bubble_sort和merge_sort所做的所有操作,都应用到目前为止所创建的所有数据结构和算法。

35730

JS 项目中究竟应该使用 Object 还是 Map?| 项目复盘

(obj).length Map 是可迭代对象,所以其中的键值对是可以通过 for of 循环 .foreach() 方法来迭代的;而普通的对象键值对则默认是不可迭代的,只能通过 for in 循环来访问...对于速度测试,因为单一的操作速度太快了,很多时候 performance.now() 返回 0。所以我进行了 10000 次的循环然后判断时间差。...所以说,在需要进行很多新增操作,且需要储存许多数据的时候,使用 Map 更高效。...删除元素时的性能 不知道大家是否听说过 delete 操作符性能低下,甚至有很多时候为了性能,宁可将值设置为 undefined 而不使用 delete 操作符的说法。...我们可以发现在进行删除操作时,Map 的速度略占优,但整体差别其实并不大。 特殊情况 其实除了最基本的情况之外,还有一种特殊的情况。还记得我们在前面提到的 Object 中键的排序

1.7K10

这六种原因,真能让 Java 应用 CPU 使用率飙升至 100%

点击上方“码农沉思录”,选择“设为星标” 优质文章,及时送达 问题 1、无限循环的while导致CPU使用率飙升? 2、经常使用Young GC导致CPU占用率飙升?...那么,JAVA应用程序中的哪些操作更加CPU密集? 以下列出了常见的CPU密集型操作: 1、频繁的GC; 如果访问量很高,可能导致频繁的GC甚至FGC。...现在,分时操作系统使用循环方式为进程调度分配时间片。如果进程正在等待阻塞,那么它将不会使用CPU资源。线程称为轻量级进程,并共享进程资源。因此,线程调度在CPU中也是分时的。...但在Java中,我们使用JVM进行线程调度。因此,通常,线程调度有两种模式:时间共享调度和抢占式调度。 答案 1、while的无限循环导致CPU使用率飙升? 是。...首先,无限循环将调用CPU寄存器进行计数,此操作将占用CPU资源。那么,如果线程始终处于无限循环状态,CPU是否切换线程?

15.6K20

6大技巧,让Python编程健步如飞!

有人跟我抱怨说python太慢了,然后我就将python健步如飞的六大技巧传授给他,结果让他惊呆了,你也想知道这个秘诀?...不同的业务场景可以选择其中的一种几种的组合实现程序性能的优化。...针对循环的优化 每种编程语言都会强调需要优化循环。当使用Python的时候,你可以依靠大量的技巧使得循环运行得更快。然而,开发者经常漏掉的一个方法是:避免在一个循环使用操作。...然而,如果你用一个变量代替求得的值,值就变成了已知的,Python就可以更快地执行任务。...优化循环的关键,是要减少Python在循环内部执行的工作量,因为Python原生的解释器在那种情况下,真的减缓执行的速度。

51800

Kotlin 从拒绝到真香

这篇文章告诉大家,客观准确评判一门语言好坏的标准。 无论如何,编程语言是给人使用的,那我们就从人本身特点出来来讲这个逻辑。我们人是靠大脑思考的,而大脑有个致命的缺点:容量有限,且有一定错误率。...写出来会有多少个 bug ?...Kotlin 相比 Java,他的语法表达更简洁,更容易写出低耦合,高内聚的代码;且和 Java 互操作的特性,可以直接使用 Java 的轮子,大大缩短了建设 Kotlin 生态的过程。...我觉得可以理解为,人大脑的犯错频率是比较固定的,使用时长越长,出现的“bug”也就越多。如果你能通过选择一门语言,更快的实现指定功能,那么 bug 数量相应减少。 代码简洁易懂。...要把好与不好列出来。就像我这样,我说 Kotlin 好,我把好的理由讲给你听,你觉得没道理,你可以针对这些点进行反驳,或者提出新的观点,然后和我进行讨论。

1.3K20

0. 如何判断一门语言的好坏

这篇文章告诉大家,客观准确评判一门语言好坏的标准。 无论如何,编程语言是给人使用的,那我们就从人本身特点出来来讲这个逻辑。我们人是靠大脑思考的,而大脑有个致命的缺点:容量有限,且有一定错误率。...写出来会有多少个 bug ?...Kotlin 相比 Java,他的语法表达更简洁,更容易写出低耦合,高内聚的代码;且和 Java 互操作的特性,可以直接使用 Java 的轮子,大大缩短了建设 Kotlin 生态的过程。...我觉得可以理解为,人大脑的犯错频率是比较固定的,使用时长越长,出现的“bug”也就越多。如果你能通过选择一门语言,更快的实现指定功能,那么 bug 数量相应减少。 代码简洁易懂。...要把好与不好列出来。就像我这样,我说 Kotlin 好,我把好的理由讲给你听,你觉得没道理,你可以针对这些点进行反驳,或者提出新的观点,然后和我进行讨论。

82240

Java 面试问题大全

2)volatile 能使得一个非原子操作变成原子操作? 一个典型的例子是在类中有一个 long 类型的成员变量。...使用 if 块还是循环?为什么? wait() 方法应该在循环调用,因为当线程获取到 CPU 开始执行的时候,其他条件可能还没有满足,所以在处理前,循环检测条件是否满足更好。...并且需要知道 clone() 方法是一个本地方法,这意味着它是由 c c++ 其他本地语言实现的。 23)Java 中 ++ 操作符是线程安全的? 不是线程安全的操作。...59)我们能自己写一个容器类,然后使用 for-each 循环? 可以,你可以写一个自己的容器类。如果你想使用 Java 中增强的循环来遍历,你只需要实现 Iterable 接口。...列出算法概要的方法就是众所周知的模板方法。 116)什么时候使用访问者模式? 访问者模式用于解决在类的继承层次上增加操作,但是不直接与之关联。这种模式采用双派发的形式来增加中间层。

88340

如何让matlab心甘情愿地做你的文件搬运工

咱们先来看matlab有哪些与文件操作相关的函数表吧! matlab文件操作相关函数表 函数名称 函数功能 movefile 移动重命名文件文件夹:带你去浪漫的土耳其!...dir 列出文件夹内容:让你对文件夹内容一目了然 ls 列出文件夹内容:楼上的老哥,稳呀! pwd 确定当前文件夹:我只注重当下! isfile 确定输入是否为文件:是文件?我是小花。...isfolder 确定输入是否为文件夹:是文件夹?我是小草。 exist 检查变量、脚本、函数、文件夹类的存在情况:存在即合理! what 列出文件夹中的 MATLAB 文件:what?...'千里归程三伏天'}; % 文字来源于:http://www.227g.com/shi/ % 使用cellfun可以直接对cell中的单个变量进行函数操作, % 可以有效避免使用循环 cellfun(@...如果大家对matlab文件操作函数的使用有任何疑问,不要犹豫,尽情给小编留言吧!

94220

C语言代码优化的一些经验及小技巧(一)

= 0) 不可模仿布尔变量的风格而写成: if (value) // 让人误解 value是布尔变量 if (!value) 3、浮点变量与零值的比较 不可将浮点变量用“ ==” “ !...2、除法和取余数 在标准处理器中,对于分子和分母,一个32位的除法需要使用20至140次循环操作。除法函数消耗的时间包括一个常量时间加上每一位除法消耗的时间。...但有时可以结合使用if语句进行取模操作。...如果我们不介意循环计数的顺序,我们可以这样写: for( i=10; i--; ) { ... } 这样快的原因是因为它能更快的处理i的值–测试条件是:i是非零的?如果这样,递减i的值。...对于上面的代码,处理器需要计算“计算i减去10,其值非负?如果非负,i递增并继续”。简单的循环却有很大的不同。这样,i从9递减到0,这样的循环执行速度更快。 这里的语法有点奇怪,但确实合法的。

97432

疯转|最近5年133个Java面试问题列表

2)volatile 能使得一个非原子操作变成原子操作? 一个典型的例子是在类中有一个 long 类型的成员变量。...使用 if 块还是循环?为什么?(答案) wait() 方法应该在循环调用,因为当线程获取到 CPU 开始执行的时候,其他条件可能还没有满足,所以在处理前,循环检测条件是否满足更好。...所以,如果你的工作要求低延迟,并且你的线程目前没有任何顺序,这样你就可以通过循环检测队列中的新消息来代替调用 sleep() wait() 方法。...并且需要知道 clone() 方法是一个本地方法,这意味着它是由 c c++ 其他本地语言实现的。 23)Java 中 ++ 操作符是线程安全的?(答案) 23)不是线程安全的操作。...b)Hashtable 是同步的,比较慢,但 HashMap 没有同步策略,所以更快。 c)Hashtable 不允许有个空的 key,但是 HashMap 允许出现一个 null key。

2K50

何时使用 Object.groupBy

这听起来熟悉?应该是的,因为这就是使用 Object.groupBy 的目的。...这也是使用 Object.groupBy 时的目标。您的目标是更快地访问数据,因为线性时间不够(例如),您需要更快的访问时间,最理想的情况是恒定时间。那么改如何运作呢?首先,您将确定需要快速访问的列。...我们获得了与之前相同的结果,但无需编写循环。这意味着我们现在处于恒定时间复杂度,对?对?其实并非完全如此。我们在这里做的一切就是去除了循环,而是通过调用带有要搜索的电子邮件的对象来实现。...,然后可以用于通过电子邮件访问我们的用户,所以它花费的时间实际上与您使用先前的解决方案此解决方案的时间相同。...我们本可以(多写一些代码)使用传统循环来完成。然而,如果您现在要发出多个搜索请求,您开始注意到使用分组对象要快得多。

12600

笨办法学 Python · 续 练习 13:单链表

我将描述数据结构,列出你应该实现的所有操作,并给你实现需要通过的单个测试。你应该首先尝试使用此数据结构,然后再观看我的实现和审计视频,以便你了解该过程。 警告 这些都不是数据结构的高效实现。...控制器是另一个简单的类,它使用节点存储所有内容并构建数据。这是所有的操作(push,pop,list等)的地方,通常控制器的使用者从来没有真正处理节点指针。...控制器,简单地称为SingleLinkedList,具有诸如push,pop,firstcount之类的操作,它们接受Car,并且使用节点在内部进行存储。...它的参数数量正确?类型正确? 在每个分支(if语句,for循环,while循环)中,确认逻辑是正确的,并且它处理逻辑中的任何可能的条件。if语句的else子句有错误循环能结束?...视频也更快来节省时间,我会剪切掉任何无聊的错误时间的浪费。 一旦你看到我是怎么做的,你已经做了笔记(对?),然后去尝试更严格的东西,并尽可能仔细地执行代码审核过程。

39920

2018年,让你的数据库变更快的十个建议

4、不要 select 你不需要的 获取想要的数据,一种非常常见的方式就是采用 * 字符,这会列出所有的列。 SELECT * FROM wp_posts; 然而,你应该仅列出你需要的列,如下所示。...SELECT title, excerpt, author FROM wp_posts LIMIT 10; 6、避免循环中的查询 当在 PHP 中使用 SQL 时,可以将 SQL 放在循环语句中。...我不是说不能用,而是,应该小心使用,并且不要使用全词通配符 (full wildcard),前缀通配符后置通配符可以完成相同的任务。...事实上,在百万数量级的数据上采用全词通配符来搜索让你的数据库当机。...使用索引 数据库索引和你在图书馆中见到的索引类似:能让你更快速的获取想要的信息,正如图书馆中的索引能让读者更快的找到想要的书一样。 可以在一个列上创建索引,也可以在多个列上创建。

74770

从零到一,如何快速学好一门开发语言

你想学的语言是使用传统的 “if/else if/else” 还是更像 Pythonic 的 “if/elif/else” ?你的语言有 “switch” “guard” 语句?...循环 你如何遍历重复的任务?语言是否包含 for 循环、while 循环、do-while 循环还是 for-each循环呢? 函数 是否可以创建函数?如果是,你该怎么做?你如何包装使用的函数参数?...关键是要记住,如果你在这项任务的难度上做得不够(比如跳过21点的双下拆分功能),你只会限制你对这门语言的理解。 还有什么? 我知道上面列出的并不是语言所能提供的一切。...事实上,您可以使用上面列出的工具编写任何东西,但是标准库中包含的附加功能只是让它更容易。大多数标准库都包含相同的函数,因此您可以在语言之间依赖类似的名称。...你使用一种语言工作的次数越多,就可以更了解他的标准库,但请务必事先学习上面的这些工具。 需要快速做一些数据科学?看看几个 Python 包 R 语言。需要编写一个快速服务?看 C 或者 Go。

52120

容器取代虚拟机?这篇告诉你

在一台服务器上,用户可以使用容器来运行比虚拟机多两到三倍的应用。 仅凭这一点,或许就可以说明容器是未来的趋势,而虚拟机则是旧闻。 容器取代虚拟机?...拥有完整的操作系统功能。使用虚拟机与所有操作系统服务一起工作,有时比更协调的“Docker Compose”具有不必要复杂性的 Kubernetes 集群更可取,特别是对于一些复杂的应用程序。...通过 Kubernetes Cycle.io 等容器编排器,容器可以根据流量需求自动扩展,并在需要的时候复制容器镜像,不需要的时候将其关闭。容器的小尺寸和启动速度意味着其扩展速度比虚拟机更快。...在 Mac OS 和 M1 操作系统中,虚拟化非常棘手,但是容器可以使虚拟环境在它们上面轻松运行。 定论 容器会在开发环境中取代虚拟机?似乎已经有定论了。但是容器全面取代虚拟机?...通过使用容器,他们能够从以前环境的不一致中解脱出来,更多地关注在代码构建、创建更好的软件以及更快速地编写代码。容器在开发者中已经成为了一种主流的虚拟化技术。

48920

⻓短期记忆LSTM

LSTM可以使用别的激活函数? 8. 代码实现 9. 参考文献 1. 什么是LSTM 在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。...可以先理解GRU的过程,在来理解LSTM容易许多,链接地址: 门控循环单元(GRU) LSTM 中引⼊了3个⻔,即输⼊⻔(input gate)、遗忘⻔(forget gate)和输出⻔(output...LSTM可以使用别的激活函数? 关于激活函数的选取,在LSTM中,遗忘门、输入门和输出门使用Sigmoid函数作为激活函数;在生成候选记忆时,使用双曲正切函数Tanh作为激活函数。...且当输入较大较小时,其输出非常接近10,从而保证该门开关。在生成候选记忆时,使用Tanh函数,是因为其输出在−1~1之间,这与大多数场景下特征分布是0中心的吻合。...此外,Tanh函数在输入为0附近相比Sigmoid函数有更大的梯度,通常使模型收敛更快。 激活函数的选择也不是一成不变的,但要选择合理的激活函数。 8. 代码实现 ?

1.6K10
领券