自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

转载 AOP切面

AOPAOPJDK动态代理三级目录AOP底层使用到动态代理有两种情况的动态代理第一种,有接口情况,使用JDK动态代理—创建接口实现类代理对象,通过代理对象增强类的方法第二种,无接口情况,使用CGLIB动态代理—创建当前类子类的代理对象,通过代理对象增强类的方法JDK动态代理使用Proxy类里面的方法创建代理对象调用newProxyInstance方法(第一个参数)类加载器(第二个参数)增强方法所在的类,这个类实现的接口,支持多个接口(第三个参数)实现InvocationHandl

2021-05-30 15:09:45 99

转载 IOC容器

IOC容器底层原理接口(BearFactory、ApplicationContext)操作Bean管理xml注解控制反转,把对象创建和对象之间的调用过程都交给Spring进行管理,降低代码之间的耦合。底层原理xml解析、对象工厂、反射xml配置文件,配置创建的对象创建工厂类,通过xml解析获得类的class属性通过forName获取Class对象通过Class的newInstance进而创建xml配置的对象接口(BearFactory、ApplicationContext)二者功能相似

2021-05-29 20:50:39 91

转载 Spring JdbcTemplate

Spring JdbcTemplateJdbcTemplate基本使用JdbcTemplate基本使用

2021-05-22 10:33:02 87

原创 Vector中remove方法的注意事项

如果是在for循环中调用remove方法,则会报数组越界错误,可以将for循环改为迭代器使用

2021-05-17 16:07:23 306

原创 线程同步机制

