Java

关于HashMap遍历的四种方式,以及为什么要用entry

1.问题 如何遍历HashMap,以及其中一种遍历方式中,我们为何需要先转为Map.Entry后,再遍历Map呢?而且是比较推荐的方式? 2.解决 参考:关于HashMap遍历,为什么要用entry HashMap中推荐使用entrySet方式遍历Map类集合KV而不是keySet方式遍历 2.1 为何使用Map.Entry 阅读《阿里巴巴Java开发手册终极版v1.3.0》时,看到如下一句话:

循环高级综合练习

循环高级综合练习 无限循环和跳转控制语句 无限循环 无限循环:循环一直停不下来。 格式: for: while: do...while: 注意事项 无限循环的下面不能再写其它代码了,因为循环永远停不下来,那么下面的代码永远执行不到。 跳转控制语句 跳转控制语句:在循环的过程中,跳到其他语句上执行。 练习 案例1:小老虎吃包子 小老虎吃包子,第三个包子有虫子,跳过。 案例2:小

Java学习笔记——第四天

数组 数组是什么 数组就是一个容器,用来存一批同种类型的数据。 数组有什么用 遇到批量数据的存储和操作时,数组比变量更适合。代码简洁,逻辑清晰。 数组的定义 静态初始化数组 定义数组的时候直接给数组赋值。 格式1(完整格式) 格式2(简化格式) 使用场景 适合一开始就知道要存入哪些元素值的业务场景。 动态初始化数组 定义数组时先不存入具体的元素值,只确定数组存储的数据类型和数组的长度。 格式

Volatile关键字原理

一、如果一个变量被volatile关键字修饰,那么所有线程都是可见的。所谓可见就是,当一条线程修改了这个变量值,新值对于其他线程来时是立即可见的; 而普通变量不能做到这一点。   1、现在计算机缓存架构:    CPU与内存之间存在缓存。   2、Java内存模型(JMM:java memory model)。   这里的主内存再j

CompletableFuture使用说明

