- 博客(35)
- 收藏
- 关注
原创 ConcurrentHashMap的源码解读
ConcurrentHashMap的源码解读(JDK 1.7)在java.util.concurrent包路径下实现ConcurrentMap接口,该接口下的特有的方法:V putIfAbsent(K key, V value)如果指定键已经不再与某个值相关联,则将它与给定值关联。boolean remove(Object key, Object value)只有目前将键的条目映射到...
2019-08-28 04:40:19
173
原创 Arraylist源码探究
ArrayList实现集合概述:集合存在于java.util包路径下特点:重复性:数据可以重复null值:可以有 null值存在有序性:能保证数据的插入有序常用方法介绍int size(); 集合中存储元素的个数boolean isEmpty(); 判断当前集合是否为空,返回值是Boolean类型 :false:集合不为空 true:集合为空boolean contains(O...
2019-08-28 04:18:39
144
原创 网络协议基础知识整理
网络部分网络分层:OSI:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP:网络接口层、网络层、传输层、应用层应用层:FTP、SMTP、Http、Telnet…传输层:TCP、UDP网络层:IPTCP:TCP头部信息、三次握手、四次挥手、重试机制、拥塞控制、滑动窗口。。。UDP:头部信息socket编程同步、异步、阻塞、非阻塞BIO(同步阻塞IO)、N...
2019-08-28 04:09:45
373
原创 HashTatable和LinkedHashMap区别
HashTable继承关系extends Dictionary<K,V> JDK较早提供的实现类默认值数组初始化大小:11加载因子:0.75增长方式2*table.length+1CRUDpublic synchronized V put(K key, V value) { // Make sure the value is not null if (...
2019-08-27 14:23:29
272
原创 索引知识总结
索引:索引是一种提高查询效率的数据结构(B树或者是哈希结构)索引是创建在数据库表中,是对数据库表中的一列或者多列值的进行排序的一个结果,好处就是提高查询效率索引的分类:普通索引:没有任何限制,可以给任意字段创建普通索引唯一性索引:使用unique修饰的字段,值不能重复的,主键索引就属于唯一性索引主键索引:使用primary key修饰的字段自动创建主键索引单例索引:在一个字段上创建...
2019-08-27 13:51:06
366
原创 多线程的总结
(1)什么是线程(2)如何去启动线程(3)线程的作用 多线程(4)进程和线程的区别(5)多线程的使用方式(6)线程的状态 状态转换(7)线程的优先级(8)线程间的同步什么是进程进程:运行起来的程序。线程的定义:cpu运行的单位。线程的作用 多线程:同时发生:在我们电脑是不可能存在。并发:处理器会快速的调度,感觉上是同时发生的。并行:真正的同时发生。 进程:运行起来的程...
2019-08-21 13:16:18
117
原创 Java IO总结
一、java io 概述1.1 相关概念Java IOJava IO即Java 输入输出系统。不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件、控制台、网络),我们还要考虑具体和它们的通信方式(顺序、随机、二进制、按字符、按字、按行等等)。Java类库的设计者通过设计大量的类来攻克这...
2019-08-21 10:17:59
142
原创 判断链表是否有环、合并俩个有序的单链表的代码实现
/** * 判断链表是否有环,如果有,返回入环节点的值,没有环,返回null * 入环的节点特征: * @return */ public T getLinkCircleVal(){ Entry<T> slow = this.head.next; Entry<T> fast = this.hea...
2019-08-19 11:49:17
156
原创 单链表的逆置、获取倒数第k个单链表节点的值的方法实现
/** * 单链表的节点类型 * @param <T> */ static class Entry<T>{ T data; // 链表节点的数据域 Entry<T> next; // 下一个节点的引用 public Entry(T data, Entry<T> n...
2019-08-19 11:22:05
166
原创 带头节点单链表的实现、插入、删除、打印等代码实现
package headlink;import org.junit.Test;/** * 带头节点的单链表的实现 * @param <T> */class Link<T extends Comparable<T>>{ // 指向单链表的第一个节点 HeadEntry<T> head; public Link...
2019-08-19 10:12:20
593
原创 动态规划算法
描述: 动态规划算法 能用动归算法解决的问题,都有两个基本的要素 1.最优子结构 2.子问题划分有重叠 动态规划解决问题,主要找出两样东西: 1.“状态” dp[i] : 组成价值i所需要的最少的硬币的数量 2.状态转移方程 有面值1,3,5分的三种硬币,现在给出一个价值C, 问组成价值C最少需要几枚硬币? pu...
2019-08-18 11:36:49
177
原创 三角数组求和最大值代码实现
描述:有一个三角数组,形如:512 67 13 1812 14 10 9求从最上面元素开始,每一层选择一个元素,每一个元素可以向下选择,向左斜下方选择,向右斜下方选择,问最终选择出来的数字的最大值是多少? public class 三角数组求和的最大值 { public static void main(String[] args) { ...
2019-08-18 10:59:09
263
原创 求俩个序列的最长公共子序列的长度
描述: 求两个序列的最长公共子序列(不一定连续)的长度求两个字符串最长的子串(必须连续)以及长度public class LCS { public static void main(String[] args) { String str1 = "helloworld"; String str2 = "helxtld"; int[][]...
2019-08-18 10:30:20
526
原创 轮船装载问题解决
**描述:有一组物品,其重量分别是:w1,w2…wn现在有两艘轮船,其容量分别是C1和C2,满足w1+w2+…+wn <= C1 + C2问怎么装载物品,才能够把物品全部装上轮船**代码实现:public class shiploading { static int[] w = {12,18,21,14,9,10}; static int ...
2019-08-18 09:59:50
873
原创 归并排序代码实现
描述: 归并排序 - 外部排序(内存有限制,数据无法一次性放入内存,怎么对数据进行排序)JDK库里面的Java代码,涉及排序都优先采用快排(空间复杂度更好一点)外部排序的问题(文件的操作):现在有50亿个整数,内存限制200M,问你该怎么对这50亿个整数进行排序?50亿 = 5G * 4 = 20G步骤一:先生成100个小文件,每个文件保存一部分数据大文件里面的整数 % 100 ...
2019-08-17 16:35:51
226
原创 Spring中涉及的设计模式
Spring中涉及的设计模式Spring框架中集成很多开发者优秀的设计理念和编程实践,其中设计模式的使用显得尤为重要设计模式的使用可以很好的做到"对象键松耦合"、“针对接口编程”,从而设计出易维护、易扩展、易复用、灵活性好的框架Spring中涉及的设计模式主要有:-简单工厂模式-工厂方法模式-单例模式-适配器模式-包装类模式-代理模式-观察者模式-策略模式-模板模式...
2019-08-13 15:33:05
149
原创 堆排序代码实现
堆排序堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。` 堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最...
2019-08-13 15:14:22
159
原创 优先级队列的代码实现
package sort;import java.util.Arrays;import java.util.Random;public class PriorityQueue<T extends Comparable<T>> { private T[] queue; private int index; // 记录有效元素的个数 publ...
2019-08-13 14:44:29
188
原创 二分查找代码实现及相关递归练习
package sort;import org.junit.Test;import java.util.Arrays;public class 二分查找 { @Test public void test05(){ int[] arr = new int[200]; for (int i = 0; i < arr.length; i...
2019-08-13 14:33:05
127
原创 线性探测哈希表的实现
线性探测哈希表的实现:package pattern;import java.util.HashMap;import java.util.HashSet;import java.util.Random;线性探测哈希表实现class LinerHashMap<T extends Comparable>{// 散列表数组private Entry[] hashTable;...
2019-08-11 10:17:19
386
原创 斗地主综合案例代码实现
通过学习集合框架来实现一个斗地主的案例代码实现:public class DuDiZhuMap {/*斗地主综合案例:有序版本1.准备牌2.洗牌3.发牌4.排序5.看牌public static void main(String[] args) { //1.准备牌 //创建一个Map集合,存储牌的索引和组装好的牌 ...
2019-08-11 09:30:04
129
原创 Spring中AOP的使用
AOP术语:连接点(JoinPoint):指的是被拦截的点,在spring中指的是方法类中的方法可以被增强,方法称之为连接点。切入点:(PointCut):指的是我们要对那些连接点进行拦截的定义类中很多方法可以被增强,实际被增强的方法称之为切入点。增强/通知(Advice):增强指的是拦截到PointCut点之后要做的事情称之为增强要新增的功能称之为增强通知分为5种:前置通知:在方法之...
2019-08-09 16:23:45
117
原创 Spring使用Demo及IOC基于配置的实现
Spring的使用的Demo:1、引入依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.1.7.RELEASE</version><...
2019-08-09 12:11:04
77
原创 事务的概念及特点
事务(Transaction):1.是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。2.事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数...
2019-08-09 10:04:34
343
原创 非递归实现BST树的删除操作
非递归实现BST树的删除操作: 1. 先搜索BST树,找到待删除的节点 2. 判断删除节点是否有两个孩子,如果有,用前驱的值代替,直接删除前驱 3. 删除有一个孩子的节点,或者没有孩子的节点(看作有一个孩子,孩子是null)/** * 非递归实现BST树的删除操作 * @param data */public void non_remove(T data){...
2019-08-08 19:06:54
426
原创 二叉树的遍历
前序遍历若树为空,则空操作返回。否则,先访问根节点,然后前序遍历左子树,再前序遍历右子树。(中 左 右)中序遍历若树为空,则空操作返回。否则,从根节点开始(注意并不是先访问根节点),中序遍历根节点的左子树,然后是访问根节点,最后中序遍历根节点的右子树。(左 中 右)后续遍历若树为空,则空操作返回。否则,从左到右先叶子后节点的方式遍历访问左右子树,最后访问根节点。(左 右 中)层序遍历...
2019-08-08 18:56:50
128
原创 mybatis相关配置详细说明
1、mybatis相关配置的详细说明2、mybatis接口绑定形式:配置和注解全局配置文件详解:<!--properties标签:读取配置文件,一般配置数据源--><!--<properties>--> <!--<property name="db.properties" value="db.properties"/>-->...
2019-08-08 18:37:05
222
原创 mybatis的使用步骤介绍
mybatis使用步骤:1、引入依赖 mysql mysql-connector-java 5.1.30 org.mybatis mybatis 3.4.1 2、配置全局配置文件mybatis-config.xml<?xml version="1.0" encoding="UTF-...
2019-08-08 18:18:33
183
原创 SQL基本命令
最近学习数据库,总结了一下mysql的sql语句的常用命令:MySQL的SQL语句类别划分:DDL(Data Definition Language):数据库定义语言定义了不同的数据库、数据库表,列、索引等数据库对象的定义常用的SQL:create、drop(删除)、alter(更新)DML(date Manipulation Language):数据操控语言用于添加、删除、变更和查询...
2019-08-08 18:01:36
1119
转载 Map集合概述和底层方法实现
Map集合概述在现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同。Collection中的集合,元素是孤立存在的(...
2019-07-12 16:49:56
783
原创 红黑树的三种插入数据的代码实现
enum Color{BLACK, RED}class RBNode<T extends Comparable>{private T data;private RBNode left;private RBNode right;private RBNode parent;private Color color;public RBNode(T data, RBNode&l...
2019-07-12 16:33:54
153
原创 二叉树的插入、删除、查寻等接口实现和经典笔试题
代码实现:class BSTNode<T extends Comparable>{private T data; // 数据域private BSTNode left; // 左孩子域private BSTNode right; // 右孩子域public BSTNode(T data, BSTNode<T> left, BSTNode<T> righ...
2019-07-01 21:08:09
165
原创 集合的结构框架和基本实现方法
存放数字用数组,存放一维数组用二维数组,存放对象用集合。集合框架:Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立...
2019-06-23 18:10:29
194
原创 堆排序的底层实现
堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,…,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(最小)的元素。1.创建二叉树若array[0,…,n-1]表示一颗完全二叉树的顺序存储模式,则双亲节点指针和孩子结点指针之间的内在关系如下:任意一节点指针 i:父节点:i==0&n...
2019-06-23 17:21:30
307
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人