摘要: 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行 阅读全文
posted @ 2018-07-17 23:07 xdyixia 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 问题:将m进制num转换为n进制 (2 <= m,n <= 62) ? 总体思路是:先将m进制转换为10进制,再将10进制转为n进制。 1、m进制数num转为10进制 从低位到高位按权展开即可。 例如:8进制1356 转为10进制 6*8^0 + 5 * 8^1 + 3 * 8^2 + 1 * 8^ 阅读全文
posted @ 2018-07-17 21:11 xdyixia 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 1,Java集合如Map、Set、List(当然stack也是)等所有集合只能存放引用类型数据,它们都是存放引用类型数据的容器,不能存放如int、long、float、double等基础类型的数据。 为什么? Java集合中实际存放的只是对象的引用,每个集合元素都是一个引用变量,实际内容都放在堆内存 阅读全文
posted @ 2018-07-17 20:36 xdyixia 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 1、用new语句创建对象,这是最常见的创建对象的方法。 2、通过工厂方法返回对象,如:String str = String.valueOf(23); 3、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例 阅读全文
posted @ 2018-07-17 17:33 xdyixia 阅读(2445) 评论(0) 推荐(0) 编辑
摘要: 正确答案为:C D。 原因为: A 没有提供默认实现; B 选择使用了private来修饰(在接口中是不允许使用private修饰符来修饰方法的)。 在做这个题的时候,自己基本是处于懵逼状态,因为关于接口自己只知道:接口中的定义的方法一定是抽象的方法,不允许有默认实现。 今天写了一个Demo实验了下 阅读全文
posted @ 2018-07-17 17:12 xdyixia 阅读(19096) 评论(1) 推荐(2) 编辑
摘要: 要想判断两个对象是否相等,不能通过比较两个对象的引用是否相等,这是永远都得不到相等的结果的,因为两个对象的引用永远不会相等,所以正确的比较方法是直接比较这两个对象,比较这两个对象的实质是不是一样的,即这两个对象里面的内容是不是相同的,通过比较这两个对象的属性值是否相同而决定这两个对象是否相等。 下面 阅读全文
posted @ 2018-07-17 16:42 xdyixia 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法: 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。 为何Object类需要这样一个方法?它有什么作用呢 阅读全文
posted @ 2018-07-17 16:13 xdyixia 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们 阅读全文
posted @ 2018-07-17 16:09 xdyixia 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 两种不同的克隆方法,浅克隆(ShallowClone)和深克隆(DeepClone)。 在Java语言中,数据类型分为值类型(基本数据类型)和引用类型,byte、short、int、long、flout、double、boolean、char8种简单数据类型,引用类型包括类、接口、数组等复杂类型。浅 阅读全文
posted @ 2018-07-17 11:35 xdyixia 阅读(324) 评论(0) 推荐(0) 编辑