前言 创建线程的方式只有两种:继承Thread或者实现Runnable接口。 但是这两种方法都存在一个缺陷,没有返回值 Java 1.5 以后,可以通过向线程池提交一个Callable来获取一个包含返回值的Future对象 Future接口的局限性 当Future的线程进行了一个非常耗时的操作,那我们的主线程也就阻塞了。 当我们在简单业务上,可以使用Future的另一个重载方法get(long,T

Spring Boot整合邮件发送

整合邮件发送功能 Spring Boot 2.x集成了mail模块 在pom.xml中引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </d

数据结构总纲

一 概述 Java 集合, 也叫作容器,主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要的子接口:List、Set 和 Queue Java 集合框架如下图所示:   List ArrayList:Object[] 数组。 Vector:Object[] 数

1_IOC容器概述

IOC容器 IOC容器是Invension of Control的简写,这是一种设计思想,是一个重要的面向对象变成法。 Spring通过IOC容器来管理所有Java对象的实例化和初始化,控制对象与对象的依赖关系。我们将由IOC容器管理的Java对象称之为Spring Bean,它与使用new关键字创建出来的Java对象没有任何区别。(首先在配置文件或者注解里面定义bean的相关信息,然后通过Bea

二维前缀和

二维前缀和 感谢灵神 作者:灵茶山艾府 链接:https://leetcode.cn/circle/discuss/UUuRex/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 力扣【周赛387】100237. 元素和小于等于 k 的子矩阵的数目

新电脑装编程配置(jdk、MySQL、navicat、idea、Maven、gitee、环境配置)

一、JDK(java运行环境,不安装不能在自己电脑上运行java语言)   1.打开安装包              2.选择安装目录 (建议选择非系统盘)             3.安装JRE(最好和JDK分开文件夹、建议选择非系统盘)       &nb

jdk内置的一些工具类

目录java中一些工具类一. java.util.Objects类1. 介绍2. 方法二. java.util.Collections类1. 介绍2. 方法三. java.nio.file.Files类1. 介绍2. 方法2.1. 复制2.2. 创建2.3. 删除2.4. 判断文件是否存在2.4. 查找文件2.5. 获取, 检查文件的属性或状态2.6. 直接将一个字符文件按行读入2.7. 返回两个

npm 包 package.json 配置文件

package.json 文件 每个前端项目中都有 package.json 文件,它是用于声明依赖的 npm 包配置文件。 1. 生成 package.json 文件 name: 项目名称,必须字段。 version: 项目版本,必须字段。 description: 项目描述。 main: 入口文件。 scripts: 可运行的 npm 命令。 keywords: 关键字。 author:

Hello Markdown

Hello Markdown Markdown是一种轻量级的「标记语言」。 专注于文字内容; 纯文本,易读易写,可以方便地纳入版本控制; 语法简单,没有什么学习成本,能轻松在码字的同时做出美观大方的排版。 使用 Markdown 与使用 Word 类编辑器 不同。在 Word 之类的应用程序中,单击按钮以设置单词和短语的格式,并且,更改立即可见。而 Markdown 与此不同,当你创建 Mar

Java笔记:Lambda表达式

Lambda表达式在Java中是函数式编程的一种体现,允许把函数作为一个方法的参数传递进方法中,或者将函数作为方法的返回值。 1. 语法和基础使用 语法: parameters是参数列表,如果没有参数,则需要使用一个空括号 () -> ... 。 如果只有一个参数,则可以不用括号 parameter -> ... (推荐),也可以使用括号 (parameter) -> ...

多线程限流工具类-Semaphore

Semaphore介绍 Semaphore(信号量)是JAVA多线程中的一个工具类,它可以通过指定参数来控制执行线程数量,一般用于限流访问某个资源时使用。 Semaphore使用示例 需求场景:用一个核心线程数为6,最大线程数为20的线程池执行任务,但是要求最多只能同时运行3个线程 代码: (结果分析)从输出结果可以看出:最多只能同时开启3个线程(创建Semaphore时指定线程数量),只

centos7安装netcat

如果yum install -y netcat 失败,可以用下面方式离线安装 安装依赖 下载解压netcat 安装 使用 能耍的时候就一定要耍,不能耍的时候一定要学。 天道酬勤,贵在坚持

Java基础学习2 | 关键字、字面量、标识符、变量、数据类型

关键字 关键字:在Java语言中,关键字是指赋予了特定含义的英文单词。 关键字特点: 1)关键字的字母全部小写。 2)常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。 java中最重要的关键字:class关键字 class 用于创建或定义一个类,是Java最基本的组成单元。 字面量 字面量在编程语言中是指用于表示固定值的符号。 如:String age = "23" 中,"23"是字符串

dremio ProfileStore 简单说明

以前简单说明过dremio 的jobprofile query,现在简单说明下dremio ProfileStore 参考实现 如下图,实际上只有一个LocalProfileStore,数据是存储咱爱kv storage 中的,但是对于kv 存储的只有完成的profile,其他阶段的数据是直接存储在 内存中的 使用 目前ProfileStore的实现只有LocalProfileStore,对

json 的基本类型

JSON(JavaScript Object Notation)主要支持以下6种基本数据类型: 字符串(String):由一系列Unicode字符组成的序列,用双引号括起来表示。例如:"Hello, world"。注意,在JSON中不能使用单引号来表示字符串,双引号是特殊字符。 数字(Number):可以是整数或浮点数。JSON中没有复数类型或特殊的有理数类型。例如:42,97,12或82.44

为什么HashMap的键值可以为null,而ConcurrentHashMap不行?