线程同步机制线程同步Synchronized同步原理三级目录线程同步在多线程编程,一些敏感数据不允许被多个线程同事访问,此时就使用同步访问技术,保证数据在任何同一时刻,最多有一个线程访问,以保证数据的完整性。线程同步,即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他线程才能对 该内存地址进行操作Synchronized同步代码块Synchronized(对象){//得到对象的锁,才能操作同步代码 //需要被同步代码;}Synch

2021-05-15 19:19:59 158

原创 类加载过程

类加载类加载过程加载(JVM运行)链接(JVM运行)初始化类加载后内存布局情况类加载过程Java源码经过javac编译成字节码文件,Java运行然后类加载类加载的三个阶段加载(Loading)链接(Linking):①验证(Verification)②准备(Preparation)③解析(Resolution)初始化(Initialization)加载(JVM运行)将类的class文件读入内存,并为之创建一个java.lang.Class对象。JVM在该阶段的主要目的是将字节码从不同的

2021-05-15 15:51:46 59

原创 线程基础

线程线程的创建方法Thread机制Runnable线程的创建方法继承Thread类,重写run方法实现Runnable接口,重写run方法Thread当一个类继承了Thread类,该类就可以当做线程使用我们会重写run方法,写上自己的业务代码run Thread 类重写了 Runnable 接口的run方法@Overridepublic void run(){ if(target!=null){ target.run(); }}机制进程启动后会创建一个main线程。

2021-05-15 10:49:58 113

原创 Class类

ClassClass常用方法获取Class对象类加载器类加载类加载时机:Class也是类,因此也继承Object类Class类对象并不是new出来的,而是系统创建的对于某个类的Class类对象,在内存中只有一份,因为类只加载一次每个类的实例都会记得自己是由哪个Class实力所生成通过Class可以完整地得到一个类的完整结构,通过一系列APIClass对象是存放在堆中的类的字节码二进制数据,是存放在方法区的,有的地方成为类的元数据(包括方法代码,变量名,方法名,访问权限等)2:(一)传统n

2021-05-12 09:31:08 216

原创 反射

反射介绍反射机制三级目录介绍加载类:返回Class类型的对象clsClass csl=Class.forName(classfullpath)//classfullpath是路径全包名通过cls得到加载类classfullpath的对象实例。Object o=cls.newInstance();//运行类型为对象类型通过cls得到你的加载的类classfullpathd的methodName都方法对象。即:在反射中,可以把方法视为对象Method method=cls.getM

2021-05-12 08:43:18 59

原创 Collections 工具类

Collections 工具类Collections介绍排序操作(均为static方法)查找替换(均为static方法)Collections介绍Collections是一个操作Set、List和Map等集合的工具类提供了一系列静态方法对集合元素进行排序、查询和修改等操作排序操作(均为static方法)reverse(List):反转List中元素shuffile(List):对List元素进行随机排序sort(List):根据元素的自然排序对指定的List集合元素按升序排序sort

2021-05-10 15:25:04 63

原创 TreeSet

TreeSet、TreeMapTreeSet底层TreeMap底层TreeSet底层构造器把传入的比较器对象赋给了TreeSet的底层的TreeMap都属性this.compratorpublic TreeMap(Comparator<? super K> comparator){ this.comparator=comparator;}在调用treeSet.add(“Tom”)时,底层会执行if(cpr!=null){//cpr就是匿名内部类(对象) do{ p

2021-05-10 15:13:17 51

原创 HashMap、HashTable、Properties

HashMap、HashTable、PropertiesHashMap介绍底层HashTable介绍底层PropertiesHashMap介绍(k,v)是一个Ndoe实现了Map.Entry<K,V>JDK7.0:HashMap底层为[数组+链表]JDK8.0:HashMap底层为[数组+链表+红黑树]底层源码与HashSet基本相同底层创建table核心 Node<K,V>[] newTab=(Node<K,V>[])new Node[n

2021-05-10 15:06:11 92

原创 Map

MapMap家族Map简介源码MapFor(遍历)通过entrySet获取k-v增强for迭代器Map家族#mermaid-svg-xn5Si2mNOSYRzu3t .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-xn5Si2mNOSYRzu3t .label text{fill:#333}#mermaid-

2021-05-09 20:38:45 225

原创 Set

Set介绍HashSet基本介绍add()底层源码LinkedHashSet基本介绍底层源码介绍1、无序、无索引2、不允许重复,因此最多只能有一个nullHashSet基本介绍1、实现Set接口2、本质上是HashMap:public HashSet(){ map=new HashMap<>();}3、可存null值,但最多只能有一个4、无序,取决于hash之后,再确定索引的结果5、不允许重复add()底层1、第一次添加时,table数组扩容到16,临界值(thr

2021-05-09 16:53:45 62

原创 List

List介绍ArrayList介绍add()方法源码ArrayList底层介绍1、元素有序(添加与取出顺序一致)、且可以重复2、支持索引ArrayList介绍1、可以加入一个或多个null2、由数据实现数据存储3、基本等同于Vector,但是ArrayList是县城不安全的(执行效率高),在多线程情况下,不建议使用ArrayListadd()方法源码public boolean add(E e){ensureCapacityInternal(size+1);elementData[s

2021-05-09 15:05:38 440 6

原创 Collection遍历

Collection遍历Iterator(迭代器)性质执行原理注意增强forIterator(迭代器)性质1、所有实现Collection接口的集合类都有一个iterator()方法,用以返回一个实现Iterator接口的对象,即可以返回一个迭代器2、Iterator仅用于遍历集合,Iterator本身并不存放对象执行原理ArrayList coll=new ArrayList();Iterator iterator=coll.iterator//得到迭代器//hasNext();判断是否还

2021-05-09 13:36:36 88

原创 集合

集合集合性质单列集合双列集合集合性质1、动态保存2、多个操作对象的方法:add,remove,set,get3、简洁单列集合#mermaid-svg-8uZxB7Vpb7OoofKc .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-8uZxB7Vpb7OoofKc .label text{fill:#

2021-05-09 12:59:35 52

原创 数组

数组数组性质数组的扩容数组性质1、长度必须指定,不能更改。2、保存的必须为同一类型的元素3、增加/删除的代码比较麻烦。数组的扩容Person[] pers=new Person[1];pers[0]=new Person();//增加Person对象Person[] pers2=new Person[pers.length+1]//新建数组for(){}//拷贝pers数据的元素到pers2中pers2[pers2.length-1]=new Person();...

2021-05-09 12:50:27 67

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除