作者:admin

人生从四十岁才算真正开始!--莫斯科不相信眼泪 真理:在适当的时候,给予你绝望防止你狂妄自大。 --钢之炼金师 哪怕很常见、很熟悉的事情;也不能保证没有错误发生。
2021-12-06 0 By admin

Lambda表达式语法的使用举例

Lambda 表达式:在 Java 8 语言中引入的一种新的语法元素和操作符。这个操作符为 -> ,该操作符被称为 Lambda 操作符或箭头操作符。 (parameters) -> expression 或 (parameters) ->{ statements; } 它将 La…

2021-12-03 0 By admin

反射的应用:动态代理

使用一个代理将对象包装起来, 然后用该代理对象取代原始对象。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。 一、引入说明:静态代理 结构型-代理模式介绍 之前为大家讲解过代理机制的操作,属于静态代理,特征是代理类和目标对象的类都是在编译期间确定下来,不利于程序的…

2021-12-02 0 By admin

获取运行时类的完整结构

通过反射机制,我们可以获取到运行时类的完整内部结构,包括: 属性结构:权限修饰符、数据类型、变量名和注解 方法结构:权限修饰符、返回值类型、方法名(参数类型1 形参名1,…)、抛出的异常和注解 构造器:类无参构造器和有参构造器 父类及父类的泛型 接口、所在包、注解等 一、提供一个丰富的实…

2021-12-02 0 By admin

通过反射创建运行时类对象

一、通过反射,创建运行时类的对象 Class 类可以通过 newInstance() 方法创建一个运行时类的对象。newInstance():调用此方法,创建对应的运行时类的对象。此方法内部调用了运行时类的空参的构造器。 1.1、newInstance()使用条件 要想此方法正常的创建运行时类的对象…

2021-12-02 0 By admin

类的加载与ClassLoader的理解

一、类的加载过程 当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过如下三个步骤来对该类进行初始化。 1.1、类的加载 将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的…

2021-12-01 0 By admin

Java 反射机制

Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。程序启动时在加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整…

2021-11-19 0 By admin

线程不安全的 SimpleDateFormat

SimpleDateFormat 是 Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是它是线程不安全的。多线程公用一个 SimpleDateFormat实例 对日期进行解析或者格式化会导致程序出错,本节就讨论下它为何是线程不安全的,以及如何避免。 一、SimpleDateF…

2021-11-17 0 By admin

ThreadPoolExecutor 创建线程池执行逻辑

线程池是一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。 一、ThreadPoolExecutor线程池核心参数 …

2021-11-04 0 By admin

Java 程序设计语言总是采用按值调用

方法可以修改传递引用所对应的变量值 , 而不能修改传递值调用所对应的变量值。 按值调用(call by value)表示方法接收的是调用者提供的值。 按引用调用( call by reference )表示方法接收的是调用者提供的变量地址。 Java 程序设计语言总是采用按值调用。也就是说,方法得到…