Java集合—ConcurrentHashMap原理分析
一、背景: 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方…
一、背景: 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方…
蓝桥杯 动态数组使用 从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。要求尽可能使用函数实现程序代码。平均值为小数的只保留其整数部分。 样例输入: 5 3 4 0 0 2 样例输出: 9 1 样例输入: 7 3 2 7 5 2 9 1 样例输出: 29 4 就用最简单的数组,java不像VB一样有动态数组 import java.util.Scanner; pub…
异常介绍 程序运行时,发生不被期望的事情,它阻止了程序 按照程序员的预期正常执行,这就是异常。异常发生时,是任其自生自灭,立即退出终止,还是输出错误给用户?用函数返回值作为执行状态?。 Java提供了更加优秀的解决办法:异常处理机制。 异常处理机制能让程序在异常发生时,按照代码的预先设定异常处理逻辑,针对性的异常处理,让程序尽最大可能的恢复正常并继续执行,且保持代码的清晰。 Java中的异常可以是…
引言 假如你有一张地图,地图上给出了每一对相邻城市的距离,从一个地点到另外一个地点,如何找到一条最短的路? 最短路算法要解决的就是这类问题。今年的华为精英挑战赛codeCraft中关于部署大数据下网络服务器部署问题就需要使用最短路算法,因为求最小流最大费用算法时, 最核心的就是找出最短路,可见最短路算法的应用之广泛。 一.定义: 给定一个有(无)向图,每一条边有一个权值 w,给定一个起始点 S 和…
众所周知,消息队列是应用系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有 ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ. 但是如果你不想为你的系统引入一个重量级(相对 redis 来说)的 mq,但是想要享受解耦、异步消息等特性,通过本文你就 get 到了,通过 red…
定义 状态模式主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题,状态模式将每个状态的行为封装到对应的一个类中方便维护。 减少if/else。符合“开闭原则”。容易增删状态。 但是会产生很多类,每个状态都要一个对应的类,当状态过多时会产生很多类,加大维护成本。 当一个事件或者对象有很多种状态,状态之间会相互转换,对不同的状态要求有不同的行为的时候,可以考虑使用状态模式 组成角色 1、环…
实现移动端轮播图主要用到了setInterval(),transitionend事件和touchstart事件,touchmove事件,touchend事件。 核心思想: (1)ul进行绝对定位,利用CSS中的transform属性实现轮播 (2)为ul添加过渡效果 (3)在第一张图片前面添加最后一张图片,防止在第一张图片左滑时出现空白。 (4)在最后一张图片后面添加第一张图片,当图片滚动到最后添…
🫖 Java8 新特性 - 方法引用 概念 方法引用使用一对冒号::,通过方法的名字来指向一个方法。 方法引用可以使语言的构造更紧凑简洁,减少冗余代码。 引用类型 下面,我们在Car类中定义了 4 个方法作为例子来区分 Java 中 4 种不同方法的引用。 /** * @Description Car * @Author vchicken * @Date 2022/9/24 15:35 */ pu…
继上一篇文章说到的原型模式创造对象,主要缺点是存在多个实例共享数组,一般来说不同数据应该有自己的属性副本,这就是开发过程中不单独使用原型模式的原因。 这一篇主要讲讲继承,是学习红宝书继承一章做的笔记。 JS的继承主要是通过原型链实现的。 原型链 通过原型继承多个引用类型的属性和方法。 重温一下构造函数,原型和实例的关系: 每个构造函数(Test)都有一个原型对象(Test.prototype),原…
spring的配置文件applicationContext.xml的默认地址在WEB-INF下,只要在web.xml中加入代码org.springframework.web.context.ContextLoaderListener spring就会被自动加载 但在实际的开发过程中,我们可能需要调整applicationContext.xml的位置,以使程序结构更加的清晰。在web.xml中,配置…