自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 问答 (3)
  • 收藏
  • 关注

转载 AOP - 3 底层实现原理

  1、核心业务接口与实现public interface IManager { void add(String item);}View Codepublic class IManagerImpl implements IManager { private List<String> list = new A...

2019-09-24 16:34:00 213

转载 7 AOP

AOP:Aspect Oriented Programming 面向切面编程。AOP是对面向对象编程的一种补充,在运行时动态地将代码切入到类的指定方法、指定位置的编程思想。将不同的方法的同一位置抽象成一个切面对象,对该切面进行编程,就是AOP。AOP更专业的说法:通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术, AOP是OOP的延续与补充。利用AOP可以对业务逻辑的...

2019-09-24 16:29:00 194

转载 HTTP 协议

HTTP 请求由三部分组成,分别是:请求行、消息报头、请求正文HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。1、常用的HTTP方法有哪些?GET:用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过UR...

2019-09-10 17:33:00 202

转载 Oracle JDBC 标准连接实例

Oracle JDBC 标准连接实例 // 创建一个数据库连接 Connection con = null; // 创建预编译语句对象,一般用PreparedStatement不用Statement PreparedStatement pre = null; // 创建一个结果集对象 ...

2019-08-27 15:04:00 162

转载 Oracle JDBC 连接池

1、简介数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。2、为什么要用连接池如果按照单个连接来进行数据库操作,在高并发的情况下会导致数据库连接数耗尽的问题,而且单个连接的频繁...

2019-08-27 15:02:00 238

转载 4 线程死锁

1 死锁定义所谓死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。死锁是多线程程序设计带来的负面效果,在程序设计时需要防止死锁的发生。2 死锁的必要条件(1)互斥条件:进程要求对所分配的资源(如打印机)进行排他性控制,即在一段时间内某资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待...

2019-08-24 16:17:00 74

转载 Java 线程概述

1 进程与线程基本概念1.1进程:执行中的程序每个进程都有独立的代码和数据空间(进程上下文),进程空间切换会有较大的开销,一个进程包含1-n个线程。进程是资源分配的最小单位。1.2线程:进程的执行单元,线程依靠进程运行,只能使用分配给进程的资源同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器,线程切换开销小。线程是cpu调度的最小单位。...

2019-08-22 17:15:00 68

转载 Lamda 表达式

1 什么是LambdaLambda 表达式是一种匿名函数,简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使 Java 语言的表达能力得到了提升。2 Lambda 语法(params) -> expression(params) -> statement(params)...

2019-08-21 16:50:00 112

转载 5 HashSet

1、HashSet  public class HashSet<E>extends AbstractSet<E>implements Set<E>, Cloneable, java.io.Serializable实现原理,基于哈希表(HashMap) 实现。它不允许重复,可以有一个NULL元素,不保证顺序恒久不变。 publi...

2019-08-12 16:52:00 67

转载 8 HashMap

1、Map接口public interface Map<K, V>将键映射到值的对象,一个映射不能包含重复的键,每个键只能映射到一个值。具体的实现:HashMap,TreeMap, Hashtable,LinkedHashMap。2、HashMappublic class HashMap<K, V> extends AbastractMa...

2019-08-12 14:39:00 74

转载 4 LinkedList

1 LinkedListpublic class LinkedList<E> extends AbstractSequentialList<E>implements List<E>, Deque<E>, Cloneable, java.io.Serializable实现原理,通过双向链表实现的。适合插入、删除操作。2 节...

2019-08-07 16:14:00 50

转载 2 ArrayList 详解

List 是有序、可重复的容器。List中每个元素都有索引标记,可以根据元素的索引标记访问元素,从而精确控制这些元素。List 接口常用的实现类:ArrayList、LinkedList、Vector。ArrayList 底层是用数组实现。特点:查询效率高,增删效率低,线程不安全。增删操作较多的场景使用LinkedList,线程安全使用Vector 或者封装的线程安全集合类。...

2019-08-07 14:17:00 67

转载 Java 异常机制

异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。1 ErrorError(错误)表示系统级的错...

2019-08-06 17:32:00 58

转载 Java 垃圾回收

转载:https://mp.weixin.qq.com/s/pR7U1OTwsNSg5fRyWafucA之前上学的时候有这个一个梗,说在食堂里吃饭,吃完把餐盘端走清理的,是 C++ 程序员,吃完直接就走的,是 Java 程序员。在 Java 的世界里,似乎我们不用对垃圾回收那么的专注,很多初学者不懂 GC,也依然能写出一个能用甚至还不错的程序或系统。但其实这并不代表 Jav...

2019-08-06 14:33:00 83

转载 类运行过程的内存分析

Java 虚拟机主要可分为stack、heap、method area三个区域,其中栈主要用来存放基本类型变量,对象引用;堆主要存放类实例;方法区存放静态变量、静态方法、常量池。1 栈的特点(1) 栈用来描述方法执行的内存模型。每个方法被调用都会创建一个栈帧(存局部变量、操作数、方法出口);(2) JVM 为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量...

2019-08-06 11:49:00 98

转载 位运算符

1 ~ 按位取反,指的是按照补码进行取反正数取反~8转为原码:0000 1000转为补码:0000 1000补码取反:1111 0111负数转为原码:1000 1001-- 符号位,负数原码 = (补码- 1) 再取反~8 = -9负数取反~ -2转为原码:1000 0010转为补码:1111 1110补码取反:0000...

2019-08-05 19:10:00 83

转载 Comparable 与 Comparator

Java 自定义对象不能直接进行比较,需要实现 Comparable 接口或者 Comparator 接口。1、Comparable 接口此接口强行对实现它的每个类的对象自进行整体排序。这种排序被称为类的自然排序,类的compareTo 方法被称为它的自然比较方法。package com.latiny.basic;import java.util.Arrays;...

2019-08-05 11:54:00 68

转载 Java 二分查找法

二分查找是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组已经为空,则表示找不到指定的元素。这种搜索算法每一次比较都使搜索范围缩小一半,其时间复杂度是O(logN)。二分查找法代...

2019-07-01 15:58:00 54

转载 整合spring boot时操作数据库时报错Caused by: java.lang.InstantiationException: tk.mybatis.mapper.provider.base.B...

原文:https://blog.csdn.net/u__f_o/article/details/82756701一般出现这种情况,应该是没有扫描到对应的mapper包,即在启动类下配置MapperScan时导错了包。此时应该导入的包是tk.mybatis.spring.annotation.MapperScan,而不是org.mybatis.spring.a...

2019-07-01 15:56:00 1016

转载 Linux 常用命令

1、查看端口是否被占用netstat -lnp|grep 8091[root@localhost ~]# netstat -lnp|grep 8091tcp 0 0 0.0.0.0:8091 0.0.0.0:* LISTEN 3250/nginx: master转载于:htt...

2019-06-28 10:24:00 68

转载 Linux 特殊权限

Linux 有三个高级权限suid,sgid,sticky。1、suidsuid 属性只能运用在可执行文件上,含义是开放文件所有者的权限给其他用户,即当用户执行该执行文件时,会拥有该执行文件所有者的权限。如果给一个非二进制文件文件附加suid权限,则会显示大写S,属于无效。latiny 用户能够执行passwd 命令修改自己的密码,修改密码其实就是修改/etc/shad...

2019-06-26 22:58:00 87

转载 12 Linux ACL权限

1、查看facl权限getfacl /home/test.txt[root@localhost ~]# getfacl /home/test.txtgetfacl: Removing leading '/' from absolute path names# file: home/test.txt# owner: root# group: rootuser...

2019-06-26 22:17:00 73

转载 9 Java 堆排序

堆是具有以下性质的完全二叉树,每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子:该数组从逻辑上讲就是一个堆结构,我们用简单的公式来描述一下堆的定义就是:大顶堆:arr[i] >= arr[2i+1] &a...

2019-06-25 16:16:00 87

转载 8 Java 归并排序(MergerSort)

图片素材与文字描述来自:尚硅谷-韩顺平数据结构与算法。1、基本思想归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各个结果有序的合并在一起,即分而治之)。2、算法描述(1)分阶段可以理解为就是递归拆...

