
java
文章平均质量分 54
后台开发者Ethan
李大健一个想从事大数据的java开发者、go初级学习者
展开
-
源码工具类
MethodIntrospector找到表有目标注解的方法annotatedMethods = MethodIntrospector.selectMethods(targetType, (MethodIntrospector.MetadataLookup<EventListener>) method -> AnnotatedElementUtils.findMergedAnnotation(method, EventListener.class)...原创 2021-11-03 17:25:22 · 151 阅读 · 0 评论 -
MyAdvisor
{ return false; } } }; } @Override public MethodMatcher getMethodMatcher() { return new MethodMatcher() { .原创 2021-10-11 18:28:08 · 171 阅读 · 0 评论 -
Lambda表达式
方法引用:原创 2021-09-30 11:23:27 · 94 阅读 · 0 评论 -
java泛型
泛型的继承@Datapublic class MainType<T> { T param; T param2; List<String> strings; public T getMyParam(){ return param; } static public class SubType1 extends MainType<String>{} static public cla...原创 2021-06-07 11:03:07 · 122 阅读 · 0 评论 -
方法参数Parameter获取参数信息
public void test1(UpdateContractInfo updateContractInfo){ }public void test(List<String> args){}private static void fa() { List<String> dataStr = new ArrayList<>(); dataStr.add("abc"); ReflectionUtils.do.原创 2021-09-15 18:12:37 · 2484 阅读 · 0 评论 -
Cglib代理底层原理
Demo:public static void main(String[] args) throws Exception { System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY, "D:\\tmp"); Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(Student.class); enhanc原创 2021-06-21 15:10:13 · 165 阅读 · 0 评论 -
arthas
session 当前会话 reset 重置增强类,将被Arthas增强过得类全部还原,Arthas 服务器端关闭会重置所有增强过得类 keymapthread -b 查询死锁的进程thread -status WAITINGvmoptionjad --source-only package.class 只显示源码反编译指定的函数 jad class method...原创 2021-09-01 00:30:18 · 101 阅读 · 0 评论 -
javac-java
原创 2021-08-16 12:15:15 · 108 阅读 · 0 评论 -
JDK动态代理原理
JDK 动态代理:通过Proxy类中内部类 ProxyClassFactory生成的代理对象生成包号,和自增num,每生成一个代理对象就会加 num后缀,直接生成一个字节码数组文件,然后defineClass,生成class对象newProxyInstanceJDK 动态代理: 定义接口: public interface Star{String sing(String name);String dance(S...原创 2021-08-10 16:34:00 · 77 阅读 · 0 评论 -
ali-java-多线程
java多线程 Thread的原理:private native void start0(); start0 是一个native 方法 ,jvm虚拟机在不同的操作系统上(windows,linux,unix)都是不同的算法来实现的。A native method is a Java method whose implementation is provided by non-java codeJNI技术Java不在乎Native方法是用什么语言实现的,只要一来语言能和底层打...原创 2021-08-10 16:33:32 · 124 阅读 · 0 评论 -
spring方法级别数据校验-MethodValidationPostProcessor原理
一、向容器中注入BeanMethodValidationPostProcessor@Beanpublic MethodValidationPostProcessor methodValidationPostProcessor() { return new MethodValidationPostProcessor();}二、MethodValidationPostProcessor 创建advisor,对应的是AnnotationMatchingPointcut,这个切点用来匹配Va.原创 2021-08-10 15:44:09 · 2150 阅读 · 0 评论 -
java-beans
BeanInfo Introspector.getBeanInfoBeanDescriptor PropertyDescriptor[] MethodDescriptor[]PropertyDescriptor 属性编辑器 通过beanInfo获取 描述javabean的属性以及提供暴露出可访问的方法。PropertyChangeListener PropertyEditor ==》 PropertyEditorSupportPropertyEdito...原创 2021-08-08 14:08:03 · 176 阅读 · 0 评论 -
jdk-虚拟机
jdk-虚拟机从java.exe 开始讲投java类加载运行全过程jdk远吗级别剖析jvm核心类加载器jdk源码级别剖析类加载双亲委派机制手写自定义类加载器打破双亲委派机制tomcat了加载机制深度剖析手写tomcat类加载器实现多个版本代码共存隔离classLoad.loadClass(.class) ==> 类 如果加载在虚拟机上的验证 字节码文件是否正确,有规范javap -v Math.class ,下面就是 二进制的另...原创 2021-08-05 22:49:35 · 220 阅读 · 0 评论 -
泛型总结下
泛型原理:编译字节码后,泛型被擦除替换为限定类型,如是无限定类型参数则为Object。T 类型变量,T ==》Object T extends Number ==> Number泛型方法类型推断:1:可以指定泛型类型,也可不指定2:不指定,泛型类型为方法几个参数类型共同父类的最小级public class Test { public static void main(String[] args) { /**不指定泛型的时候*/ ...原创 2021-07-27 18:43:52 · 186 阅读 · 0 评论 -
自定义简单流程引擎
需求:我们在开发过程中会遇到下面这类需求,类似一张流程图,根据条件不断进行判断,命中,再进行下一轮判断。实现:在项目开发过程中 ,完全可以根据每个节点进行if else 判断进行流程跳转,但是这样比较繁琐,且不符合开闭原则根据上面的需求知晓以下几点流程跳转的三要素:条件、动作、下一步整个判断的流程都是一次性,因此直接是内存判断,无需借助数据库等记录中间状态。利用Spel表达式 进行进行条件判断:Demo:@Datapublic class RuleV {...原创 2021-07-19 14:36:13 · 1000 阅读 · 0 评论 -
深浅拷贝,傻傻分不清
Cloneable接口:jvm来看,Cloneable是一个标记接口没有什么方法签名,而clone方法是定义在Object方法中。如果类没有实现Cloneable接口,直接调用Object的clone方法会抛出异常Object提供clone方法是浅拷贝实现Clone深拷贝,可以在clone方法中 直接new 生成一个新的对象,或者先clone方法出一个对象,嵌套的clone对象的属性,重复赋值给新拷贝出来的对象的属性。另外一种方法:通过流的方法序列化方式@Override原创 2021-07-03 14:29:11 · 65 阅读 · 0 评论 -
+ 和 StringBuilder 原理
字符串拼接的问题:+ 和 StringBuilder编译的实现,做了优化,+ 会 new StringBuider 进行优化,然后进行append。多次进行了new StringBuilder 然后append,效率不高,尽量自己定义StringBuilder比较好。String total = ""; // 生成空字符串对象 String "" total = "ab" + "cd"; // 生成abcd字符串对象String "abcd" t...原创 2021-07-03 13:51:47 · 132 阅读 · 0 评论