摘要:
装饰模式可以在不改变原来类中代码的基础上,增强类中的方法 装饰类LDHWrapper和被装饰类LDH必须实现同个接口Star 装饰类中要定义属性为:被装饰类对象,同时定义构造方法 重写接口Star中的方法,如果需要增强方法,就重写逻辑 public interface Star { void sin 阅读全文
摘要:
反射 反射的核心就是拿到了.java编译后的.class文件。通过一系列的API,可以拿到该类中的成员:构造器、属性、方法等。 注解 注解,可以告诉编译器或者JVM做一些事情。比如说重写的@Override注解,可以让编译器检查重写是否正确。 注解的解析,这个就也用到了反射的知识。注解加在了哪个成员 阅读全文
摘要:
静态、实例代码块 静态代码块,在类加载之前会加载一次,可以用来初始化静态资源 实例代码块,每次调用构造器初始化对象的时候,都要执行一次。其实质是放到构造器方法中执行。可以用来初始化对象。 public class block { static { System.out.println("静态代码块" 阅读全文
摘要:
抽象类 抽象类和普通类没什么大的差异,抽象类不能被实例化,必须用abstarct修饰,权限修饰符只能是public/protected类型;如果不写权限修饰符,则它默认就是public类型的。 抽象类必须被继承才能实例化,所以它不能被final修饰。因为被final修饰的类不能被继承,被final修 阅读全文
摘要:
泛型可以用于接口、类、方法上。还有泛型通配符这个概念 泛型的好处:可以在编译时检查 1.用于方法中,指定该方法中的形参的类型。 语法:修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ } 注意:方法上定义了是什么 泛型变量 ,后面就只能用什么 泛型变量。 package com.itheim 阅读全文
摘要:
package com.itheima.test; /** * @author Pzi * @create 2022-09-26 16:23 */ public class A { private String name; private String pwd; public A() { } pub 阅读全文
摘要:
Java异常的体系结构 根类Throwable,其子类Error和Excepion Excepion分为运行时异常RuntimeException(也叫非检查型异常),和编译时Exception异常(也叫检查型异常)。编译时异常必须处理,而运行时异常可以不处理。 运行时异常可以不处理,但是程序运行时 阅读全文
摘要:
最近看多线程比较多,对于volatile,syn,CAS,JMM模型(主内存,工作内存)这些概念有些理解。volatile,syn工作机制等。 以及对于多线程中可见性,原子性的理解。 随着对这些基础的掌握和理解,我觉得自己对于多线程方面的能力有一定的提升。 可见性的问题上,volatile是怎么解决 阅读全文
摘要:
多线程原子性的理解:一个操作要么全部执行完毕,不会受到干扰而被中断;要么全都不执行 对于多线程中操作共享变量的操作,要保证它的原子性。 以下是对一个非原子性操作的分析: 在一个类中有共享变量count,开启一百个线程对其进行count++操作,每个线程对count加一百次。 count变量是属于共享 阅读全文
摘要:
老是把Java中权限修饰符给忘记,写一个博客加深印象吧 权限分为四个作用域:当前类,同一个包,其他包的子类,其他包的类。 首先要知道包的概念,Java中一个包是指一个package下的所有文件。 protected适用于修饰成员变量,也就是类中的方法和属性,不能用于修饰类。子类B继承了父类A,如果父 阅读全文