==和 equals 的区别

对于基本数据类型来说,==比较的是值。对于引用数据类型来说,==比较的是对象的内存地址。

Java

对象在内存中的内存布局

对象的内存布局HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 从上面的这张图里面可以看出,对象在内存中的结构主要包含以下几个部分: Mark Word(标记字段):对象的Mark Word部分占4个字节,其内容是一系列的标记位,比如轻量级锁的标记位,偏向锁标记位等等。 Kla...
Java

Object类中常用方法

取得对象信息的方法:toString()该方法在打印对象时被调用,将对象信息变为字符串返回,默认输出对象地址。 编译器默认调用toString()方法输出对象,但输出的是对象的地址,我们并不能看懂它的意思。那么就要通过重写Object类的toString()方法来输出对象属性信息。 对象相等判断方法:equals()public boolean equals(Object obj);用于...
Java

Java内存模型-JMM

介绍Java内存模型(Java Memery Model)用来屏蔽掉各种硬件和操作系统的内存访问差异。以至于让Java在各中平台下都能达到一致的内存访问效果。 简单的说,JMM 定义了一套在多线程读写共享数据时(成员变量、数组)时,对数据的可见性、有序性、和原子性的规则和保障. 从硬件角度来看。因为处理器的运算速度很快,比如做一个递增操作,就需要从内存中拿值,操作后再放回内存。这样的I/...
Java

Java反射相关知识点

什么是反射?反射是在运行状态中,对于任意一个类, 都能够知道这个类的所有属性和方法;对于任意一个对象, 都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。 哪里用到反射机制? JDBC中,利用反射 (Class.forName(xxx)) 动态加载了数据库驱动程序。 Web服务器中利用反射调用了Sevlet的服务方法。 Ecl...
Java

Java中如何跳出多重循环

Java 基础回顾…

Java

集合类不安全

111

Java

public、private、protected、default的区别

publicJava语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。 privateJava语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。 protected介于public 和 private 之间的一种访问修...
Java

JDK1.8新特性

Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

Java

8种基本类型的包装类和常量池

八种基本数据类型的默认值 整型 byte short int long 浮点型 float double 逻辑型 boolean 字符型 char Java 基本类型的包装类的大部分都实现了常量池技术,即 Byte,Short,Integer,Long,Character,Boolean;前面 4 种包装类默认创建了数值[-128,127] 的相应类型的缓存数据,Character...
Java