涉及的参考链接:https://www.runoob.com/java/java-collections.html,http://how2j.cn/k/collection/collection-arraylist/363.html 一、为什么常用集合而不用数组? 引用集合代替数组,数组初始化必须声 ...
分类:
编程语言 时间:
2019-08-19 21:25:41
阅读次数:
109
1.HashSet Set集合,无索引,不可以重复,无序 在使用 list 集合时,add方法返回的永远时true,有序,有索引 在使用 Set 集合时,add方法再添加重复元素时,返回的false,无序,无索引 1.储存自定义对象保证元素的唯一性 2.当 hashset 存储自定义对像时(例:st ...
分类:
其他好文 时间:
2019-08-19 19:26:27
阅读次数:
52
1. new一个对象在Java内部做了哪些工作? 从静态角度来看,new一个对象表示创建一个类的对象实例。 从JVM运行角度来看,当JVM执行到new字节码时,首先会去查看类有没有被加载到内存以及初始化,如果是第一次使用该类,则首先加载该类。加载完成后便会在堆内存分配该对象实例的内存空间,虚拟机栈分 ...
分类:
其他好文 时间:
2019-08-18 09:37:03
阅读次数:
104
HashSet的存储原理: 1、将要传入的数据根据系统的hash算法得到一个hash值; 2、根据hash值可以得出该数据在hash表中的位置; 3、判断该位置上是否有值,没有值则把数据插入进来;如果有值则再次判断传入的值与原值是否地址或equals相同,如果相同则不存,否则通过链表的方式 存储到该 ...
分类:
其他好文 时间:
2019-08-18 00:01:39
阅读次数:
104
String: 1,是字符串常量,一旦创建就不能修改。对于已经存在了的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去。 2,String也是final类,不能被继承。 3,而且String是对象而不是基本类型。 4,string重写了equals方法和hashCode()方法。 ...
分类:
编程语言 时间:
2019-08-15 19:41:40
阅读次数:
85
首先Object源码publicStringtoString(){returngetClass().getName()+"@"+Integer.toHexString(hashCode());}问题:为什么要将hashCode()转换为16进制。答:hashCode()方法返回的是此对象在内存中的地址,是用×××表示的。1.内存的地址在计算机行业通常是由16进制进行表示,有的人可能会问,转换的过程会
分类:
其他好文 时间:
2019-08-14 23:46:08
阅读次数:
120
来自刚被某互联网公司录取的朋友的分享。 整理的面试题1: 1.Java里面有哪几种基础数据类型, 2.Char为何是两个字节, 3.Object有哪些方法 4.final修饰变量,函数,类的作用, 5.ArrayList的父类有哪些, 6.为什么覆盖equal的时候必须覆盖hashcode, 7.反 ...
分类:
编程语言 时间:
2019-08-10 21:59:18
阅读次数:
278
1.简介 HashMap 根据键的 hashCode 值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap 最多只允许一条记录的key为 null,允许多条value的值为 null。 HashMap 非线程安全,即任一时刻可以有多个线程同时 ...
分类:
编程语言 时间:
2019-08-10 17:15:38
阅读次数:
93
有面试官会问:你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?equals和hashCode都是Object对象中的非final方法,它们设计的目的就是被用来覆盖(override)的,所以在程序设计中还是经常需要处理这两个方法。下面我们一起来 ...
分类:
其他好文 时间:
2019-08-07 19:33:00
阅读次数:
95
①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法 ...
分类:
其他好文 时间:
2019-08-07 12:03:54
阅读次数:
103