2019-06-25 12:08:00 146

转载 mysql java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents mo...

转载: https://blog.csdn.net/oppo5630/article/details/52162783解决mysql 数据库连接 报错:The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configur...

2019-06-24 23:31:00 152

转载 7 Java 快速排序

快速排序(Quicksort)是对冒泡排序的一种改进。1、基本思想通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以 递归进行,以此达到整个数据变成有序序列。2、算法描述快速排序使用分治策略来把一个序列( list )分为两个子序列(sub-lists...

2019-06-24 13:14:00 111

转载 6 Java Shell排序

希尔排序是先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。1、基本思想将待排序数组按照步长gap进行分组,然后将每组的元素利用直接插入排序的方法进行排序;每次再将gap折半减小,循环上述操作;当gap=1时,利用直接插入,完成排序。2、算法描述①. 选择一个增量序列t1,t2,...

2019-06-24 11:28:00 47

转载 MySQL 双主 + keepalived

参考:https://www.cnblogs.com/kevingrace/p/6710136.htmlMySQL双主复制 + keepalived 可以实现数据高可用。双主即互为master-slave,其中任意一个改变,另外一个会跟着改变(与主从不同,主从是单向);可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换。使用Keepalived,可以通过虚拟...

2019-06-21 20:48:00 303

转载 MySQL 主从复制 (CentOS 7)

1、主从复制原理(1) 当master 服务器上的数据发生改变时,则将其改变写入二进制日志文件中;(2)slave服务器会在一定时间间隔内对 master 服务器上的二进制日志进行探测,探测其是否发生过改变;(3)如果探测到 master 服务器的二进制日志发生了改变,则开始一个I/O Thread请求master二进制事件;(4)同时master 服务器为每个sl...

2019-06-20 15:08:00 87

转载 Java - 栈

栈是一组数组记录,表现形式为先进后出的数据结构。底层可以由数组或者链表实现。它是一种限制线性表,元素插入和删除只能在线性表的同一端进行。允许插入和删除的一端,为变化端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。入栈与出栈的示意图:...

2019-06-18 12:05:00 64

转载 约瑟夫问题

1、问题描述n个人围成一圈,从第k个人开始报数,报到m的人出圈,剩下的人继续从出圈的下一个人开始报数,报到m的人出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号)。2、采用单向循环链表实现节点public class HeroNode { protected Integer no; protected String n...

2019-06-17 17:39:00 67

转载 双向链表

双向链表跟单链表类似,每个节点多了previous指针,指向前一个元素;还多了一个tail指针指向链表的尾节点;可以从头尾两个方向遍历链表。代码实现public class DoubleLinkedList { private DoubleNode head; private DoubleNode tail; private Intege...

2019-06-17 14:25:00 60

转载 Java - 单链表

链表是一种常见的基础数据结构,是一种有序的列表,但不会按照线性顺序存储数据,而是在每一个节点里存储下一个节点的指针(next)。链表适合插入、删除,不宜过长,否则会导致遍历性能下降。以节点方式存储;每个节点包含data域,next域:指向下一个节点;链表的各个节点不一定是连续存储的;代码实现:节点类public class HeroNode {...

2019-06-14 16:52:00 73

转载 Java - 可循环队列

队列是一种特殊的线性表,是一种先进先出的数据结构。只允许在表的前端进行删除操作,在表的后端进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。简单的循环队列实现比较容易,队头获取数据、队头弹出获取数据,队尾插入数据。下面来研究一下可以无限循环使用的队列。思路如下:1、数据结构int[] elements:底层采用数组实现,用来存储队...

2019-06-13 19:39:00 80

转载 HailStone序列

目前HailStone序列还未被证明是否有穷,所以它未必是一个算法。* HailStone序列* n=1时,返回1;* n>1时且为偶数时,{n} ∪ {n/2}* n>1时且为奇数时,{n} ∪ {3n + 1}/** * HailStone序列 * n=1时,返回1; * n>1时且为偶数时,{n} ∪ {n / 2}...

2019-06-13 15:00:00 688

转载 5 Java 插入排序

1、基本思想将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小则依次交换,直到出现比选择元素小的元素或者全部元素都比较过为止。2、算法描述①. 从第一个元素开始,该元素可以认为已经被排序;②. 取出下一个元素,在已经排序的元素序列中从后向前扫描;③. 如果该元素(已排序)大于新元素,将该元素移到下一位置;④. 重复步骤3,直到找到已...

2019-06-13 11:52:00 52

转载 4 Java 选择排序

1 基本思想在未排序序列中找到最小元素,存放到未排序序列的起始位置。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种算法,需要对比len-n-1次,但是只交换1次或者0次。2 算法描述①. 从待排序列中,找到最小的元素;②. 如果最小元素不是待排序列的第一个,将其和第一个元素互换;③.从余下的 N – 1 个元素中,找出最小的元素,重复①、...

2019-06-13 11:06:00 78

转载 3 Java 冒泡排序法

冒泡排序( Bubble Sort)是一种简单的排序算法。它重复访问要数列, 一次比较两个元素,如果他们的顺序错误就把交换过来。访问数列工作是 一次比较两个元素,如果他们的顺序错误就把交换过来。访问数列工作是 一次比较两个元素,如果他们的顺序错误就把交换过来。访问数列工作是 重复地进行直到没有再需要交换的数据,也就是说该列已经排序完成。这个算 重复地进行直到没有再需要交换的数据,也就是说...

2019-06-13 10:00:00 92

转载 1 算法概念

算法包含三要素:计算,计算模型,算法。1、计算计算:即信息处理。借助某种工具,遵照一定规则,以明确而机械的形式进行。2、计算模型计算机:即信息处理工具。3、算法所谓算法,即特定计算模型下,旨在解决特定问题的指令序列。输入:待处理的信息(问题);输出:经处理的信息(答案);正确性:可以解决指定的问题;确定性:任一算法都可以描述为一个...

2019-06-13 09:58:00 157

转载 2 大O表示法

1、大O表示法表示程序的执行时间或占用空间随数据规模的增长趋势。算法操作      时间复杂度线性查找      O(n)二分查找      O(logn)无序数组插入    O(1)无序数组删除    O(n)有序数组插入    O(n)有序数组删除    O(n)冒泡排序      O(n2)2、时间复杂度时间复杂度,又称"渐进...

2019-06-13 09:53:00 66

空空如也

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

TA关注的人

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