11 2020 档案
发表于 2020-11-28 15:05阅读:802评论:0推荐:0
摘要:最近在java的源代码中总是可以看到isAssignableFrom()这个方法,到底是干嘛的?怎么用? 1. isAssignableFrom()是干什么用的? 首先我们必须知道的是,java里面一切皆对象,类本身也是会当成对象来处理,主要体现在类的.class文件,其实加载到java虚拟机之后,
阅读全文 »
发表于 2020-11-28 15:01阅读:178评论:0推荐:0
摘要:前面已经讲过SPI的基本实现原理了,demo也基本实现了,再来说说SPI。 http://aphysia.cn/archives/jdbcspi 背景:SPI是什么? SPI,即是Service Provider Interface,是一种服务提供(接口实现)发现机制,可以通过ClassPath路径
阅读全文 »
发表于 2020-11-28 15:00阅读:280评论:0推荐:0
摘要:代码直接放在Github仓库【https://github.com/Damaer/Mybatis-Learning 】,可直接运行,就不占篇幅了。 我们下面需要改进的是别名,也趁这个机会介绍一下别名的作用。 其实在我们实际开发中,大多数情况下,一个mapper.xml文件对应的是对一个对象的操作,当
阅读全文 »
发表于 2020-11-28 14:57阅读:354评论:0推荐:0
摘要:代码直接放在Github仓库【https://github.com/Damaer/Mybatis-Learning 】,可直接运行,就不占篇幅了。 1.使用工具类获取sqlSession实例对象 在上一个demo中,处理了多个namespace的问题,那么我们可以看到代码还是会有一定的冗余,比如下面
阅读全文 »
发表于 2020-11-28 14:55阅读:747评论:0推荐:0
摘要:代码直接放在Github仓库【https://github.com/Damaer/Mybatis-Learning】,mybatis-02可直接运行,就不占篇幅了。 为什么我们有时候不使用commit也能修改数据库成功? 1.从数据库的层面上来讲,其实这个主要看你用什么“存储引擎” 像以下的代码就是
阅读全文 »
发表于 2020-11-28 14:54阅读:367评论:0推荐:0
摘要:代码直接放在Github仓库【https://github.com/Damaer/Mybatis-Learning 】,可直接运行,就不占篇幅了。 1.为什么我们使用SQLSessionFactoryBuilder的时候不需要自己关闭流? 我们看我们的代码: public class Student
阅读全文 »
发表于 2020-11-21 23:08阅读:416评论:0推荐:1
摘要:今天一不小心跟进Object的源码中,发现一个native关键字,一脸蒙蔽,怎么我从来没有用过。 // 这是计算对象的hsahcode的方法,涉及到内存地址 public native int hashCode(); 1.汇编生c,c生万物,其实java要实现对底层的控制,还是需要c/c++帮忙,老
阅读全文 »
发表于 2020-11-17 01:43阅读:198评论:0推荐:0
摘要:很多时候我们会遇到别人问一个问题:你给我讲一下反射,到底是什么东西?怎么实现的?我们能用反射来做什么?它有什么优缺点?下面我们会围绕着这几个问题展开: 一、反射机制是什么? 反射是什么?什么是反?什么是正射? 有反就有正,我们知道正常情况, 如果我们希望创建一个对象,会使用以下的语句: Person
阅读全文 »
发表于 2020-11-17 01:41阅读:344评论:0推荐:0
摘要:1.从Serilizable说到transient 我们知道,如果一个对象需要序列化,那么需要实现Serilizable接口,那么这个类的所有非静态属性,都会被序列化。 注意:上面说的是非静态属性,因为静态属性是属于类的,而不是属于类对象的,而序列化是针对类对象的操作,所以这个根本不会序列化。下面我
阅读全文 »
发表于 2020-11-17 01:39阅读:345评论:0推荐:1
摘要:正常不设置serialVersionUID 的序列化和反序列化 先定义一个实体Student.class,需要实现Serializable接口,但是不需要实现get(),set()方法 import java.io.Serializable; public class Student impleme
阅读全文 »
发表于 2020-11-17 01:38阅读:1044评论:0推荐:1
摘要:我们使用sqlSession之前,需要去获取配置文件,获取InputStream输入流,通过SqlSessionFactoryBuilder获取sqlSessionFactory对象,从而获取sqlSession。 InputStream is = Resources.getResourceAsSt
阅读全文 »
发表于 2020-11-17 01:36阅读:1597评论:0推荐:0
摘要:多个mapper文件以及namespace作用 要是多个mapper文件的时候怎么处理,namespace又是干什么用的呢 首先我们来看创建数据库语句: #创建数据库 CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_gen
阅读全文 »
发表于 2020-11-17 01:35阅读:141评论:0推荐:0
摘要:1.框架是什么 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。 一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的
阅读全文 »
发表于 2020-11-17 01:34阅读:304评论:0推荐:0
摘要:1.SPI是什么? SPI,即是Service Provider Interface,是一种服务提供(接口实现)发现机制,可以通过ClassPath路径下的META-INF/Service文件查找文件,加载里面定义的类。 一般可以用来启用框架拓展和替换组件,比如在最常见的数据库连接JDBC中,jav
阅读全文 »
发表于 2020-11-17 01:32阅读:174评论:0推荐:0
摘要:1. 工作原理 一般我们主要的JDBC处理流程如下: graph TD A[注册一个Driver] -->B(建立数据库连接) B --> C(创建一个Statement) C-->D(执行SQL语句,获取结果) D-->F(关闭JDBC对象) 1.1 加载驱动 首先声明:这个阶段在1.6之后就不需
阅读全文 »
发表于 2020-11-17 01:31阅读:129评论:0推荐:0
摘要:1.jdbc是什么 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够
阅读全文 »
发表于 2020-11-17 01:30阅读:222评论:0推荐:0
摘要:一开始安装,在官网上的命令: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 特别的慢,而且执行着就很容易断开,连接不上。所以需要换一种方法。 打开终端
阅读全文 »
发表于 2020-11-17 01:26阅读:175评论:0推荐:0
摘要:1.Vector介绍 Vector和前面说的ArrayList很是类似,这里说的也是1.8版本,它是一个队列,但是本质上底层也是数组实现的。同样继承AbstractList,实现了List,RandomAcess,Cloneable, java.io.Serializable接口。具有以下特点: 提
阅读全文 »
发表于 2020-11-17 01:25阅读:132评论:0推荐:0
摘要:1. ArrayList ArrayList是最最常用的集合类了,真的没有之一。下面的分析是基于1.8.0_261源码进行分析的。 1.1 ArrayList特点介绍 动态数组,使用的时候,只需要操作即可,内部已经实现扩容机制。 线程不安全 有顺序,会按照添加进去的顺序排好 基于数组实现,随机访问速
阅读全文 »
发表于 2020-11-17 01:24阅读:341评论:0推荐:0
摘要:1.List接口的特性 java.util.List 接口继承于 Collection 接口,与Map最大的不同之处,在于它属于单列集合,相当于一个列表,有以下这些特点: 有顺序,按照添加的顺序存储,是一种线性结构。 可以根据索引查询元素。 元素可以重复。 An ordered collection
阅读全文 »
发表于 2020-11-17 01:23阅读:267评论:0推荐:0
摘要:一、Collection接口简介 collection在java集合中,算是顶级接口,它继承了iterable接口,不能实例化,只能实例化其子类。之所以需要这样一个接口,是因为java作为面向对象,总是避免不了处理多个对象的情况,要处理多个对象,首先需要容器存储,这个容器就是集合。为什么有了数组,还
阅读全文 »
发表于 2020-11-17 01:22阅读:205评论:0推荐:0
摘要:刚开始学java的时候,分不清Collection和Collections,其实这两个东西是完全不一样的东西。 Collection是一个接口,是java集合中的顶级接口之一,衍生出了java集合的庞大的体系。下面的图可以说明: 继承Collection的子类关系如下: 既然Collection是接
阅读全文 »
发表于 2020-11-17 01:21阅读:176评论:0推荐:0
摘要:一、Collections接口是做什么的? 用官网文档的介绍: The polymorphic algorithms described here are pieces of reusable functionality provided by the Java platform. All of t
阅读全文 »
发表于 2020-11-17 01:20阅读:338评论:0推荐:0
摘要:一、iterator介绍 iterator接口,也是集合大家庭中的一员。和其他的Map和Collection接口不同,iterator 主要是为了方便遍历集合中的所有元素,用于迭代访问集合中的元素,相当于定义了遍历元素的规范,而另外的Map和Collection接口主要是定义了存储元素的规范。 bo
阅读全文 »
发表于 2020-11-17 01:14阅读:1019评论:0推荐:1
摘要:iterable接口 整个接口框架关系如下(来自百度百科): iterable接口其实是java集合大家庭的最顶级的接口之一了,实现这个接口,可以视为拥有了获取迭代器的能力。Iterable接口出现在JDK1.5,那个时候只有iterator()方法,主要是定义了迭代集合内元素的规范。 实现了Ite
阅读全文 »
发表于 2020-11-03 22:53阅读:453评论:0推荐:0
摘要:一、iterator接口介绍 iterator接口,也是集合大家庭中的一员。和其他的Map和Collection接口不同,iterator 主要是为了方便遍历集合中的所有元素,用于迭代访问集合中的元素,相当于定义了遍历元素的规范,而另外的Map和Collection接口主要是定义了存储元素的规范。
阅读全文 »