![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
RunningShrimp
这个作者很懒,什么都没留下…
展开
-
父子类相互强转
父子类相互强转 问题引入 先来看一段代码 public class Main { public static void main(String[] args) throws IOException { Father child = new Child(); child.setName("child"); System.out.println(child); Father father = new Father(); fa原创 2020-09-17 20:17:54 · 509 阅读 · 0 评论 -
源码阅读之设计模式2(代理模式)
今天要说的是设计模式中的代理模式。 代理模式在我们生活中极其常见----中介机构,委托人等,这些都是代理,就连老美想当世界警察,打的战争都是代理人战争。 那什么是代理呢?代理在百度百科上这样解释的 : 一般做法是由委托人与代理人签订代理协议,授权代理人在一定范围内代表其向第三者进行商品买卖或处理有关事务 。而在编程中是一个对象为其他对象提供一个代理,以控制对这个对象的访问。实际上来说,代理模式是...原创 2019-12-19 09:30:02 · 172 阅读 · 0 评论 -
源码学习之设计模式(单例模式)
众所周知,单例模式分为饿汉式和懒汉式,昨天在看了《spring5核心原理与30个类手写实战》之后才知道饿汉式有很多种写法,分别适用于不同场景,避免反射,线程不安全问题。下面就各种场景、采用的方式及其优缺点介绍。 饿汉式 (绝对的线程安全) 代码示例 1.第一种写法 ( 定义即初始化) public class Singleton{ private static final Singlet...原创 2019-12-16 20:16:31 · 951 阅读 · 0 评论 -
为什么JDK动态代理中要求目标类实现的接口数量不能超过65535个
先明确几个概念:Class文件是一组以8字节为基础单位的二进制流各个数据项目严格按照顺序紧凑排列在class文件中中间没有任何分隔符,这使得class文件中存储的内容几乎是全部程序运行的程序Java虚拟机规范规定,Class文件格式采用类似C语言结构体的伪结构来存储数据,这种结构只有两种数据类型:无符号数和表接口索引计数器(interfaces_count),占2字节 参考第一句话:class文件...转载 2019-12-16 20:58:02 · 670 阅读 · 0 评论 -
1、自己手写ORM框架之创建Connect对象
类图 此类图主要是获取数据库类图,DataBaseOperation是一个接口,定义了数据库的主要操作;AbstractDataBaseOperationFactory是一个抽象类,是所有数据库操作的基类,所有的数据库局要继承次此类,去实现特定的操作;此类图中使用了模板方法。 其相关的代码如下 DataBaseOperation.java package com.framework...原创 2019-06-04 14:34:27 · 318 阅读 · 0 评论 -
2、自己手写ORM框架之标记处理器
上篇博文讲述了如何创建Connection对象的,这篇将会讲述mybatis是如何处理注解字符串信息的,可能有不相同的地方,但其思想大体一致。 GenericTokenParser.java 这个类很简单就是处理字符串并返回 package com.framework.betterorm.parsing; import java.util.ArrayList; import java....原创 2019-06-04 14:43:14 · 122 阅读 · 0 评论 -
3、自己手写ORM框架之执行SQL语句
首先定义一个类去获取对象你的属性及其值 ObjectFields.java package com.framework.betterorm.reflection; import com.framework.betterorm.test.User; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; ...原创 2019-06-04 14:49:02 · 490 阅读 · 0 评论 -
4、自己手写ORM框架之代理实现SQL语句执行
package com.framework.betterorm.proxy; import com.framework.betterorm.Datesource.AbstractDataBaseOperationFactory; import com.framework.betterorm.annotation.Delete; import com.framework.betterorm.a...原创 2019-06-04 14:57:38 · 193 阅读 · 0 评论