写在开头 昨天在写《HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!》这篇文章的时候,漏了一个知识点,直到晚上吃饭的时候才突然想到,关于ConcurrentHashMap在存储Key与Value的时候,是否可以存null的问题,按理说这是一个小问题,但build哥却不敢忽视,尤其在现在很多面试官都极具挑剔的环境下,万一同学们刷到了咱的博客,回答中遗漏了这个小

Java引用类型解析:掌握强引用、软引用、弱引用和幻象引用的妙用

  概述:Java中的引用分为强引用、软引用、弱引用和幻象引用。强引用是最常见的,不会被垃圾回收;软引用在内存不足时才被回收;弱引用在下一次垃圾回收时回收;幻象引用用于检测对象是否已被回收。它们各自适用于不同场景,帮助开发者更灵活地管理对象生命周期,避免内存泄漏。 在Java中,引用是一种机制,用于在进行垃圾回收时确定对象是否可被回收。Java中的引用主要分为强引用、软引用、弱引用和

redis 工具类

一、Redis工具类 一、RedisUtil ​ 直接用RedisTemplate操作Redis,需要很多行代码,因此直接封装好一个RedisUtils,这样写代码更方便点。这个RedisUtils交给Spring容器实例化,使用时直接注解注入。 二、RedisUtil  

Ehcache 介绍(2)--Ehcache2 基本使用

本文主要介绍 Ehacche2 的基本使用,文中所使用到的软件版本:Java 1.8.0_341、Ehcache 2.10.9.2。 1、引入依赖 2、缓存配置和创建 2.1、XML 方式配置缓存 A、在 src/main/resources 目录下新建 ehcache2.xml: defaultCache 表示缓存的默认配置,cache 表示配置的具体缓存。 B、加载配置 2.

是学习c++还是java?

上高中时,自己第一次接触到学校的中华学习机和苹果机,当时中华学习机上可以进行basic编程,那时候自己其实就爱上编程,但是没有人指点,也学习不得法,所以就没有进行下去!大学时,自己的主攻专业并不是计算机,但是学习了《计算机基础》和《c程序设计》,前者主要学习dos命令和wps文字处理,后者主要是学习c语言编程,但由于自己没有电脑,再加上不善规划,导致c语言编程学得很一般,不过自己还是很喜欢学习编程

maven 包管理平台-05-multi module 多模块

拓展阅读 maven 包管理平台-01-maven 入门介绍 + Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的详细对比表格 maven 包管理平台-02-windows 安装配置 + mac 安装配置 maven 包管理平台-03-maven project maven 项目的创建入门 maven 包管理平台-04-maven archetype 项目原型 maven 包管

01启动jenkins

Jenkins最初是由日本人Kohsuke Kawaguchi在Sun公司主导开发,项目最初被称为Hudson。 环境初始化: 软件版本:jre 11, Jenkins 2.394,tomcat 8 jenkins 版本对jre版本有要求自行测试。 jdk java11及以上本版提示缺少java.lang 文件,解决办法从java8中拷贝issue tomcat jenkin

「java.util.concurrent并发包」之 Unsafe

一 unsafe介绍 Unsafe 是位于 sun.misc 包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升 Java 运行效率、增强 Java 语言底层资源操作能力方面起到了很大的作用。但由于 Unsafe 类使 Java 语言拥有了类似 C 语言指针一样操作内存空间的能力,这无疑也增加了程序发生相关指针问题的风险。在程序中

RabbitMQ、RocketMQ、Kafka区别

引言 1、队列应用场景: MQ(Message Queue,消息队列)消息队列在实际应用中常用的使用场景(优点):异步处理,应用解耦,流量削锋和消息通讯四个场景。 2、目前使用较多的消息队列: 有老牌的ActiveMQ、RabbitMQ,ZeroMQ,炙手可热的Kafka,MetaMQ,阿里巴巴的RocketMQ。 3、如何选型(目前现状): Active

jQuery弹出窗口

</html><!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head&gt

百度地图API自定义地图

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <meta

<<  <  490  491  492  493  494  495  496  497  498  499  500  >  >>