Questions
- why string is immutable?
1. 安全性:
- 字符串经常被用作安全敏感信息的载体,例如密码、密钥等。 如果字符串是可变的,那么恶意代码可能会修改这些敏感信息,导致安全漏洞。
- 不可变字符串可以防止意外的修改,提高代码的安全性。 例如,在多线程环境中,多个线程可以安全地共享同一个字符串,而不用担心其中一个线程会修改字符串的值,从而影响其他线程。
2. 缓存和性能优化:
- 不可变字符串可以被缓存,提高性能。 因为字符串的值不会改变,所以编译器或运行时环境可以将字符串缓存在内存中,避免重复创建相同的字符串对象。
- 字符串的哈希值可以被预先计算和缓存,提高字符串比较和查找的效率。 例如,在哈希表中,字符串经常被用作键,如果字符串是可变的,那么每次修改字符串的值都需要重新计算哈希值,影响性能。
证明,n 枚硬币中一定有一枚假币,要用 k 次普通天平找出这枚假币,则问题有解的充分必要条件是 2n ≤ 3^k
必要性很容易说明,其核心思路本文一开始就已经说过了:每使用一次天平,会产生三个分支剧情;使用 k 次天平,一共会产生 3k 个不同的结局。这只够区分 3^k 个不同的可能性。然而,究竟谁是假币,这一共有 n 种不同的可能性。
用老鼠测试100瓶药一瓶是毒药,喝下去一滴就死,假设一只最多喝100瓶,最少需要几只老鼠可以找出毒药?其实这个问题答案很简单,我们只需要7只小白鼠就够了,而这个问题的解题关键就是数学编码中的二进制。
1、首先,”100瓶药水其中有1瓶有毒“这个随机变量X的信息熵为:log100 = 6.64
- 菜鸟: 多线程如何实现 继承Thread方法 implements Runnable
- 线程池创建和销毁
- 设计模式
- 缓存 一致性怎么达成
- 索引的优缺点