Java并发
未读
0x01 Java并发常见问题
Java 并发 - 理论基础 多线程的出现是要解决什么问题的? 线程不安全是指什么? 举例说明 并发出现线程不安全的本质什么? 可见性,原子性和有序性。 Java是怎么解决并发问题的? 3个关键字,JMM和8个Happens-Before 线程安全是不是非真即假? 不是 线程安全有哪些实现思路? 如
Java基础
未读
生成包含 N 个重复字符的 Java 字符串
1、概述 在本教程中,我们将熟悉**生成N 个重复字符的*字符串***的不同选项。当我们需要添加填充空白、生成 ASCII 艺术等时,这会派上用场。 这个问题在 JDK11 中很容易解决,但是如果我们使用的是早期版本,那么还有很多其他的解决方案可用。我们将从最常见的方法开始,并从一些库中添加其他方法
Java基础
未读
深拷贝、浅拷贝和引用拷贝的区别
浅拷贝 仅拷贝被拷贝对象的成员变量的值,也就是基本数据类型变量的值和引用数据类型变量的地址值,而对于==引用类型变量指向的堆中的对象不会拷贝==。 浅拷贝时如果对象的属性是基本类型,会复制吗? 会直接复制变量的值 浅拷贝会创建新的对象吗? 会创建一个新的对象。 新对象和旧对象中的所有引用类型的属性地
Java基础
未读
字符串拼接的几种方式和区别
字符串拼接 字符串拼接是我们在Java代码中比较经常要做的事情,就是把多个字符串拼接到一起。 我们都知道,String是Java中一个不可变的类,所以他一旦被实例化就无法被修改。 不可变类的实例一旦创建,其成员变量的值就不能被修改。这样设计有很多好处,比如可以缓存hashcode、使用更加便利以及更
Java基础
未读
为什么建议使用迭代器遍历
java 推荐使用集合提供的迭代器,而不是集合本身来遍历其中的对象。因为迭代器遍历集合的方法在找到集合中的一个对象的同时,也得到带遍历的后继对象的引用,因此迭代器可以快速地遍历集合。 例如set集合是无序的,使用for遍历不了;再比如链表结构如果不使用迭代器的话,每次调用get方法都会从头开始遍历到
Java基础
未读
String对“+”的重载
String s = “a” + “b”,编译器会进行常量折叠(因为两个都是编译期常量,编译期可知),即变成 String s = “ab”; 对于能够进行优化的(String s = “a” + 变量 等)用 StringBuilder 的 append() 方法替代,最后调用 toString(