ICode9

精准搜索请尝试: 精确搜索
  • 剑指offer计划23( 数学简单)---java2021-09-23 10:04:20

    1.1、题目1 剑指 Offer 39. 数组中出现次数超过一半的数字 1.2、解法 万能哈希表,数学方法看到我要吐血。。。 1.3、代码 class Solution { public int majorityElement(int[] nums) { HashMap<Integer,Integer> map = new HashMap(); for(int i=0;i<nums.len

  • TreeMap的使用和底层实现2021-09-21 21:05:23

    TreeMap是红黑二叉树的典型实现。我们打开TreeMap的源码,发现里面有一行核心代码: 1 private transient Entry<K,V> root = null;       root用来存储整个树的根节点。我们继续跟踪Entry(是TreeMap的内部类)的代码:         可以看到里面存储了本身数据、

  • TreeMap学习(基于JDK 1.8)2021-09-20 20:31:22

    JDK 1.8开始,HashMap中冲突的entry数大于8,会将链表转为红黑树,以减少查询耗时在学习红黑树的过程中,了解到TReeMap使用红黑树存储entry为了加深对红黑树的理解,基于JDK 1.8源码,学习TreeMap说实话,本人好像从未使用过TreeMap

  • 集合——HashTable2021-09-19 16:03:58

    Hashtable 线程安全 键/值不可为null 无序 已被淘汰掉 实现 public class test_01 { public static void main(String[] args) throws IOException { /* 初始化数组大小为11,数组加载因子0.75f public Hashtable() { this(11,

  • JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介2021-09-18 11:58:05

    JDK提供了大量优秀的集合实现供开发者使用,合格的程序员必须要能够通过功能场景和性能需求选用最合适的集合,这就要求开发者必须熟悉Java的常用集合类。本文将就Java Collections Framework中常用的集合及其特点、适用场景、实现原理进行介绍,供学习者参考。当然,要真正深入理解J

  • java8 新特性之Lambda 表达式2021-09-17 19:02:09

    应用场景 1. for循环 2. 线程中的匿名内部类 3. 比较器中的匿名内部类 新建 Expression.class import lombok.extern.slf4j.Slf4j; import java.util.Arrays; import java.util.List; /** * Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014

  • HashMap底层实现2021-09-14 15:31:05

    先放张图: 一、先来回忆下我的面试过程  问:“你用过HashMap,你能跟我说说它吗?”  答:“用过,HashMap是一种<key,value>的存储结构,能够快速将key的数据put方式存储起来,然后很快的通过get取出来”,然后说“HashMap不是线程安全的,HashTable是线程安全的,通过synchronized实现的。HashMap

  • linus提到过的单链表删除节点算法2021-09-13 01:02:28

    linus 提到过的单链表删除节点算法 1 问题描述 在TED上做过一次访谈,linus提到了关于编程的品味,他举了一个例子: linus在TED演讲_哔哩哔哩_bilibili 见原视频15'前后 解法1 解法2 这个例子要删掉一个链表的节点项 传入的参数是一个节点的引用 解法1,使用了prev remove_list_entry(e

  • linkedhashmap实现lru时遇到的问题2021-09-12 17:33:35

    看了一些高浏览转载的博客,大部分都说map.get(1);会改变map中的顺序,经实践发现不会改变。 import java.util.LinkedHashMap; import java.util.Map; class Map1 { public static void main(String[] args) { Map<Integer,Integer> map = new LinkedHashMap<>();

  • Java 集合及底层源码分析,Java零基础入门pdf2021-09-12 09:06:43

    如果该索引位置元素对应的hash值和待插入的元素的hash值相同,且是同一个引用或者是内容相同的话就不能添加 如果索引位置有值且满足一颗红黑树的话,则调用红黑树的算法进行添加 如果索引位置有值且是一个链表的话,则循环比较链表,如果存在相同元素的话,则不允许添加,否则添加到

  • ThreadLocal内存泄露的原因及避免 -- java面试2021-09-11 13:33:36

    内存泄漏 不会再被使用的对象或者变量占用的内存不能被回收,就是内存泄露。 强引用与弱引用 强引用:使用最普遍的引用(New),一个对象具有强引用将不会被GC回收。当内存空间不足时,jvm宁愿抛出OutOfMemoryError错误使程序终止,也不回收这种对象。 弱引用:使用java.lang.ref.WeakRefe

  • Java多线程-ThreadLocal2021-09-11 13:00:55

    1. ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类。主要是做数据隔离,填充的数据只属于当前线程,变量的数据对别的线程而言是相对隔离的,在多线程环境下,可以防止自己的变量被其它线程篡改。 2. ThreadLocal的核心机制 每个Thread线程内部都有一个ThreadLocalMap。但是

  • java容器的使用2021-09-11 09:01:16

    Map的正确循环调用 for(Map.Entry<String, String> entry: params.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); }         Iterator<Entry<UserEntity, Long>> iter = countTaskOfUserMap.entry

  • 手写迷你hashMap2021-09-08 16:01:52

    public interface MyMap<K,V> { V put(K k,V v); V get(K k); interface Entry<K,V>{ K getKey(); V getValue(); } } public class MyHashMap<K,V> implements MyMap<K,V> { //默认容量 private static int defaultLength = 16; //加载因子 pr

  • Java基础 - Map2021-09-07 21:02:59

    Map接口特点 Map与Collection并列存在,用于保存具有映射关系的数据:Key-Value(双列元素)Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中Map中的key不允许重复,原因和HashSet一样Map中的value可以重复Map中的key可以为null,value也可以为null;但是key只有一个为

  • 实现HashMap的顺序存储2021-09-07 15:01:48

    从Java API知道,LinkedHashMap继承于HashMap,并且通过双向链表保存各节点的位置信息,实现了顺序存储。但是如果让你自己写一个顺序存储的HashMap,将如何下手呢?从研究LinkedHashMap的源码开始入手,究竟它比HashMap多了哪些东西,让它拥有了顺序存储的能力。 1.放入元素(put) 从放入一个元素

  • HashMap详解2021-09-06 23:59:20

    HashMap详解 一、HashMap数据结构1、HashMap数据结构2、HashMap相关参数3、hash计算4、hash碰撞 二、HashMap扩容原理JDK1.7 存储数据过程1、是否存在相同hash、key2、判断不需要扩容3、需要扩容单线程扩容过程多线程扩容过程多线程扩容引发闭环 JDK1.8 一、HashMap数

  • TreeMap分析2021-09-06 21:57:48

    TreeMap分析 TreeMap和HashMap不同点 TreeMap的数据结构和HashMap不一样,TreeMap是基于红黑树实现的。而HahsMap是数组 + 链表(红黑树)来实现的。 TreeMap不需要调用Hash方法来算hash值。 TreeMap一开始就是红黑树,不像HashMap一样,达到特定的条件之后才会变为红黑树。 TreeMa

  • 区的分类&XDES Entry(3)---独立表空间结构(二十九)2021-09-05 17:59:13

    上篇文章介绍了,表空间分为若干区,叶子节点和非叶子节点又分为不同的段,还有回滚段等,段里会存储碎片区不同数据页的集合和完全区的集合,碎片区是为了在数据刚存入表时候,存储不同段内的数据,当段内数据有32个碎片区时,会升级成为完整的区属于特有的段。 独立表空间结构(2)之段---InnoDB

  • Fault-Tolerant Virtual Machines阅读笔记2021-09-05 17:33:48

    《The Design of a Practical System for Fault-Tolerant Virtual Machines》   FT Protocol primary挂了,backup VM接管后很可能初始状态和primary挂的时候不一样 因为non-deterministic events发生了,但是没有同步到,只同步了deterministic 当backup VM满足了Output Requirement,这

  • 【Java代码之美】 -- 通过Value获取Map中的键值Key的四种方法2021-09-05 14:34:38

    1.简介 最近在项目中遇到一个EasyExcel中需要取invokeHeadMap中headMap里面的具体列名的集合Index,就遇到了需要从Map从反向通过Value取对应的Key的值。 通过搜索了网上比较好的文章案例,于是我写出了下面的Stream流式处理方法代码: @Override public void invokeHeadMap(Map<Intege

  • 数据结构之内核链表2021-09-04 21:33:35

    文章目录 内核链表 .h 文件基于Linux的铁路管理系统简单应用的几个小程序 建议在清楚单向和双向循环链表之后再来使用内核链表,不要上来就使用内核链表 本文直接贴出了内核链表的list.h文件,并相应使用的几段代码和项目 内核链表 .h 文件 #ifndef __DLIST_H #define __DL

  • 【Java Map】简述TreeSet2021-09-04 11:04:54

    一、引出正题 提出需求: 需要对一组数据进行排序,并剔除重复数据。 解决思路: ①:首先你可能会想到使用 List + Comparator,当然这是一种很普遍常用的实现方式。 ②:然后在排序的同时剔除重复数据,那这时候你肯定会跟已有的节点做比较(循环比较,或者将节点存放在一个map中再通过contai

  • 第15章-解释器及解释器生成器2021-09-03 09:35:17

    方法解释执行时需要解释器与解释器生成器的支持。解释器与解释器生成器的继承体系如下: 下面详细介绍解释器与解释器生成器。 1、解释器 解释器是一堆本地代码例程构造的,这些例程会在虚拟机启动的时候写入到StubQueue中,以后解释执行时就只需要进入指定例程即可。 解释器的继承体系

  • 第14篇-生成重要的例程2021-08-31 10:33:54

    之前介绍过TemplateInterpreter::initialize()函数,在这个函数中初始化了模板表和StubQueue实例,通过如下方式创建InterpreterGenerator实例: InterpreterGenerator g(_code); 在创建InterpreterGenerator实例时会调用generate_all()函数,如下:  InterpreterGenerator::Interprete

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有