JAVA知识点总结
对于理论知识进行总结
薛定谔的猫粮_
坚持每日一更
展开
-
浅析MyBatis的动态代理原理
前言一直以来都在使用MyBatis做持久化框架,也知道当我们定义XXXMapper接口类并利用它来做CRUD操作时,Mybatis是利用了动态代理的技术帮我们生成代理类。那么动态代理内部的实现细节到底是怎么的呀?XXXMapper.java类和XXXMapper.xml到底是如何关联起来的呀?本篇文章就来详细剖析下MyBatis的动态代理的具体实现机制。MyBatis的核心组件及应用在详细...转载 2019-11-16 10:19:59 · 242 阅读 · 0 评论 -
MyBatis底层实现—getMapper获取到接口的代理对象
原创 MyBatis的底层实现原理 ...转载 2019-11-16 09:46:42 · 700 阅读 · 0 评论 -
23种设计模式——代理模式
代理模式一、静态代理需要建立两个类,一个是真是类,一个是代理类。package com.bjsxt.proxy.staticProxy;public interface Star { void confer(); //签协议 void signContract(); //签合同 void bookTicket();//订票 void sing(); /...原创 2019-11-15 21:24:28 · 162 阅读 · 0 评论 -
手写数据库连接池+Mybatis(1)
JDBCUtil1)使用属性文件2)获取连接的方法3)增,删,改的通用方法4)使用反射查询的方法5)关闭全部的方法缺点:使用JDBC连接数据库比较慢解决方案:使用数据库连接池优点:访问数据库的速度增快缺点:没有办法实现java代码和sql语句之间的解耦MyBatis的好处(1)SQL语句和Java代码的解耦(2)底层使用数据库连接池–增快访问的速度(3)使用反射封装,方便...原创 2019-11-13 22:29:12 · 392 阅读 · 0 评论 -
注解+XML文件+属性文件
第一节 复习反射技术 :Class类 --》反射技术的入口a)如何获取一个类的Class对象 , 最常用的方式Class.forName(“完整的包名+类名”);举例:Class.forName(“com.mysql.jdbc.Driver”);b)Class是所以使用class声明的数据类型[类类型]的模板一个类需要具备 1)属性 2)方法 3)构造方法使用Class对象获取...原创 2019-11-12 19:37:46 · 458 阅读 · 0 评论 -
反射
正常在编写源程序时,手动使用new关键字创建对象,不利于程序后期的扩展和维护,程序的通用性特别差反射: 有利于程序后期的扩展性使用反射技术编写新的框架...原创 2019-11-11 14:33:28 · 242 阅读 · 0 评论 -
数据库2
第一节 复习一、数据库的一些内容数据?数据库?数据库管理系统?oracle,mysql,…数据库管理员,DBA?数据库应用程序?最终用户?二、SQL 结构化查询语言(1)DDL 数据定义语言 create ,alter ,drop(2)DML数据操作语言 insert ,update,delete 针对于表中的数据进行增,删,改(3)DQL 数据查询语言 select(...原创 2019-11-05 22:02:02 · 471 阅读 · 0 评论 -
数据库1
一、MySQL的基本操作简介:MySQL 是一款C/S结构的应用程序C客户端ClientS服务器端Server所以当你安装MySQL 数据库管理系统时时,就将客户端和服务器端都安装到了本机,狭义的服务器指的就是一款由程序员所编写的软件,即然是程序员所编写的软件,我就需要知道如何启动 (运行)该软件?右击计算机管理 -服务和应用程序服务右则(单击任意一个服务,然后按键盘上的M键,跳转到...原创 2019-11-04 21:18:13 · 300 阅读 · 0 评论 -
线程增强
第一节 多个生产者和消费者的生产者-消费者问题问题的来源/** * 功能:生产者消费者问题(这里创建了4个类) * 多个生产者 多个消费者 多个商品 (这样会出问题,生产者一直生产,消费者一直消费) */public class Test { public static void main(String[] args) { ProduceFactory p...原创 2019-11-02 14:25:06 · 225 阅读 · 0 评论 -
容器增强
第一节 . ArrayList一、特点:在内存中分配连续的空间,只存储数据,不需要存储地址信息,位置就隐含着地址。优点:1.节省存储空间,因为分配给数据的存储单元全用于存放节点的数据(不考虑C/C++语言中数组需指定大小的情况),节点之间的逻辑关系没有占用额外的存储空间。素。2.索引查找效率高,即每一个节点对应一个序号,由该序号可以直接计算出来节点的存储地址。缺点:1.增加和删除...原创 2019-11-01 15:32:13 · 244 阅读 · 0 评论 -
网络编程
复习1.实现线程的三种方式继承线程类 Thread 在子类中重写 run 方法。在run 方法中定义线程的任务。实现 Runnable 接口。该接口的子类可以认为是任务类。将该子类对象作为实参传递给Thread 对象即可。实现Callable 接口,实现call 方法。该子类是任务类。将该类的对象作为实参给 FutureTask 对象。FutureTask 对象对象是用来调度管理任务...原创 2019-10-30 13:56:37 · 852 阅读 · 0 评论 -
线程2
复习1.线程的三种实现方式继承线程类java.lang.Thread,重写run方法。在run方法中定义线程的任务。实现java.lang.Runnable接口,实现run方法,在run 方法中定义任务。实现Callable 接口。实现call 方法,在call 方法中定义任务。2 .线程的生命周期新建 调用 start方法,进入 就绪(可以运行)状态,等待cpu调度执行。当cp...原创 2019-10-29 13:50:17 · 149 阅读 · 0 评论 -
线程
复习Iterable;Collection;List;Set;Map;Iterator;ListIterator;Vector;Stack;ArrayList;LinkedList;HashSet;LinkedHashSet;TreeSetHashMap;LinkedHashMap;TreeMap;IdentifyHashMap;WeakHashMap;Hashtable; Pro...原创 2019-10-28 15:46:14 · 258 阅读 · 0 评论 -
IO(2) + 线程(1)
复习1.Java.util.ArrayList2.Java.util.HashMap需要在key 对应的类型中重写hashCode 和 equals方法,来保证key 的唯一性 和 无序。3.ArrayList 和 LinkedList 的异同4.Vector 和 ArrayList 的异同5.Hashtable 和 HashMap 的异同6.Collections 和 Collect...原创 2019-10-25 19:50:23 · 243 阅读 · 0 评论 -
容器(3) + IO(1)
复习1.ListIterator 是Iterator 的子接口,是专门用于遍历List 容器的迭代器,可以实现双向的遍历。2.HashSet 元素无序,唯一,可以有一个null。底层使用HashMap 实现,只使用了HashMap的key 部分。Value是一个final static Object 对象。3.TreeSet 元素有序(升序),唯一,底层使用TreeMap实现,只使用了Tre...原创 2019-10-24 20:31:40 · 227 阅读 · 0 评论 -
容器(2)
复习数组作为一种很简单的容器使用,有诸多的缺点,所以针对不同的需求需要有更适合使用的容器,jdk提供了解决方案,集合框架。Collection framework。学习容器就是学习具有不同功能特点的容器类。容器分类:序列、集、映射Collection 是集合部分的顶层的接口:元素无序不唯一,可以有null元素。List 是Collection的子接口:元素有序(添加元素的顺序)...原创 2019-10-23 12:37:12 · 278 阅读 · 0 评论 -
容器(1)
复习1.二分搜索法。线性的有序的数列,升序数列。时间复杂度为:T(n) = O(log2n)2.选择排序:将无序区中最小的元素和无序区中的第一个元素进行不断交换的过程3.插入排序:将无序区中第一个元素放到有序区中合适的位置。4.数组:元素有序的:添加的顺序,0序的,随机访问(根据下标)的效率很高。数组结构的jdk对应的实现类 java.util.ArrayList java.util....原创 2019-10-22 19:36:30 · 294 阅读 · 0 评论 -
算法 + 数据结构
第一节:算法 查找一.顺序查找import java.util.Arrays;/** *顺序查找 */public class TestSearch { public static void main(String[] args) { int[] arr=creatArray(10,0,21); System.out.println(Arrays...原创 2019-10-21 22:17:25 · 514 阅读 · 0 评论 -
常用类(2) + 算法
第一节、常用类2一、java.util.Date该类有一个子类java.sql.Date。用代码来说明Date的一些方法,上代码:import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * 测试ja...原创 2019-10-21 21:07:24 · 203 阅读 · 0 评论 -
常用类(1)
1.使用包装类原创 2019-10-18 21:57:25 · 277 阅读 · 0 评论 -
垃圾回收 + 异常
当一个对象所占用的内存即将被GC 回收的时候,那么该对象将调用finalize()方法。/** * 测试fianlize()的用法 */public class TestFinalize{ public static void main(String[] args){ Finalize finalize=new Finalize(); finaliz...原创 2019-10-17 19:59:42 · 241 阅读 · 0 评论 -
面向对象(3)
import java.util.Arrays;/** * 使用内部比较器排序 */public class TestSort { public static void main(String[] args) { test(); } //对学生数组进行排序,升序,先按照年龄排序,如果年龄相同,按照成绩升序排序 public static v...原创 2019-10-15 17:58:05 · 199 阅读 · 0 评论 -
面向对象(1)
主要讲述了几个基本概念和类加载的过程、对象创建的过程,this关键字和static关键字的用法和一段测试代码原创 2019-10-13 22:04:04 · 139 阅读 · 0 评论 -
面向对象(2)
1.面向对象的三大特性:封装、继承、多态。一、封装1.封装的学习就是学习类成员的访问权限的控制。是设计类的时候需要考虑的问题。概念:通过对类中的成员的访问权限的控制,实现对外部类的访问的可见和隐藏的控制的过程。2.类成员的访问权限的控制,通过访问权限修饰符来控制。可以在类成员的前面添加访问权限修饰符来实现对类成员访问权限的控制。3.类成员的访问权限一共有四种:public :本类、本...原创 2019-10-14 21:38:35 · 190 阅读 · 0 评论