- 博客(13)
- 资源 (7)
- 收藏
- 关注
原创 字符串中空格后移问题
有一个字符串,其中有空格若干,编程将空格移到最后,字符串长度不发生变化在不引入其他数据结的情况下,我想出了以下算法,可能不是最优,欢迎提出最优算法package com.tangbaobao.test;import org.junit.Test;/** * 字符串替换 * * @author 唐学俊 * @create 2018/03/30 * 将一个字符串中的空格移...
2018-03-30 19:03:48 1068
原创 剑指offer算法(二)
将两个有序的数组合并成一个有序的数组在通常情况下,我们会开辟一个新的数组,然后比较两个数组的数字,然后将小的依次放入其中,这样做时间复杂度没有太大,但是空间复杂度大了初始化arr1数组,长度大于arr1和arr2长度之和,然后从后向前依次比较,从arr2中找出一个大于arr1的数字,然后插入到这个数字后面,依次循环,直到两个指针都指向数组的头package com.tangba...
2018-03-29 12:14:12 165
原创 剑指offer算法(一)
在有序二维数组中查找一个数是否存在一个二维数组,从上到下依次递增,从左到右依次递增,,给出一个key,在数组中查找是否存在,存在则返回该数字,否则返回-1package com.tangbaobao.offer;import org.junit.Test;/** * 二维数组的查找 * * @author 唐学俊 * @create 2018/03/28 **/p...
2018-03-28 17:41:52 360
原创 动态代理及其实现
代理方式实现优点缺点特点JDK静态代理代理类与委托类实现同一接口,并且在代理类中需要硬编码接口实现简单,容易理解代理类需要硬编码接口,在实际应用中可能会导致重复编码,浪费存储空间并且效率很低好像没啥特点JDK动态代理代理类与委托类实现同一接口,主要是通过代理类实现InvocationHandler并重写invoke方法来进行动态代理的,在invoke方法中将...
2018-03-15 13:48:23 95
原创 排序算法(一)之快速排序
快速排序快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。基本思路定义一个数,作为中轴数,定义两个指针,...
2018-03-15 12:25:25 211
原创 Java NIO学习(二)
三种IO在Java语言诞生以来,很多方面都在与时俱进或者不停的调优,影响虚拟机性能之一的IO同样也发生了几大阶段的变化B I/OBlock I/O(同步阻塞I/O): 在应用程序发起I/O请求的时候,线程只能等待数据返回,在此期间不能做其他任何的事儿;N I/ONew I/O(同步非阻塞I/O): JDK1.4之后,学习了Linux系统的多路复用技术(Select模式) ...
2018-03-15 10:35:45 105
原创 自定义简单Queue
队列及其特点队列是人为认为的一种数据结构,并不是计算机内存中真正存储的,所以队列的实现是对顺序结构或者链式存储的一种封装 特点:先进先出,通常有两个方法 入队:enqueue() 出队:dequeue() 基于单向链表实现队列注:上一节我们自定义了链表,此文队列底层运用上节的LinkedListpackage com.tangbaobao.queue;import c...
2018-03-11 22:05:41 374
原创 关于顺序存储和链式存储读写性能的比较(理论)
在内存中,数据有两种存储方式:顺序存储和链式存储,在Java中有也对应了两种封装的实现—>ArrayList和LinkedListArrayList数组的特点:长度固定,可以用索引直接找到元素 插入数据:由于ArrayList的底层封装着一个可变数组(在JDK1.8中,初始容量位10,如果所需容量大于数组容量,则扩容,扩容机制为:新数组=原来数组长度+原来数组长度>>...
2018-03-11 16:49:03 2485
原创 Java虚拟机的类加载机制
我们知道Java虚拟机执行的是编译后的字节码文件,那么Class文件是怎么加载,并且在虚拟机中执行的呢?虚拟机类加载机制分为三步加载—>连接—>初始化加载通过类的全限定名来获取定义此类的二进制流将这个自己流所代表的静态存储结构化位运行时数据区中的数据结构在内存中生成一个代表此类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口...
2018-03-11 12:28:31 175
原创 自定义简单LinkedList
数据结构我们知道,在数据结构中,有逻辑关系和物理关系:逻辑关系:人为认为集合:在一个范围内有多个数据,这多个数据相互没有练习线性:一对一树形:一对多图:多对多物理关系:内存存储顺序存储:数组链式存储:链表LinkedList的实现Linked是依靠一个Node类型的节点来存储它下一个节点的引用和本节点的数值 package com.tangba...
2018-03-10 22:37:57 241
原创 查找算法(一)之二分查找
二分查找思想二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找...
2018-03-09 17:11:00 182
原创 Java中大数字计算
用基本数据类型计算的缺点我们知道,在Java中int类型在内存中占4字节,每个字节为8位,所以int类型能表示的范围的值为:-2^31 ~ 2^31-1 doubel类型在内存中占用8字节,能表述的范围是:-2^64 ~ 2^64-1;用基本数据类型计算普通的数当然没问题,但是在越来越大数值的计算中,比如100的阶乘,基本数据类型显然不能担任此重担;用数组来计算大数字 加入开辟一个长...
2018-03-09 15:45:52 592
原创 排序算法(二)之插入排序
插入排序思想: 插入排序的基本思想是:每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。package com.tangbaobao.sort;import org.junit.Test;import java.util.Arrays;public class InsertSort { @Test pub...
2018-03-08 21:46:56 121
c3p0 jar包,数据库连接工具
2017-10-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人