Java
文章平均质量分 81
无心六神通
金融科技系统架构师
展开
-
Java-类加载-ClassLoder-源码-总结
/ 如果上述步骤找到了类,并且 resolve 标记为 true,则在目标 Class 对象上调用 resolveClass(Class) 方法,进入“连接(Linking)”阶段(详见官方文档)入口类在使用过程中如果使用到其它类,会根据类路径查找类文件并逐一加载。因此, jar 包中的类、及类路径中指定的类并不是一次性全部加载到 JVM 内存,而是使用到时才。// 如果父加载器都加载不到,则调用自身的 findClass 方法查找类。// 如果父加载器不为 null,则委托父加载器去加载类。原创 2024-02-18 17:33:06 · 760 阅读 · 0 评论 -
Java-volatile-synchronized-原子性-代码验证
代码多跑几次,输出结果19330。原创 2024-02-18 05:23:46 · 372 阅读 · 0 评论 -
Java-缓存-内存缓存Caffeine基本使用
Caffeine作为当下本地缓存的王者被大量的应用再实际的项目中,可以有效的提高服务吞吐率、qps,降低rt本文将简单介绍下Caffeine的使用姿势。原创 2024-02-17 12:29:46 · 940 阅读 · 0 评论 -
Java - Object.wait - 虚假唤醒 - volatile - 可见性验证 - 代码示例
在计算机领域,当一个线程在等待条件变量时唤醒,但条件并没有满足时,就会发生虚假唤醒。它被称为虚假是因为线程似乎没有任何原因就被唤醒了。然而,虚假唤醒通常是因为在条件变量被发出信号和等待线程最终运行之间的时间内,另一个线程运行并改变了条件,导致了竞争条件。如果线程第二次被唤醒,它将输掉竞争,从而导致虚假唤醒。原创 2024-02-17 11:54:00 · 355 阅读 · 0 评论 -
Java-Object-wait-notify-notifyAll
使当前线程等待,直到另一个线程调用该对象的notify()方法或notifyAll()方法。换句话说,该方法的行为就像简单地调用wait(0)。当前线程必须拥有该对象的监视器。线程释放该监视器的所有权,并等待,直到另一个线程通过调用notify方法或notifyAll方法来通知等待该对象监视器的线程唤醒。。和都是可能发生,因此应当在循环中使用该方法:while (<条件不成立>)obj.wait();... //根据条件执行适当的操作此方法只能由拥有该对象监视器的线程调用。原创 2024-02-15 10:32:31 · 973 阅读 · 0 评论 -
类加载的三种异常-ClassNotFoundException - ExceptionInInitializerError - NoClassDefFoundError - 代码示例
【代码】类加载的三种异常-ClassNotFoundException - ExceptionInInitializerError - NoClassDefFoundError - 代码示例。原创 2024-02-15 10:00:06 · 302 阅读 · 0 评论 -
Java-代理模式-详解
在 Java 动态代理机制中接口和Proxy类是核心。Proxy,这个方法主要用来生成一个代理对象。Class<?......loader:类加载器,用于加载代理对象。interfaces: 被代理类实现的一些接口;h: 实现了接口的对象;要实现动态代理的话,还必须需要实现来自定义处理逻辑。当我们的动态代理对象调用一个方法时,这个方法的调用就会被转发到实现接口类的invoke方法来调用。/*** 当你使用代理对象调用方法的时候实际会调用到这个方法*/invoke()proxy。原创 2024-02-07 16:15:26 · 690 阅读 · 0 评论 -
Java-语法糖-详解
语法糖(Syntactic Sugar)也称糖衣语法,是英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。有意思的是,在编程领域,除了语法糖,还有语法盐和语法糖精的说法,篇幅有限这里不做扩展了。我们所熟知的编程语言中几乎都有语法糖。作者认为,语法糖的多少是评判一个语言够不够牛逼的标准之一。原创 2024-02-07 16:13:32 · 795 阅读 · 0 评论 -
Java-基础-常见面试题-总结
上篇基础概念与常识# Java 语言有哪些特点?简单易学; 面向对象(封装,继承,多态); 平台无关性( Java 虚拟机实现平台无关性); 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持); 可靠性; 安全性; 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便); 编译与解释并存;🐛 修正(参见: issue#54原创 2024-02-07 16:09:49 · 826 阅读 · 0 评论 -
Java8-新特性-实战
我们梳理总结的 java 8 新特性有LambdaStreamOptional。原创 2024-02-07 16:02:52 · 893 阅读 · 0 评论 -
Java8-指南-中文翻译
Clock 类提供了访问当前日期和时间的方法,Clock 是时区敏感的,可以用来取代。原创 2024-02-07 15:59:53 · 781 阅读 · 0 评论 -
Java-Wrapper-包装器-JDBC-代理
所有方法接口方法抽象方法boolean> iface)如果对象实现了接口inface,或者直接或间接地为一个iface对象的包装器,则返回true。<T> T返回一个实现接口iface的对象,以允许访问非标准方法,或代理对象没有暴露的标准方法。原创 2024-02-07 15:58:29 · 896 阅读 · 0 评论