java
文章平均质量分 62
罗小辉
这个作者很懒,什么都没留下…
展开
-
java进阶(9)——JVM jar包加载顺序
最近工作当中遇到过好几例,由于项目当中依赖了一些框架,而这些框架无法直接修改时,我就直接本地代码写了一个同名同包路径的类,可以直接覆盖框架的类(本文说的框架类,不包括jdk的),屡试不爽。但是心里不免有疑问,为啥我本地写的同名同路径的类,可以覆盖三方框架的类呢?如果我依赖了jarA和jarB,俩jar包有一个同名同路径的类,那JVM会加载哪一个类呢?听同事说过,他们之前遇到过一同名同路径的类问题,测试环境和生产环境加载jar包的顺序不一样,导致出现线上事故。有这些疑问,心里也比较慌,所以特意花了些时间研究了原创 2021-07-25 11:21:35 · 8096 阅读 · 2 评论 -
java进阶(5)之ReentranctLock/AQS等并发原理解析
PS: AQS全称AbstractQueueSynchronizer,抽象队列同步器,是并发中最核心的一个类了,本篇文章不剖析源码,只用文字和图形表达。AQS解析以及与ReentranctLock之间的关系通过看源码可知,ReentranctLock关于锁的操作,都是基于AQS的。AQS中有两个核心的属性,状态变量state和双向链表head和tail。state用于保存当前是否有锁以及...原创 2020-02-24 16:20:40 · 724 阅读 · 0 评论 -
java 图片url以form-data方式上传
之所以想记录下来,主要是之前对这个不太熟,然后在网上找了大半天也没找到合适的,然后自己慢慢试了出来,比较囧。。。但分享给大家,亲测可用!主要分为两步:1. 将图片url转为二进制字符串;2. 将二进制字符串以及其他字段一并上传。直接上代码:public class HttpClient { public static final OkHttpClient client = ...原创 2019-11-05 17:20:05 · 2375 阅读 · 1 评论 -
ArrayList 原理解析
PS: 前阵子面试,被问到ArrayList的原理,我是一脸懵逼。ArrayList是我们在java语言当中,最常用的一个容器类了。我只知道ArrayList是基于数组的,但是让我说明白ArrayList的原理,当时还真没说出来,所以赶紧补了下,写个帖子(主要讲构造函数,添加对象,删除对象,查询对象)。构造函数ArrayList有三个构造函数:设置初始大小的构造函数;默认缺省初始大小的构...原创 2018-11-27 17:43:30 · 408 阅读 · 0 评论 -
java 强制类型转换
学以致用~ 最近在做网络请求的数据解析时,在考虑是用范型还是强制类型转换,范型是从java1.5出来的,好处是安全简单,可以将运行时错误提前到编译时错误,但是如果用范型的话,我需要每一个网络请求,都写一个类,感觉好麻烦,所以就用的强制类型转换。但又老觉得强制类型转换不太安全,网上都说容易报ClassCastException,所以多了解了下关于强制转换类型的知识。在java中强制类型转换分为基本数原创 2017-04-20 23:57:24 · 8682 阅读 · 0 评论 -
java 范型详解
1.范型长啥样?ArrayList<String> list = new ArrayList<String>();这是我们最常见的了,然而对于很多java开发来说,只知道用java本身自带的一些范型类,而对于自己去创建范型类啥的,不太熟悉。 范型在java当中是一个比较难的基础点,做了好几年安卓开发,现在才真正地去理解,实在惭愧~2. 什么是范型范型是说所操作的数据类型,被指定为一个参数,本质是原创 2017-04-29 14:05:46 · 9948 阅读 · 0 评论 -
java CountDownLatch
正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点:CountDownLatch是什么CountDownLatc转载 2016-08-08 09:40:52 · 1088 阅读 · 0 评论 -
java RSA非对称加密详解
简介RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年首次公布,当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为原创 2016-08-17 17:26:27 · 12908 阅读 · 7 评论 -
java 反射
不管咋样,学java的,了解java反射非常有必要!什么是反射反射定义java官方文档给出了解释: Reflection is the ability of a program to query and modify its state during the execution.意为:反射是在程序运行时,原创 2016-07-28 16:50:30 · 2524 阅读 · 3 评论 -
ClassPool CtClass浅析
最近在看android中的热更新原理,里面有用到javassist来更改.class,因而又恶补了下ClassPool和CtClass的相关使用。虽然android中现在热更新是用groovy写的,但是groovy和java语法很类似,所以先弄java版的~什么是javassistJavassist是一个处理Java字节码的类库。Java字节码存储在名叫class file的二进制文件里。每个cla原创 2016-07-22 16:36:30 · 17350 阅读 · 6 评论