java基础
文章平均质量分 92
颜颜颜颜颜越
这个作者很懒,什么都没留下…
展开
-
JAVA代理模式详解
代理模式代理模式是最常用的java设计模式 特征是代理类和委托类有相同的接口 代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。简单的说就是,我们在访问实际对象时,是通过代理对象来访问的,代理模式就是在访问实际对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途静态代理静态代理:由程序员创建或特定原创 2021-09-23 14:08:05 · 1127 阅读 · 0 评论 -
抽象类和接口的区别
抽象类1.抽象类中可以构造方法2.抽象类中可以存在普通属性,方法,静态属性和方法。3.抽象类中可以存在抽象方法。4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。6,抽象类不能被实例化,抽象类和抽象方法必须被abstract修饰关键字使用注意:抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。原创 2020-09-21 11:47:22 · 170 阅读 · 0 评论 -
重载和重写的区别
重载和重写都是多态的体现,不过重载是体现的编译时的多态性,重写体现的运行时的多态性。重载在一个类中,重写发生在子类和父类。重载可以抛出新的异常。重写能抛出任何非强制性异常,无论被重写的方法是否抛出异常。但是不能抛出新的强制性异常,或者比重写方法声明的更广泛的强制性异常。重载可以有不同的访问修饰符,但是重写的方法不能比父类的访问权限低。重载要求参数列表不同,重写要求参数列表必须相同。构造方法不能被重写,能被重载,声明为final的方法不能被重写可以被重载,声明为static的方法不能被重写可以被重载原创 2020-09-21 11:35:58 · 475 阅读 · 0 评论 -
静态变量和实例变量的区别
静态变量是被static关键字修饰的变量,存放在方法区中,可以在静态范围内调用,它属于类不属于对象,不管创建多少个对象,静态变量在内存中有且只有一个拷贝。实例变量,必须依附于某一实例,需要先创建好对象,然后通过对象才能访问到实例变量,实例变量存放在堆中。...原创 2020-09-21 11:21:47 · 150 阅读 · 1 评论 -
==和equals的区别
根本上的区别是==是运算符,而equals()是一个方法。==如果比较的是基本数据类型,比较的就是他们的值,如果是比较的引用数据类型,比较的就是他们的值。在Object类中 equals() 方法是使用的 == 比较的是地址,但是在引用数据类型中都重写了equals()方法比较的是他们的值...原创 2020-09-21 11:18:59 · 186 阅读 · 0 评论 -
Java异常
error和exception的区别两者都继承与Throwable类不同的是error是和虚拟机有关 比如系统崩溃 栈溢出 虚拟机错误 内存空间不足等问题,这种错误程序无法自动恢复,需要关闭程序exception是表示程序可以处理的异常 程序可以捕获和处理异常来保证程序的正常运行Java的异常异常的根类是Throwable下面有两个子类 error 和 exception error是程序无法自己处理的问题 exception是程序可以处理恢复的问题简单来说Error是程序自身的问题程原创 2020-09-10 09:56:55 · 7454 阅读 · 1 评论 -
Java集合
Java中的集合分类ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentLinkedDeque集合位 于 java.util.concurrent 包 下java中含有普通集合 同步集合(线程安全) 并发集合普通集合的性能最高 但是不能保证线程安全同步集合就是在方法中加入了synchronized锁来保证线程安全但是牺牲了性能并发集合通过复杂的策略保证了多线程的安全有提高了并发时的效率扩展ConcurrentHashMap 是线程安全的 H原创 2020-09-09 16:09:09 · 103 阅读 · 0 评论 -
Java 四种访问修饰符详解
访问修饰符权限PS 红色是不可访问private在当前类中 main方法之外可以借助名称使用 在main方法中需要实例化对象使用我们想要在别的类中调用私有成员 就需要建立一个公有的方法 在公有方法中使用这个私有成员 也就是面向对象中的封装。在继承中,私有成员无法被继承,子类无法使用父类的私有成员。public:在当前类中 main方法之外可以借助名称使用 在main方法中需要实例化对象使用在其他任何地方 都可以实例化对象进行访问在继承中,被public所修饰的成员能被所有的子类继承下来原创 2020-09-07 14:18:07 · 28974 阅读 · 1 评论 -
final、finally、finalize 的区别
final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。finally:异常处理语句结构的一部分,表示总是执行。finalize:Object 类的一个方法,在垃圾回收器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。该方法更像是一个对象生命周期的临终方法,当该方法被 系统调用则代表该对象即将“死亡”,但是需要注意的是,我们主动行为上去调用该方法并不会导致该对 象“死 亡”,这是一个被动的方法(其实就是回调方法)原创 2020-08-19 21:28:56 · 247 阅读 · 0 评论 -
error 和 exception 的区别
Error 类和 Exception 类的父类都是 Throwable 类,他们的区别如下。Error 类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。Exception 类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。Exception 类又分为运行时异常(Runtime Exception)和受原创 2020-08-19 21:16:18 · 201 阅读 · 1 评论 -
Java异常分类
(1)按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫 CheckedException 和运行时异常 (也叫非强制性异常)也叫 RuntimeException。只有 java 语言提供了 Checked 异常,Java 认为 Checked 异常都是可以被处理的异常,所以 Java 程序必须显式处理 Checked 异常。如果程序没有处理 Checked 异常,该程序在编译时就会发生错误无法编译。这体现了 Java 的设计哲学:没有完善错误处理的 代码根本没有机会被执行。对 Checked原创 2020-08-19 21:14:35 · 111 阅读 · 1 评论