![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
文章平均质量分 63
wxy941011
这个作者很懒,什么都没留下…
展开
-
JAVA值传递和引用传递
1:按值传递是什么指的是在方法调用时,传递的参数是按值的拷贝传递。示例如下:按值传递重要特点:传递的是值的拷贝,也就是说传递后就互不相关了。示例如下:2:按引用传递是什么指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。示例如下:3:按引用传递的重要特点传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。示例如下:...原创 2018-03-14 18:20:43 · 461 阅读 · 0 评论 -
重写equals方法
object对象中的 public boolean equals(Object obj),指示其他某个对象是否与此对象“相等”。这里的相等指的是比较的两方指向同一个对象对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象(就是同一块内存地址),此方法才返回 true; 但是这一性质并不符合我们生活所需,比如一个不允许有重复值的对象数组,我们的规定,保存的数据相同的对象就属于重复...原创 2018-06-28 01:08:13 · 444 阅读 · 0 评论 -
开放地址法
讲了讲项目还是回到基础中来吧,毕竟根基打得越牢固,才能学的更快更稳今天来分享一些我学习整理的关于开放地址法的内容:开放地址法 根据以上hash函数计算数组下标时,当遇到数据存放的冲突时就需要重新找到数组的其他位置。关于开放地址法通常需要有三种方法:线性探测、二次探测、再哈希法。 1.开放地址法:容易产生堆积问题;不适于大规模的数据存储;散列函数的设计对冲突会有很大的影响;插入时可能会出现...原创 2018-06-20 00:46:21 · 11857 阅读 · 1 评论 -
final关键字
final关键字1 final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:2 实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final当final修饰的成员变量为引用数据类型时,在赋值后其指向地址无法改变,但是对象内容还是可以改变的3 final修...原创 2018-06-18 23:55:06 · 197 阅读 · 0 评论 -
余数分散算法
余数分散算法缓存系统中应用比较多的是余数计算分散和一致性 HASH 计算分散。 原理:余数计算分散法简单来说,就是 “ 根据服务器台数的余数进行分散 ” 。求得传入键的整数哈希值( int hashCode )。使用计算出的 hashCode 除以服务器台数 (N) 取余数( C=hashCode % N )在 N 台服务器中选择序号为 C 的服务器。 特点:余数计算的方法简单,数据的分...原创 2018-06-18 23:48:00 · 971 阅读 · 0 评论 -
一致性哈希算法
1.算法背景: 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ;hash(object)%N 一切都运行正常,再考虑如下的两种情况; 1.一个 cache 服务器 m down 掉...原创 2018-06-18 23:45:22 · 115 阅读 · 0 评论 -
迭代器Iterator
关于Iterator主要有三个方法:hasNext()、next()、remove() hasNext:没有指针下移操作,只是判断是否存在下一个元素 next:指针下移,返回该指针所指向的元素 remove:删除当前指针所指向的元素,一般和next方法一起用,这时候的作用就是删除next方法返回的元素迭代器原理1、当创建完成指向某个集合或者容器的Iterator对象是,这是的指针其实指...原创 2018-06-01 23:11:52 · 126 阅读 · 0 评论 -
fail-fast 机制
fail-fast简介fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事件。...原创 2018-06-01 22:34:52 · 124 阅读 · 0 评论 -
object中的方法
object中的方法1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。2.getClass方法final方法,获得运行时类型。3.toString方法该方法用得比较多,一般子类都有覆盖。4.finalize方法该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。5.equal...转载 2018-06-22 00:54:55 · 3555 阅读 · 0 评论 -
包装类和基础类型比较大小的问题
int和int之间,用==比较,肯定为true。基本数据类型没有equals方法int和Integer比较,Integer会自动拆箱,== 和 equals都肯定为trueint和new Integer比较,Integer会自动拆箱,调用intValue方法, 所以 == 和 equals都肯定为trueInteger和Integer比较的时候,由于直接赋值的话会进行自动的装箱。所以当值在[-12...原创 2018-06-22 00:46:21 · 4344 阅读 · 0 评论 -
重载与重写
发现面试很喜欢问这个问题,于是便好好琢磨了一下:首先,重载和重写都是多态的一种体现方式。重载是编译期间的活动,重写是运行期间的活动。 其次,重载是在一个类中定义相同的名字的方法,方法的参数列表或者类型要互相不同,但是返回值类型不作为是否重载的标准,可以修改可见性; 重写是不同的,要求子类重写基类的方法时要与父类方法具有相同的参数类型和返回值,可见性需要大于等于基类的方法 最...原创 2018-06-21 00:33:39 · 229 阅读 · 0 评论 -
面向对象和面向过程的区别以及优缺点
我理解的面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输...原创 2018-06-12 00:09:04 · 633 阅读 · 0 评论 -
java内存模型
一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因此...原创 2018-05-25 18:47:06 · 101 阅读 · 0 评论 -
Java中的hashcode方法
浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法:public native int hashCode();根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。 为何Object类需要这样一个方法?它有什么作用呢?...原创 2018-05-14 10:02:36 · 175 阅读 · 0 评论 -
HashSet源码分析
一、 HashSet概述:HashSet 是一个没有重复元素的集合。它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。HashSet是非同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。这通常是通过对自然封装该 set 的对象执行同步操作来完成的。如果不存在这样的对象,则应该使用 Collectio...原创 2018-05-05 13:31:18 · 126 阅读 · 0 评论 -
内部类
1.为什么使用内部类?使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的或者是父类 )实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响1.1.使用内部类最大的优点就在于它能够非常好的解决多重继承的问题,使用内部类还能够为我们带来如下特性:(1)、内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。(2)、在单个外围类中,可以让...原创 2018-03-13 21:29:41 · 162 阅读 · 0 评论 -
DoubleCheck的几种方法总结
第一种:非延迟加载单例类public class Singleton { private Singleton() {} private static final Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; } }...原创 2018-07-18 00:31:06 · 14451 阅读 · 0 评论