java学习
文章平均质量分 67
Six Gods
我。。。。。
展开
-
关于 Java 同名类加载顺序问题排查方案
排查背景最近在生产上部署 UDF 时,遇到一个两个环境完全相同,但是一个客户端报错另一个正常的情况,经过多次调试问题终于得以解决,现将解决思路记录一下,希望能对后来者有所帮助。(生产环境不便于截图。。。暂不展示了,各位脑补一下哈哈哈)场景描述由于两个环境的 CLASSPATH 完全相同,jar 包版本一致,但是有一个客户端报错,另一个客户端不报错,根据显示的报错信息(NullPointerException),初步猜测可能是由于加载的类不正确,导致代码报错,(由于是生产环境,没有远程调试环境,各位见谅原创 2021-09-17 18:55:18 · 2201 阅读 · 0 评论 -
JVM 学习四:类加载之双亲委派机制与沙箱安全机制
1 双亲委派机制Java 虚拟机对 Class 文件的加载采用的是按需加载的方式,也就是说:当需要使用该类时才会将它的 Class 文件加载到内存生成 Class 对象,而且加载某个类的 Class 文件时,Java 虚拟机采用的是双亲委派模式,即把请求将由父类处理,它是一种任务委派模式。1.1 工作原理如果一个类加载器收到了类加载的请求,它并不会马上自己去加载,而是把这个请求委托给父...原创 2020-02-01 16:34:45 · 617 阅读 · 0 评论 -
JVM 学习三:类加载器
类加载器1 类加载器的分类JVM 支持两种类型的类加载器:引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类加载器,但是 Java 虚拟机规范却没有这么定义,而是将所有派生于抽象类 ClassLoader 的类加载器都划分为自定义类加载器无论类加载器...原创 2020-01-30 21:19:02 · 190 阅读 · 1 评论 -
JVM 学习二:类加载器子系统
类加载器子系统的作用类加载器子系统负责从文件系统或者网络中加载 Class 文件,Class 文件在文件开关有特定的文件标识ClassLoader 只负责 Class 文件的加载,至于它是否可以运行,则由 Execution Engine(执行引擎)决定加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量...原创 2020-01-27 18:48:25 · 269 阅读 · 0 评论 -
方法引用、构造器引用和数组引用
方法引用若 Lambda 体中的内有方法已经实现了,我们可以使用“方法引用”(可以理解为方法引用是 Lambda 表达式的另外一种表现形式)语法格式主要有以下三种语法格式:对象::实例方法名注意: 实例的方法要与函数式接口的抽象方法的形式一样 --> 返回值的类型和参数列表一致代码示例 1// 例如:Consumer<String> comsumer = (s...原创 2020-01-12 18:53:34 · 311 阅读 · 0 评论 -
Java Lambda 表达式讲解
Lambda 表达式Lambda 表达式的基础语法Java8 中引入了一个新的操作符:-> 该操作符称为箭头操作符或者 Lambda 操作符Lambda 操作符将表达式拆分成两部分:左侧:Lambda 表达式的参数列表右侧: Lambda 表达式的"函数体" --> Lambda 体语法格式 1:无参数,无返回值,且 Lambda 体中只有一条语句() ->...原创 2020-01-11 19:32:28 · 351 阅读 · 0 评论 -
代理模式
代理模式定义:给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用代理模式有三种不同的形式:静态代理、动态代理(JDK代理、接口代理)、Cglib 代理(可以在内存中动态的创建对象,而不需要实现接口,属于动态代理的范畴)目的:1. 通过引入代理对象的方式来间接访问目标对象,防止直接访问目标对象给系统带来的不必要的复杂性通过代理对象对原来的业务进行增强抽象对象:声明了真...原创 2020-01-09 10:03:02 · 295 阅读 · 0 评论 -
java中的生产者消费者模式详解
方式 一: Synchronized方式注:此种方式会造成资源的浪费:利用锁的notifyAll()方法会将所有的线程都唤醒,会造成资源的浪费class Resource { private String name; private int count = 1; private boolean flag = false; public synchronize...原创 2019-04-22 10:27:01 · 1159 阅读 · 0 评论 -
java编码问题详解
import java.io.UnsupportedEncodingException;import java.util.Arrays;/* 编码: 字符变成字节数组 解码: 字节数组变成字符串 String --> byte[] : str.getBytes() byte[] --> String : new String(byt...原创 2019-04-22 08:50:50 · 442 阅读 · 3 评论