Java基础解剖

类型

  • int[][] a = new int[][]{}; a是哪些类型的实例(使instanceof判断为true)

    • Object
    • int[][]
  • 对于object instanceof Boolean操作,若object为null,会不会抛出异常?若不会,其值是什么?
    答:不会抛出异常,其值是false

内存模型

  • 包装类的比较问题
  Integer x = 1;
  Integer y = 1;
  Integer z = 2;
  System.out.println(x == y);       // true:编译器只为常量1分配一次空间(常量区)
  System.out.println(x.equals(y));  // true:包装类会覆盖实现为比较类型与内容
  System.out.println(x == z));      // false:常量1和2,在不同的地址空间
  System.out.println(x.equals(z));  // false:常量1和2,无论地址和值都不相等

  Integer x = new Integer(1);
  Integer y = new Integer(1);
  System.out.println(x == y);         // false:x和y指向堆空间上的不同对象
  System.out.println(x.equals(y));    // true:包装类会覆盖实现为比较类型与内容
  • volatile的作用
    • 根据JVM内存模型,线程会将主内存(物理内存)映射到本地内存(高速缓存),每个线程对主内存上修改(对象属性)对其他线程存在可见性问题(时效),volatile要求对直接在主内存读写,以此来保障可见性。
    • volatile可阻止编译器对指令的乱序优化

常用工具类

  • System.out.println(new Date(0))的打印结果是?
    答:The Jan 08:00:00 CST 1970

  • 覆盖对象默认的equals方法后,是否需要覆盖其hashCode实现
    答:需要,基于HashMap规约,两个对象equals操作若为true,则需要有相同的hashcode。反之,没有要求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,930评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,445评论 11 349
  • 传送门 解读阿里Java开发手册(v1.1.1) - 异常日志 前言 阿里Java开发手册谈不上圣经,但确实是大量...
    kelgon阅读 9,819评论 4 50
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,534评论 0 41
  • 下班无事,突来兴致,想动手做点泡萝卜,夏天到了,吃起来开胃爽口,材料倒是挺简单:萝卜、冰糖、醋、野山椒。前三项早都...
    橙乐天阅读 5,449评论 7 2