
Java 基础
Java 基础
君莫笑(๑˙ー˙๑)
欢迎互关,一起学习,共同进步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ArrayList 面试题
1,初始容量大小?最大容量?A:10。Integer.MAX_VALUE。2,触发扩容机制?A:当调用 add 时,计算当前 size + 1,如果大于数组长度,扩容3,add 过程如果当前数组为空,创建容量为10的数组;如果size + 1 > length,扩容。赋值。public boolean add(E e) { //确保数组容量 ensureCapacityInternal(size + 1); // Increments modCount!! //赋值原创 2020-08-17 17:07:37 · 739 阅读 · 1 评论 -
为什么要重写 hashCode() 和 equals()
目录Object 的 hashCode() 与 equals()hashCodeequals重写 equals() 的场景String 的 equals()重写 hashCode() 的场景Object 的 hashCode() 与 equals()hashCodepublic native int hashCode();原生的 hashCode() 是一个本地方法,返回的是根据物理地址换算出来的一个唯一值。equalspublic boolean equals(Object obj) {原创 2020-07-19 17:47:06 · 425 阅读 · 0 评论 -
关于 String、StringBuffer、StringBuilder 的常见面试题
目录String创建方式一方式二方式三最大长度拼接方式一方式二StringBuilderappendtoStringStringBuffertoStringString类不可变(final),内部维护的 char[] value 数组不可变(final)。创建方式一String str = "xxx";字符串常量池如果有 “xxx”,不创建对象;如果没有,在字符串常量池创建"xxx"。方式二String str = new String("xxx");字符串常量池如果有 “xxx”,创原创 2020-07-19 16:45:15 · 820 阅读 · 0 评论 -
序列化相关面试题
1.如果一个子类实现了序列化,父类没有实现,那么父类中的成员变量能否被序列化?不会。2.transient是干嘛的?有什么方法能够绕过transient的机制?这个实现机制的原理是什么?transient是干嘛的?transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化(Java 的序列化方式)到文件中,在被反序列化后,transient 变量的值被设为初始值。有什么方法能够绕过transient的机制?虽然 name 被 transient 修饰,但原创 2020-06-16 16:05:47 · 1079 阅读 · 0 评论 -
System.exit(0) 与 System.exit(1) 在运行上有何区别
疑问看到很多博客上说,System.exit(status) ,status 为 0 就是正常退出,status 为 1 是非正常退出。真的是这样吗?代码测试public class Test { public static void main(String[] args) { try{ throw new RuntimeException(); }catch (Exception e){ System.exit原创 2020-06-01 09:16:45 · 446 阅读 · 0 评论 -
常见面试题:交换 Integer
目录代码知识点值传递与引用传递Integer 的 value 和 IntegerCachevalueIntegerCache反射图解代码import java.lang.reflect.Field;public class Test { public static void main(String[] args) throws Exception { Integer a = 1, b = 2; swap(a ,b); System.out.pr原创 2020-05-29 21:53:40 · 250 阅读 · 0 评论 -
有关 ThreadLocal 的都在这里了
ThreadLocal辨析与Synchonized的比较ThreadLocal和Synchonized都用于解决多线程并发访问。Synchronized:利用锁的机制,使变量或代码块在某一时该仅仅能被一个线程访问。ThreadLocal:为每个线程都提供了变量的副本,使得每个线程在某一时间访问到的并非同一个对象,这样就隔离了多个线程对数据的数据共享。Spring的事务就借助了Thre...原创 2020-04-25 20:56:01 · 458 阅读 · 0 评论 -
有关“引用”、“对象”、“引用对象”的误解和看过源码说明后的理解
当看到Object o = new Object();有人说,“我们创建了一个名为 o 的对象。”对吗?大家常常这么说,可严格意义上并不正确。正确的解读是:创建了一个引用 o 和一个 Object 对象,并把 o 指向(refer to)了这个 Object 对象(referent,所指之物)。这个 o,我们称之为引用。打印 o,会看到对象的地址,如 java.lang.Objec...原创 2020-04-25 19:15:17 · 617 阅读 · 0 评论 -
基于jdk1.8的List<Integer>、int[ ]、Integer[ ]的相互转换简洁写法及解释
List< Integer >与int[ ]的转换int[ ] 转 List< Integer >int[ ] 转 Integer[ ]Integer[ ] 转 List< Integer >Integer[ ] 转 int[ ]List< Integer > 转 int[ ]List< Integer > 转 Integer[ ]下文...原创 2019-07-21 19:10:56 · 7002 阅读 · 19 评论 -
为什么用 System.nanoTime() / 1000000 而不是 System.currentTimeMillis()?
问题来源以下是 zookeeper3.4.12 源码里的一小部分:注释里有一句话是在读不懂:Time.currentElapsedTime will change but nanoTime won't.个人感觉应该是写错了(根据返回值,明显要变两个一起变),这里应该是说的 currentTimeMillis() 和 nanoTime() 的区别。于是去 jdk 1.8 官方...原创 2019-10-26 22:13:50 · 901 阅读 · 0 评论