面试
CH19
这个作者很懒,什么都没留下…
展开
-
Java枚举类
目录一、如何自定义枚举类二、如何使用关键字enum定义枚举类三、Enum类的主要方法四、实现接口的枚举类一、如何自定义枚举类二、如何使用关键字enum定义枚举类三、Enum类的主要方法四、实现接口的枚举类...原创 2021-02-28 14:53:35 · 197 阅读 · 2 评论 -
Java比较器
使用说明:Java中的对象,正常情况下,只能进行比较:== 或 !=。不能使用 > 或 < 。但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。这就需要使用:Comparable 或 Comparator。一、Comparable接口:自然排序1. 像String,包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式。2. 像String、包装类重写compareTo(obj)方法以后,进行了从..原创 2021-02-24 20:10:35 · 139 阅读 · 1 评论 -
Java字符串相关的类:StringBuffer、StringBuilder
一、String、StringBuffer、StringBuilder三者的对比String: 不可变的序列;底层使用char[]存储StringBuffer: 可变序列;线程安全的,效率低(synchronized);底层使用char[]存储StringBuilder: 可变序列;线程不安全,效率高;底层使用char[]存储另:StringBuffer是线程安全的(synchronized),而 StringBuilder不是。则StringBuilder效率更高,因为锁的获取和释放会带来原创 2021-02-21 22:06:13 · 134 阅读 · 1 评论 -
Java字符串相关的类:String
一、String的特性1)String是一个final类,代表不可变的字符序列。2)字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。3)String对象的字符内容是存储在一个字符数组value[](final char) 中的。4)String实现了Serializable接口,表示字符串是支持序列化的; 实现了Comparable接口,表示String可以比较大小。public final class String implements ...原创 2021-02-20 17:56:32 · 169 阅读 · 4 评论 -
Java多线程 生产者、消费者问题
死锁:不同的线程分别占用对方需要的同步资源不放弃,即都在等待对方放弃它需要的同步资源,就形成了线程的死锁。出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续执行。...原创 2021-02-16 19:08:36 · 213 阅读 · 2 评论 -
Java 多线程,线程生命周期,线程安全,线程通信
一、基本概念程序:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程:是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程,即生命周期。 如:运行中的QQ,MP3播放器 程序是静态的,进程是动态的 进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 线程:进程可进一步细化为线程,是一个程序内部的一条执行路径。 若一个进程同一时间并行执行多个线程,就是支持...原创 2021-02-06 21:22:30 · 196 阅读 · 1 评论 -
Java 异常
目录一、异常概述二、异常体系结构一、异常概述异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。(语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常事件可分为两类:① Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况,比如:StackOverflowError和OOM。一般不编写针对性的代码进行处理。② Exception:其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例.原创 2021-02-03 21:42:09 · 432 阅读 · 1 评论 -
Java 内部类
目录如何实例化成员内部类的对象如何在成员内部类中区分调用外部类的结构开发中局部内部类的使用如何实例化成员内部类的对象public class InnerClass { public static void main(String[] args) { // 创造Dog实例(静态成员内部类) DomesticAnimal.Dog dog = new DomesticAnimal.Dog(); dog.show(); // 创建Bird实例(非静态的成员内部类)原创 2021-02-03 19:48:23 · 169 阅读 · 0 评论 -
接口的应用:代理模式(Proxy)
一、代理模式概述:代理模式是Java开发中使用较多的一种设计模式。代理设计就是为其他对象提供一种代理以控制对这个对象的访问。应用场景:① 安全代理:屏蔽对真实角色的直接访问,对外暴露的是代理类的信息。② 远程代理:通过代理类处理远程方法调用。③ 延迟加载:先加载轻量级的代理对象,真正需要再加载真实对象。④ 静态代理(静态定义代理类):每针对一套接口定义一个代理类。⑤ 动态代理(动态生成代理类)示例代码如下:public class ProxyTest { pub原创 2021-02-03 16:43:29 · 540 阅读 · 1 评论 -
Java接口
一、定义及使用解释:接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要...则必须能... ”的思想。继承是一个“是不是”的关系,而接口实现则是“能不能”的关系。规则:① 接口中不能定义构造器,即接口不可实例化。② 类可以实现多个接口③ 接口与接口之间可以多继承④ 接口的具体使用,体现了多态性JDK7之前:只能定义全局常量和抽象方法全局常量:public static final抽象方法:public abstractinterface USB原创 2021-02-02 21:39:14 · 150 阅读 · 0 评论 -
抽象类及其匿名子类、抽象方法、模板方法设计模式
抽象类及抽象方法abstract修饰类:抽象类。此类不能实例化,即不能通过new来造对象。问题:造对象是new出来的,但是这里不能造对象了,是不是就说明抽象类的构造方法就没用了呢?答案:当然有用。因为抽象类的子类继承了它,就会用到它的构造器,用于子类实例化时调用实现相关操作。abstract修饰方法:抽象方法。方法没有方法体,只有方法声明。子类继承抽象类中的方法,要想让子类实例化,则可通过 ① 重写抽象类中方法;② 将该类变为抽象类。总结:① abstract不能用来修饰:属性.原创 2021-02-02 18:17:17 · 230 阅读 · 1 评论 -
Java代码块
静态代码块:随着类的加载并执行块内语句且只执行一次。作用:初始化类的信息,如类的静态属性非静态代码块:随着对象的创建而执行,且每创建一个对象就执行一次块内语句。其执行顺序先于构造器( 添加一句:无参构造器为默认存在构造器,且其默认包含语句super() )。作用:可以在创建对象时,给对象的属性等进行初始化赋值操作。其与属性的显式初始化执行先后顺序为:谁在前面谁先执行。public class StaticBlock{ public static void main(String[] a原创 2021-02-01 21:43:13 · 63 阅读 · 1 评论 -
static关键字的使用 && 设计模式之单例设计模式
一、static关键字的使用1. static修饰的属性称为静态变量或类变量需要注意的是:① 静态变量随着类的加载而加载。通过“类 . 静态变量”的方式进行调用;② 静态变量的加载要早于对象的创建;③ 由于类只加载一次,则静态变量在内存中也只会存在一份(存在于方法区的静态域中)。2. static修饰的方法称为静态方法。① 静态方法随着类的加载而加载。通过“类 . 静态方法”的方式调用;② 静态方法中,只能调用静态的方法或属性。因为它们的生命周期是一致的;③ 静态方...原创 2021-02-01 20:19:18 · 231 阅读 · 0 评论 -
基本数据类型、包装类、String三者之间的转化
基本数据类型转包装类:调用包装类的构造方法,可以查看源码查看可以通过哪些构造方法进行转化。Integer int1 = new Integer(123);Integer int2 = new Integer("123");包装类转基本数据类型:调用包装类的xxxValue()方法Integer int1 = new Integer(12);int i1 = int1.intValue();...原创 2021-02-01 15:49:20 · 171 阅读 · 1 评论 -
final 在 java 中有什么作用
final修饰的变量是不能够被改变的。但是这里的“不能够被改变”对于不同的数据类型是有不同的含义。一、final修饰变量final修饰基本数据类型变量和引用数据类型变量。当final修饰的是一个基本数据类型数据时, 这个数据的值在初始化后将不能被改变; 当final修饰的是一个引用类型数据时, 也就是修饰一个对象时, 引用在初始化后将永远指向一个内存地址, 不可修改。但是该内存地址中保存的对象信息, 是可以进行修改的。 final修饰的常量在编译阶段会被放入常量池中。 局部/匿名内部类在使用外部原创 2021-01-31 21:42:34 · 7340 阅读 · 0 评论 -
== 和 equals 的区别是什么
= =的作用: 基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同equals 的作用: 引用类型:默认情况下(继承的Object超类),比较的是地址值注:我们可以根据情况自己重写该方法。一般重写要求比较对象的成员变量值是否相同。...原创 2021-01-31 21:26:32 · 87 阅读 · 0 评论