简析hashmap的实现原理

提一下哈希表,看下百科: 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。 简单理解:1.通过某种算法(使用key的hash算法),...阅读全文

www.allocmem.com 2016-10-01 21:31 www.allocmem.co 等

[转]Java中的事务——JDBC事务和JTA事务

本文转载自http://www.hollischuang.com/archives/1658 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API实现。所以本文暂不讨论容器事务。本文主要介绍J2EE开发中两个比较基本的事务:JDBC事务和JTA事务。 JDBC事务 JDBC的一切行为包括事务是基于一...阅读全文

www.allocmem.com 2016-09-23 22:32 www.allocmem.co 等

java.util.Date,java.sql.Date及java.sql.Timestamp

java.sql.Date及java.sql.Timestamp继承自java.util.Date ,三个类都可以使用getTime()进行互换,java.util.Date有无参构造方法获取当前时间,其余两个没有。Timestamp为时间戳,和sql.Date的精确度一样,但表示当前时间更加方便(另外在hibernate中使用idea自动生成表的pojo时,会把sql.Date写为Timestamp),部分示例如下: package test; import java.sql.Date; im...阅读全文

www.allocmem.com 2016-09-18 20:35 www.allocmem.co 等

java collection Iterator的remove()方法

事情是这样的,今天在项目里用spring data jpa hibernate的SearchFilter返回一个List<Object>的时候,由于需求需要,必须再使用一定条件过滤部分元素,开始想iterator.remove()方法三下五除二就能解决,结果就悲剧了,前前后后搞了近一小时。下面上代码,同时记录一下:    Specification<Lawyer> specification = DynamicSpecifications.bySearchFilter(Lawyer.class,...阅读全文

www.allocmem.com 2016-09-12 17:09 www.allocmem.co 等

maven手动安装远程仓库中找不到的jar到本地仓库

只需要使用一个maven命令即可: mvn install:install-file -Dfile=(jar本地地址)/root/IdeaProjects/keta-customer/lib/patchca-0.5.0.jar -DgroupId=com.github.bingoohuang(groupId) -DartifactId=(artifactId)patchca -Dversion=(version)0.5.0 -Dpackaging=jar 即可利用pom像普通情况一样使用,在项目...阅读全文

www.allocmem.com 2016-09-09 23:23 www.allocmem.co 等

关于近期java研发工程师面试的一些总结

今天周五,从上个公司离职到现在,忙了3,4天,之前拿到offer的那家公司在往外包公司发展,办公环境也实在不行,于是便有了这几天忙活的事情,这几天投了不少,原本面试已经排到下周二,不过现在算是告一段落了,也拿到了一个初创公司的offer。下面是一些自我总结,方便自己以后查阅,不对也欢迎大家指正和补充。 1.关于oracle的列转行 以及oracle的存储过程 (当时并未回答上)google之主要可使用union all(列转行) ;case when then ,decode(行转列)等 参考h...阅读全文

www.allocmem.com 2016-07-29 16:05 www.allocmem.co 等

关于java研发工程师面试相关的部分参考

今天受邀去参加了某个公司面试的第二轮复试,今天复试的是公司的一个项目主管,感觉比之前面试的更懂技术一些,还问了一些比较刁钻的问题,在这里记录一些自己的不足和自己觉得比较有价值的东西,作为自己的部分参考。 ①关于docker和vmware优势 docker在磁盘空间上的节省不用说了,MB 与 GB的对比; VMware公司指出虚拟化会只会引入大约2%到4%的性能损失。在Docker容器中运行像Redis这样的应用程序,其性能是完全可以接受的,而其在安全、管理等方面的优势使得Docker容器成为虚拟...阅读全文

www.allocmem.com 2016-07-21 12:27 www.allocmem.co 等

spring AOP 动态代理 jkd动态代理和cglib动态代理 hibernate使用cglib延迟加载

spring 的AOP 实现 可以使用jdk的动态代理,也可以使用cglib的动态代理 先说下两者区别: 静态代理:代理之前就已经知道了代理者和被代理者 动态代理:代理之前并不清楚,在运行时使用反射机制动态生成代理类的字节码 无需我们手动编写它的源代码 jdk动态代理:java.lang.reflect 包中的Proxy类,InvocationHandler 接口提供了生成动态代理类的能力。它必须有被代理对象的接口和实现类,ciglib不需要接口,简单的说 jkd动态代理针对接口,而cglib动...阅读全文

www.allocmem.com 2016-07-19 22:03 www.allocmem.co 等

git本地版本落后仓库几个版本pull冲突相关

git中本地落后仓库几个版本pull冲突,但是自己又不想提交本地的代码到远程仓库,可以尝试使用下面的方法: 一种是使用git fetch,但是自己这个用得少 另外就是使用git pull git pull = git fetch + git merch 解决冲突时利用git stash 把本地代码保存起来 1.git pull origin master 报错:有冲突 不能拉取下来(本地和远程在同地方都有改动 ) 来自 https://git.coding.net/zhoudafu/ISM_D ...阅读全文

www.allocmem.com 2016-07-19 17:24 www.allocmem.co 等

Java快速排序的具体实现

最开始写快速排序花了不少时间,其实关于排序算法,最重要的是首先你要理解,各种排序算法的原理是什么,当你理解了具体的实现原理再来写程序的时候你就会觉得很轻松了。不多说,直接上代码: package Algorithm.sort; /** * 快速排序的实现 * @author zhoudafu * */ public class QuickSort { public void quickSort(int[] a,int low,int high){ int i = low; int j = hig...阅读全文

www.allocmem.com 2016-07-19 16:02 www.allocmem.co 等

关于java部分知识点的总结(三)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 dubbo构成: 2者(服务提供者【无状态】,服务消费者),2中心(服务注册中心,服务监控中心)。 (1) 连通性:连通流程 (2) 健状性:多数部分宕挂了,其余服务部分仍能正常使用 (3) 伸缩性:主要是伸,动态增加机器部署实例 public void ensureCapacity(int minCapacity) { ...阅读全文

www.allocmem.com 2016-07-19 16:00 www.allocmem.co 等

关于java部分知识点的总结(二)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 关于反射: super.getClass() 得到的依然是runtime当前类,若要得到真正的父类,需要用super.getClass().getSuperclass() 虽然这里写的是super,但其实用this也一样 Integer i01=59 的时候,会调用 Integer 的 valueOf 方法, 1 2 3 ...阅读全文

www.allocmem.com 2016-07-19 15:26 www.allocmem.co 等

关于java部分知识点的总结(一)

之前一直使用云笔记写自己遇到的一些体会,最近因为工作需要,准备回头梳理下以前自己学习的知识点,想把以前的记录下载博客里,既方便自己以后查阅,同时也能让自己有一个更深刻的记忆。 Cannot use this in a static context 在一个static代码块或者是static方法中,不能使用this和supper,因为static在jvm加载时就会初始化,而此时this和super可能并不存在。构造器也是隐式的static方法(关于以前记录的言论,但我现在google并没有找不出相...阅读全文

www.allocmem.com 2016-07-19 15:07 www.allocmem.co 等

关于java基础点的一些随笔

最近回头来啃一些java的基础知识,在此记录下个人的收获和理解。 1.关于位运算符的异或,简单的说就是在或||运算符的同时为1,1的时候,其结果为0,其他和或运算符的计算结果完全一致,这里写了下利用异或来达到,在不利用第三个变量的基础上,交换两个变量的值。 /** * Created by yan.chou on 16-7-18. * 不使用第三个变量实现两变量互换 */ public class Java3 { public static void main(String[] args) { ...阅读全文

www.allocmem.com 2016-07-18 20:55 www.allocmem.co 等

git branch

###从git拉取指定分支 1. 先clone下来 git clone https://git.coding.net/zhoudafu/gblog.git 2. 增加远程仓库(此步可省略,若添加远层仓库可参考) git remote add origin https://git.coding.net/zhoudafu/gblog.git 3. fetch下分支代码 git fetch origin coding-pages 4. 使用checkout切换分支 git checkout -b co...阅读全文

www.allocmem.com 2016-01-27 14:58 www.allocmem.co 等

芝麻分从本地mongo中获取有效数据工具

###引言:   起因:java接入芝麻分,接口数据为了提高效率,需要储存在mongo中,若接口调用则优先从本地mongo库中查询是否存在有效数据。 ###mongo查询: import com.alibaba.fastjson.util.TypeUtils; import com.lemon.datamarket.dao.mongo.ManageRepository; import com.lemon.datamarket.model.DataTransferObject; import co...阅读全文

www.allocmem.com 2017-01-16 22:00 www.allocmem.co 等

vim常用命令

三模式 命令模式 (command mode) -> 默认模式 插入模式 (insert mode)-> i 进入 底行模式 (last line mode) -> 输入 : 常用命令 光标移动 使用上下左右方向键 命令模式下:h向左、j向下 、k向上、l向右。 插入文本或行 vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式 a -> append ->在当前光标位置的右边添加文本,比如字符串为test,光标框住的s,即输入aa,则变为tesat i -> insert...阅读全文

www.allocmem.com 2018-05-19 12:22 www.allocmem.co 等

浅谈c++面向对象的封装,继承和多态

封装 c++的封装体现在class关键字上,一个类的定义将数据与操作数据的源代码进行有机的结合,形成一个“类”,封装一些具体实现,按需对外暴露部分属性和方法。 class BaseClass{ public: int a; void test1(); virtual void printFunc(){ cout<<"This is BaseClass."<<endl; } protected: int b; void test2(); private: int c; }; 继承 使用:符号表示类...阅读全文

www.allocmem.com 2018-05-23 22:29 www.allocmem.co 等

分布式版本控制系统mercurial hg常用命令

mercurial mercurial是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目。由于目前工作需要使用mercurial,这里记录下自己使用到的常用命令,作为参照,不定时更新。 常用命令 配置好类似git的ssh,使用hg clone ssh://code@xx.com/yy 克隆xx.com的yy项目 hg status => git status hg br...阅读全文

www.allocmem.com 2018-07-11 17:33 www.allocmem.co 等