自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Java中使用静态内部类实现单例模式

public class LazyInnerClassSingleton { private LazyInnerClassSingleton(){}; public static final LazyInnerClassSingleton getInstance(){ return LazyHolder.LAZY; } //静态内部类默认是不加载...

2020-04-08 14:52:03 430

原创 Java中强、软、弱、虚引用

强引用(StrongReference) 当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不会被垃圾回收机制回收。 软引用(SoftReference) 软引用需要通过SoftReference类实现,一个类只有软引用时,如果系统内存充足,那么它不会被回收,反之,则有可能被回收。 弱引用(WeakReference) 在垃圾回收机制运行时,不管系统空间是否足够,弱引用对象都...

2020-04-05 18:01:07 96

原创 Java中的TreeSet

TreeSet是SortedSet接口的实现类,底层采用TreeMap实现 TreeSet存储的元素都处于排序状态 所有使用TreeSet存储排序的类都要实现Comparable接口,该接口定义了一个compareTo()方法,该方法返回一个整数值。 当一个对象调用该方法与另一个对象比较时,如果对象相等,则返回0,如果前者大于后者,则返回正整数,如果前者小于后者,则返回负整数。 java常...

2020-04-04 18:37:47 138

原创 初探Java中HashSet

HashSet是Set接口的一个实现。 HashSet底层采用HashMap实现。 HashSet是非线程安全的 HashSet不能保证元素的顺序,存储顺序可能和添加顺序不一样,存储顺序也可能会发生变化 HashSet允许null值 调用HashSet默认的构造方法时HashSet会调用HashMap默认的构造方法来创建一个HashMap对象 public HashSet() { ...

2020-04-04 14:42:55 89

原创 对象在内存中的状态

可达状态:对象被创建后如果有一个以上的引用变量引用它,则这个对象在程序中处于可达状态,程序可以通过引用变量访问它。 可恢复状态:当某个对象不再有任何引用变量引用它时它就进入了可恢复状态,这种状态下垃圾回收机制准备回收该对象,在回收该对象之前会调用该对象的finalize()方法进行资源清理,如果finalize()方法让该对象重新被引用变量引用,则对象会再次变为可达状态。 不可达状态:当系统调...

2020-04-03 23:54:22 204

原创 Java中接口和抽象类

接口和抽象类都不能被实例化,都位于继承树的顶端,用于被其他类实现和继承。 接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类必须都实现这些抽象方法。 接口作为系统和外部交互的窗口,接口体现的是一种规范,对于接口的实现者而言,接口规定了实现者必须向外部提供的服务,对于接口调用者而言,接口规定了调用者可以调用哪些服务。在一个程序中使用接口时接口是多个模块之间耦合的标准,在多个程序...

2020-04-03 14:33:33 117

原创 Java中的接口:更彻底的抽象

什么是接口 接口是从多个类中抽象出来的规范,接口不提供任何实现。 接口体现的是规范和实现分离的设计哲学。 接口里定义的是一组公用的方法。 定义接口 //接口只能继承接口 //接口可以多继承,接口继承会获得父接口全部的Field,方法,内部类和枚举类 修饰符 interface 接口名 extends 父接口1,父接口2...{ 零个到多个常量定义。。。 零个到多个抽象方...

2020-04-03 13:53:38 177

原创 Java中的抽象类

什么是抽象类 用abstract关键字修饰的类被称为抽象类 抽象类不能被实例化,抽象类的构造器不能用于创建实例,主要用于被子类调用 抽象类可以没有抽象方法 有抽象方法的类只能被定义为抽象类,有三种情况可以视作该类有抽象方法: 直接定义了一个抽象方法 继承了一个抽象父类但没有完全实现父类包含的抽象方法 实现了一个接口但没有完全实现接口包含的抽象方法 抽象类可以包含Field、方法、构造...

2020-04-03 13:30:59 113

原创 Java中final修饰符

final关键字可以用来修饰类、方法、和变量。 final关键字修饰变量时变量一旦获得初始值就不会再被改变。 final修饰成员变量 成员变量是随类初始化或对象初始化而初始化的 当类初始化时系统会自动为该类的成员变量分配内存并设置默认值 当创建对象时系统会自动为对象的成员变量分配内存并设置默认值 如果使用final修饰成员变量但是不显式的指定他们的初始值,那么这些成员变量会被系统设置为默认值,这...

2020-04-03 10:55:10 119

原创 Java中的自动装箱和自动拆箱

jdk1.5之后,java提供了自动将基本类型和对应的包装类型互相转换的功能,称之为自动装箱和自动拆箱。 自动装箱示例: int n = 1; Integer m = n; 上面代码编译后的字节码 public static void main(java.lang.String[]); Code: 0: iconst_1 1: istore_1 ...

2020-04-03 10:10:06 87

原创 Java中定义形参个数可变的方法

在java1.5之后,java允许定义形参个数可变的方法。 在定义方法时,在最后一个形参类型后面增加三点(…)则表明该形参可以接受多个参数值,多个参数值以数组的形式传入。 public void readBook(String name,String... books){ //books被当作数组处理 for(String book : books){ System.out.println...

2020-04-03 09:50:51 312

原创 Java中的数组

数组的描述 数组是编程语言中最常见的一种数据结构,可以存储多个相同类型的数据,每个数组元素可以存放一个数据。通常使用数组元素的索引来操作数组元素。数组的元素索引从0开始。 数组初始化完成之后,数组在内存中占用的空间将被固定下来,数组的长度也被固定,即使把一个数组里的元素全部清空,数组所占的空间依然被保留。 java中的数组既可以存放基本类型的数据,也可以存放引用类型的数据。 数组本身也是一种...

2020-04-02 17:35:14 57

原创 Java中的继承

继承是面向对象的三大特征之一 java中继承的语法 修饰符 class 类名 extends 父类名{ } java中所有类都默认继承Object类 java中的子类可以获得父类全部的方法和Field,但是不能获得父类的构造器。子类可以通过super关键字调用父类的构造方法。 重写父类的方法 子类扩展了父类,大部分时候子类总是以父类为基础,额外增加新的Field或方法。 但有一种特殊情况需要子类...

2020-04-02 12:52:02 97

原创 java中构造器

构造器是一个特殊的方法,这个方法用于创建实例时执行初始化 构造器是创建对象的重要途径 java必须包含一个或者一个以上的构造器 如果程序员没有为类编写构造器,则系统会给该类提供一个无参且执行体为空的构造器 如果程序给类编写了自定义的构造器,则系统不会再给类提供默认构造器 构造器也可以被重载 构造器一般用来初始化类的一些参数 public class Dog{ public String na...

2020-04-02 12:19:55 124

原创 java中成员变量和局部变量

一个类里不能定义两个重名的成员变量 java允许局部变量和成员变量名称相同,如果方法里的局部变量和成员变量相同,局部变量会覆盖成员变量,这时可以通过如下语法访问成员变量 //类Field 类名.变量名 //实例Field this.变量名 成员变量 系统加载类或者创建该类的实例时会自动为类Field分配内存空间并自动为成员变量指定初始值。 实例Field是在创建实例时分配内存空间并指定初始值的。...

2020-04-02 10:48:13 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除