- 博客(7)
- 问答 (2)
- 收藏
- 关注
转载 java 重写equals和hashCode方法原则
根据《effective java》第七条之规定:在改写equals的时候遵守通用约定 当符合以下条件时不需要重写equals方法: 1. 一个类的每一个实例本质上都是唯一的。 2. 不关心一个类是否提供了“逻辑相等”的测试功能 3. 超类已经改写了equals方法,并且从超类继承过来的行为对于子类也是合适的。 4. 一个类时私有的或...
2018-03-11 22:17:38 2443
原创 随笔:java类加载机制详解
一.简述 当我们看到MyClass mc = new MyClass()的时候,或者说当我们看到new这个关键字的时候,我们就知道,会有一个MyClass类的实例被创建出来,也知道MyClass实例是经过JVM根据MyClass类文件创建的。但是我们有没有想过一个问题:JVM在遇到new这样关键字的时候到底做了什么? 你可能会说:在堆(heap)中开辟一个内存空间用来保存MyClass...
2018-03-08 23:01:25 138
原创 Redis之路(三)
Redis的常用技术一.Redis事务 Redis支持事务管理,尽管Redis事务没有数据库事务那么强大,但是某些场合下,使用redis事务代替数据库事务,那么可以保证数据一致性的同时大幅提高性能。 Redis提供事务管理,是为了解决并发情况下数据一致性的问题,Redis事务使用multi-exec命令组合,使用它可以保证: 1)事务是一个被隔离的操作,事...
2018-03-06 18:49:25 160
原创 随笔:深入理解HashMap——put和get方法的源码分析
hashmap是一种特殊的数据结构,在jdk1.7以及之前,采用拉链法(数组+链表)实现哈希表,在jdk1.8的时候,加入了红黑树的数据结构,提高了散列值冲突情况下的查询效率。直接看源代码(参考jdk1.8):1.hashmap是如何存储和查询数据的: 我们都知道要通过put(K key, V value)方法向hashmap中存储键值对,下面我们就从put方法展开,对存储过程进行详...
2018-03-05 17:23:33 322
原创 分析JVM虚拟机栈的栈帧结构
1.先说虚拟机栈: 虚拟机栈是位于虚拟机内存中的一片内存区域,它是线程私有的(一个线程分配一个虚拟机栈空间)。它用来存储栈帧,一个栈帧就对应着一个方法。栈帧的出栈和入栈对应着方法的结束和调用的开始。2.再说栈帧 一个完整的栈帧保存着以下信息:局部变量表,操作数栈,栈帧信息三大部分,下面我们依次解析这三个部分。 2.1局部变量表: 局部变量表存储着方法的参数和局部变量...
2018-03-04 21:16:35 849
原创 Java关于方法调用的理解(涉及JVM)
方法调用的过程就是找方法的过程,在完全了解java方法调用过程之前,我们需要知道一些额外的知识: 首先,我们对java世界中的所有方法进行分类:虚方法以及非虚方法。 非虚方法:静态方法(static修饰),私有方法(private修饰),父类方法,构造方法,final方法。 虚方法:不属于以上五种类型的方法都是虚方法。 其次,我们再了解一下java世...
2018-03-01 21:23:12 475
原创 Redis之路(一)
Redis概述一.传统的JavaWeb项目 传统的JavaWeb项目使用数据库进行存储数据,而数据库持久化数据主要是面向磁盘,磁盘的读写速度比较慢。在一般的管理系统中,磁盘的读写速度是可以接受的,但是在互联网中,经常需要系统在极短时间内完成成千上万次的读写操作,那么这种读写速度就是不可接受的,严重情况下还会导致数据库瘫痪。二.NoSQL技术 为了在互联网中克服上面的问题...
2018-02-26 23:00:21 182
空空如也
有关HTML和CSS的一个问题:
2017-03-09
求解CSS伪类中的一个问题
2017-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人