![](https://img-blog.csdnimg.cn/20200327001403258.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java专栏
文章平均质量分 61
Java相关内容趣聊丨分享丨成长
泰勒耶耶の佩亚诺余项
这个作者很懒,什么都没留下…
展开
-
spring和mybatis整合过程
整合思路:将mybatis中sqlSessionFactory对象交给spring进行单例管理将mapper映射交给spring进行映射管理整合过程:1、引入依赖<!--mybatis和spring整合依赖:有mybatis框架提供--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId>原创 2020-06-14 05:10:33 · 312 阅读 · 0 评论 -
AOP基本理论与使用(基于配置、注解方式)
AOP(Aspect Oriented Programing)面向切面扩展功能不通过修改源代码实现。AOP采用的横向的抽取机制,取代了传统的纵向继承体系写重复性代码。AOP适用场景:性能监控,事务管理,安全检查,缓存等等动态代理:JDK动态代理 包路径 java.lang.reflet创建LogImpl平级的对象,通过invocationHandler辅助类实现实现的不是真正的对象,真正的代理对象在运行时产生AOP的实现是基于动态代理实现有两种实现方式:第一种:在有接口的情况下,通过jdk动原创 2020-06-14 05:07:11 · 258 阅读 · 0 评论 -
向MySQL插入数据,sql语句没问题,但一直插入失败
前几天做一个小型的网站系统课程的开发,向MySQL数据库中的order表中插入数据时,一直插入失败。检查了好几遍插入语句,发现并没有问题,修修改改排查了好久才恍然大悟,原来是忘记了order在MySQL中是关键字,改一下数据表名就好了,比如orders。若数据表命名时与mysql中关键字的冲突,会导致插入失败,并且大多数的时候不会报错。想起前几个月的时候,也是犯了这个一模一样的错误,而这一次又在同一个地方跳进坑,所以写了这篇博文,希望能提醒自己记住!...原创 2020-06-11 03:48:57 · 2247 阅读 · 0 评论 -
mybatis中动态代理的源码分析
mybatis中动态代理产生的要点:1、Mapper接口在初始SqlSessionFactory注册的2、Mapper接口注册在了名为MapperRegistry类的HashMap中,key=Mapper class value=创建当前的Mapper工厂3、Mapper注册之后,可以从SqlSession中get4、SqlSession.getMapper运用了JDK动态代理,产生了目标Mapper接口的代理对象5、动态代理的代理类是MapperProxy,这里边最终完成了增删改查方法的调用源原创 2020-06-03 00:34:39 · 205 阅读 · 0 评论 -
Java中两种动态代理的使用及原理
Java中两种动态代理:1、JDK自带的动态代理(mybatis使用的是JDK自带的 包路径:java.lang.reflet)2、CGLib提供的动态代理代理模式:代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。简单的说就是原创 2020-06-03 00:06:48 · 309 阅读 · 0 评论 -
Intellij IDEA 关于jsp中css样式的效果不能显示问题
今天用springMVC框架写系统的时候,写好了前端页面以及css样式,启动程序网页显示却没有呈现出css中的样式,然后仔细检查了所有的路径,发现都没有错误,最后去搜索了各路大神的解决方案,试了好多方案,都不行,直到遇到了这个。原文:https://blog.csdn.net/qq_40573403/article/details/83303578原来是web.xml文件的配置出问题,应该是路径被拦截了,改一下就行了!具体代码如下:<servlet-mapping><servle原创 2020-06-02 23:51:57 · 5725 阅读 · 4 评论 -
mybatis使用原理及使用步骤
mybatis介绍:操作数据库的框架、Apache旗下开源项目1、是一款优秀的持久层框架2.、支持定制化 SQL、存储过程以及高级映射3、避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集4、可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO为数据库中的记录JDBC编程存在的问题及解决方案1、进行数据库操作之前连接数据库、操作完成关闭数据库,并发量大的时候影响系统的性能解决方案:连接池 --> 目的:连接的复用2、在java代码中编写SQL语原创 2020-05-28 15:27:19 · 227 阅读 · 0 评论 -
时间复杂度丨大O阶推导法
时间复杂度时间频度一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度,记为T(n)。时间复杂度前面提到的时间频度T(n)中,n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。但有时我们想知道它变化时呈现什么规律,为此引入时间复杂度的概念。一般情况下,算法中基本操作重复执行的次数是问题规模n...原创 2020-03-27 00:07:00 · 909 阅读 · 1 评论 -
File类介绍+递归遍历(指定后缀)文件
java.io.FileIO技术概述:a: Output把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作(即从程序到文件,对程序来说是输出操作)。b: Input把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作(即从文件到程序,对程序来说是输入操作)。c: IO操作把上面的这种输入和输出动作称为IO操作。IO流是用来传输数据...原创 2020-03-27 00:33:55 · 405 阅读 · 1 评论 -
图解红黑树插入
红黑树是一棵平衡二叉查找树,它确保没有一条路径会比其它路径长出两倍,因此接近平衡树。红黑树的几条规则:1)各节点非黑即红2)根节点是黑色的3)每个叶节点(NIL哨兵节点)是黑色的4)红节点的左右子节点必须是黑色5)对每个节点,从该节点到其子孙节点的所有路径上包含相同数量的黑节点6)黑节点的左右子节点没有颜色要求下图为一棵红黑树:在进行红黑树数据插入之前,我们先来看看下图两种结构...原创 2019-10-09 10:59:25 · 331 阅读 · 0 评论 -
Spring控制反转和依赖注入的理解
Spring中有两个重要的概念,IOC(控制反转)和DI(依赖注入),那么如何理解这两个概念呢?IOC(Inversion of Control),即控制反转,那么控制的是什么?反转的又是什么?例如有一个People类,它内部有一个Car类属性,在以前,我们必须在People类内通过new或者构造方法又或者set方法去引入依赖对象Car,归根结底就是必须自己new依赖对象,即对象的创建是由开发...原创 2019-08-05 15:37:51 · 452 阅读 · 0 评论 -
@Autowired 和 @Resource 的区别
@Autowired 和 @Resource 都是在Spring中进行引用类型bean注入时用到的注解,两个注解的作用相同,但是它们有什么区别呢?@Autowired 默认按类型进行配置依赖对象,如图在People类中的属性Car上使用该注解:并且在Car类中对其name和color属性进行注入,如图:运行结果如下:但是有一个问题,如果匹配到多个类型一致的对象,那么使用@Autowi...原创 2019-08-05 17:55:30 · 117 阅读 · 0 评论 -
序列化与反序列化时子类和父类构造方法调用规则
子类实现序列化接口与父类实现序列化接口有什么区别吗?父类如果没有实现Serializable接口,而子类实现序列接口,那么父类对象就不会被序列化,也就不会被保存,而子类却可以被序列化,即会被保存。但是如果父类没有默认构造方法则在反序列化时会出异常;父类实现序列化则子类会自动实现序列化而不需要显式实现 Serializable 接口。那么序列化与反序列化时子类和父类构造方法是怎么调用的?来看一...原创 2019-08-05 14:18:14 · 975 阅读 · 0 评论 -
八大排序算法汇总
一、冒泡排序1.思路从序列头开始,两两比较,将较大值交换到后面,直到将最大值冒到最后,重复此步骤,直到序列有序。图示:2.时间复杂度:最坏情况:O(n^2)–完全无序最好情况:O(n)–序列有序3.空间复杂度: O(1)4.稳定性:稳定5.代码实现public static void bubbleSort(int[] arr) { if(arr == ...原创 2019-01-27 15:46:56 · 210 阅读 · 0 评论 -
LinkedList底层实现,及和ArrayList区别
特性:LinkedList类继承AbstractSequentialList接口,底层数据结构为双链表,数据有序性;可添加多个null值。方法:增加:add(E e)默认尾部添加 、 addFirst头加 、 addLast尾加;删除:remove(Object o)值删除 、 removeLast尾删 、 removeFirst头删。下面我们实现一个简单的LinkedList类publi...原创 2019-01-18 19:21:24 · 415 阅读 · 0 评论 -
ArrayList底层实现
在java集合框架库中,最顶层的是Collection接口,List(数组)、Set(集合)、Queue(队列)三个接口实现了Collection基接口,而AbtractCollection又实现了List接口,ArrayList类则继承于AbtractCollection接口。特性:ArrayList类底层数据结构为数组,初始化大小:DEFAULT-CAPACITY=10,扩容方式:oldC...原创 2019-01-18 18:31:31 · 738 阅读 · 0 评论 -
Java泛型
泛型原创 2019-01-02 14:44:14 · 98 阅读 · 0 评论 -
JAVA类加载器
1.类的加载过程类的加载过程分为三个步骤:装载,链接(验证、准备、解析),初始化。装载:查找并加载类的二进制数据。链接:(1)验证:是链接阶段的第一步,这一阶段的目的是为了确保Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。(2)准备:正式为类变量分配内存并设置类变量初始值的阶段。(3)解析:虚拟机将常量池内的符号引用替换为直接引用的过程。初始化...原创 2018-11-28 18:44:47 · 288 阅读 · 0 评论 -
Java继承,接口
一、继承在java中允许使用现有类(基类、超类、父类)创建新类(子类、派生类)。派生类使用关键字extends指定要继承的父类,其基本 形式如下:[类修饰符] class 类名 [extends 基类]{类体;}派生类具有基类的所有数据和行为,以及自己定义的所有其它数据或行为。super()关键字super关键字用于从派生类中访问基类的成员,只能在第一行使用。(1)super. 子...原创 2018-11-23 17:47:45 · 604 阅读 · 0 评论 -
JAVA自定义类
下面看一个简单的BankCard类public class BankCard { private int passwd; private int id; private int money; public BankCard(int id,int passwd){ this.id = id; this.passwd = passwd;...原创 2018-11-16 11:53:30 · 373 阅读 · 0 评论 -
Java一维数组
Java一维数组声明数组变量,需要指出数组类型和数组变量名字,用new运算符创建数组。int[] a = new int[100];表示创建了一个可以储存100个整数的数组a。数组下标从0开始。赋值:int[] a = new int[100];for(int i =0;i&amp;lt;100;i++)a[i]=i;获取数组中每个元素:①利用for循环for(int i = 0;i&amp;lt;...原创 2018-11-04 15:25:47 · 156 阅读 · 0 评论