【java】兴唐第二十四节课

2024-05-01 05:32

本文主要是介绍【java】兴唐第二十四节课,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HashMap中put函数的源码分析:
(一)知识点:
1、方法resize()的作用是扩容

2、

 if ((p = tab[i = (n - 1) & hash]) == null)

其中n-1代表最后一个元素的下标,经过和hash的&后获取当前存储node的位置(&运算后一定会得到一个0 到n-1之间的位置)
(二)原理
(1)先判断用于存储的数组是否为null如果为空则进行初始化数组。
(2)然后计算出要存储node对象的位置,如果数组中对位置为空,则直接储存。储存的方法是创建一个newNode,将我们将要存储的node对象与这个位置所有的元素进行比对,如果都不一样就不存了。

注:Map的底层是一个单向链表(只有一个向下指的指针)
如果不为空,况链表获取出来
待补:resize的源码解析
知识点
1、
是Integer而不是int因为value值可以是null,而int的值不能为null

Map<String, Integer>

2、TreeSet是一个有序集合,但是没有具体的索引,不能get某一个位置的元素,当插入一个新的元素时,TreeSet的元素可能重新排序,所以插入删除元素的效率较低。

3、HashSet集合对象判断数据元素是否重复:
先检查hashCide值,如果相同则调用equals方法,如果equals返回真表示重复,否则不重复。

4、使用工具类对List的对象进行排序
代码实现

List tSet = new ArrayList();tSet.add(new NoComparableStudent("20181602", "小强1", 99));tSet.add(new NoComparableStudent("20181603", "小强2", 91));tSet.add(new NoComparableStudent("20181604", "小强3", 92));tSet.add(new NoComparableStudent("20181605", "小强4", 94));tSet.add(new NoComparableStudent("20181606", "小强5", 97));  Collections.sort(tSet,new StudentComparator());System.out.println(tSet);

注: 接口不能是Collection,因为Collention是无序的。

5、缓存:
例题:

public static void main(String[] args) {Integer a = 100, b = 100;Integer c = 1000, d = 1000;System.out.println("a == b" + (a == b));System.out.println("c == d" + (c == d));}

输出结果为:
a == b true
c == d false
解释:
java对部分经常使用的数据采用缓存技术,即第一次使用该数据则创建该数据对象并对其进行缓存,当再次使用等值对象时直接从缓存中获取,从而提高了程序执行的性能。

部分数据包括:
(1)byte、shrort、int和long所对应的包装类所对应的数据缓存范围为:
-128~127
(2)float和double没有缓存范围
(3)char所对应的是 0~127
(4)boolean缓存的数据为true和false

这篇关于【java】兴唐第二十四节课的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/950820

相关文章

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

java如何解压zip压缩包

《java如何解压zip压缩包》:本文主要介绍java如何解压zip压缩包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解压zip压缩包实例代码结果如下总结java解压zip压缩包坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.