java
文章平均质量分 78
zhgeliang
成功不必在我,而功力比不唐捐!
展开
-
WeakReference 学习和使用
前言: 看到篇帖子, 国外一个技术面试官在面试senior java developer的时候, 问到一个weak reference相关的问题. 他没有期望有人能够完整解释清楚weak reference是什么, 怎么用, 只是期望有人能够提到这个concept和java的GC相关. 很可惜的是, 20多个拥有5年以上java开发经验的面试者中, 只有两人知道weak reference的存在, 而其中只有一人实际用到过他. 无疑, 在interviewer眼中, 对于weak reference的理解和转载 2022-02-08 17:23:59 · 1344 阅读 · 0 评论 -
java 父类中的this_关于子类和父类中的this的用法
在看毕向东java视频的时候,多态这一章讲到了一段代码:public class Demo {undefinedpublic static void main(String[] args) {undefinedFu f = new Zi();f.show();}}class Fu {undefinedint num = 1;void show() {undefinedSystem.out.println(this.num);}}class Zi exten转载 2022-01-28 14:01:05 · 598 阅读 · 0 评论 -
AndroidRuntime java.lang.AbstractMethodError解决方案
AndroidRuntime: java.lang.AbstractMethodError解决方案背景介绍今天同事尝试编译apk的release版本,编译成功,但是运行时,却爆出这个运行时异常,导致crash。排查过程定位出错位置通过查看异常的堆栈,爆出异常的方法是一个我们引入的jar包里,而这jar包引用方法是compileOnly,而compileOnly依赖的用途编译时用于构建项目,但是运行时不需要在编译时依赖它的api,但是它API的真正实现是在运行时环境我们具体看一下这个Abs转载 2022-01-27 16:20:56 · 1058 阅读 · 1 评论 -
代理模式之详谈动态代理模式(Spring的AOP实现)
java动态代理实现与原理详细分析1.代理模式关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,..转载 2021-06-30 15:14:49 · 173 阅读 · 0 评论 -
ByteBuffer常用方法详解
缓冲区(Buffer)缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区:使用缓冲区有这么两个好处:1、减少实际的物理读写次数2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数举个简单的例子,比如A地有1w块砖要搬到B地由于没有工具(缓冲区),我们一次只能搬一本,那么就要搬1w次(实际读写次数)如果A,B两地距离很远的话(IO性能消耗),那么性能消耗将会很.转载 2021-05-10 14:57:19 · 987 阅读 · 0 评论 -
Pattern和Matcher详解(字符串匹配和字节码)
一:起因(1)Java里面进行字符串操作,第一个想到的是String类 和 StringBuilder类 内含replace() 、replaceAll() 、split()、matches()等方法 —— 其实String类里面的 public String[] split(String regex, int limit) 和 matches()方法,调用是Pattern.compile().matches()方法 ----- 源码为: return Patter...转载 2021-04-19 18:05:01 · 958 阅读 · 0 评论 -
classpath和jar
在Java中,我们经常听到classpath这个东西。网上有很多关于“如何设置classpath”的文章,但大部分设置都不靠谱。到底什么是classpath?classpath是JVM用到的一个环境变量,它用来指示JVM如何搜索class。因为Java是编译型语言,源码文件是.java,而编译后的.class文件才是真正可以被JVM执行的字节码。因此,JVM需要知道,如果要加载一个abc.xyz.Hello的类,应该去哪搜索对应的Hello.class文件。所以,classpath就是一组目原创 2021-02-24 17:53:52 · 226 阅读 · 0 评论