![](https://img-blog.csdnimg.cn/20200818172844680.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
01、java基础
不积硅步,无以至千里
小杰瑞_
菜鸟程序员
展开
-
基于JDK的动态代理实现
前言必须具备反射相关知识,Spring AOP、IOC都是基于动态代理实现的,如果要学习Spring源码最好学习下动态代理。JDK 动态代理代理设计模式的原理:使用一个代理将对象包装起来,然后使用代理对象取代原始对象。任何对原始对象的调用都要经过代理对象代理。由代理对象决定是否以及何时将方法调用转到原对象上。动态代理动态代理是指客户通过代理类来调用其他对象的方法,并且是在程序运行时根...原创 2020-03-27 14:30:30 · 312 阅读 · 0 评论 -
带标签的break和continue的使用
break关键字用于结束当前循环举例说明:package flowcontrolstatement;/** * break 跳出当前循环(if不是循环) * continue 跳出当次循环 * @author Jerry * @create 2019-09-01 11:18 */public class BreakContinue{ public static void...原创 2019-09-01 12:04:04 · 202 阅读 · 0 评论 -
ArrayList源码分析
List接口的特点有序、可重复“动态数组” 替换原生数组JDK api 中常用的List接口的实现类有 ArrayList 、LinkedList 、Vector相同点: 都实现了List接口,存储有序、可重复的数据不同点:ArrayList 是List接口的主要实现类 , 线程不安全,效率高。底层用Object[] elementData存储数据LinkedList 对...原创 2019-09-02 19:41:28 · 56 阅读 · 0 评论 -
String、StringBuffer、StringBuilder的区别?
区别String (JDK1.0) : 不可变字符序列 底层使用char[]存储StringBuffer (JDK1.0) : 可变字符序列、效率低、线程安全 底层使用char[]存储StringBuilder (JDK1.5) : 可变字符序列、效率好、线程不安全 底层使用char[]存储注意:作为参数传递的话,方法内部String不会改变其值,StringBuffer和String...原创 2019-09-03 20:59:43 · 124 阅读 · 0 评论 -
Java常用类之时间API
JDK8之前的时间API1. java.lang.System类中的currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差 @Test public void test01(){ long currentTimeMillis = System.currentTimeMillis(); //...原创 2019-09-04 21:48:29 · 204 阅读 · 0 评论