JavaEE
程序员cxuan
个人微信号【lx252279279】 一起学习,交流。
展开
-
看完这篇 HashMap,和面试官扯皮就没问题了
HashMap 概述如果你没有时间细抠本文,可以直接看 HashMap 概述,能让你对 HashMap 有个大致的了解。HashMap 是 Map 接口的实现,HashMap 允许空的 key-value 键值对,HashMap 被认为是 Hashtable 的增强版,HashMap 是一个非线程安全的容器,如果想构造线程安全的 Map 考虑使用 ConcurrentHashMap。HashMap 是无序的,因为 HashMap 无法保证内部存储的键值对的有序性。HashMap 的底层数据结构是数组原创 2020-06-23 14:03:09 · 4885 阅读 · 7 评论 -
带你涨姿势的认识一下 Kafka
Kafka 基本概述什么是 KafkaKafka 是一个分布式流式平台,它有三个关键能力订阅发布记录流,它类似于企业中的消息队列 或 企业消息传递系统以容错的方式存储记录流实时记录流Kafka 的应用作为消息系统作为存储系统作为流处理器Kafka 可以建立流数据管道,可靠性的在系统或应用之间获取数据。建立流式应用传输和响应数据。Kafka 作为消息系统...原创 2019-10-17 14:42:02 · 3741 阅读 · 0 评论 -
成为高级程序员不得不了解的并发
到目前为止,你学到的都是顺序编程,顺序编程的概念就是某一时刻只有一个任务在执行,顺序编程固然能够解决很多问题,但是对于某种任务,如果能够并发的执行程序中重要的部分就显得尤为重要,同时也可以极大提高程序运行效率,享受并发为你带来的便利。但是,熟练掌握并发编程理论和技术,对于只会CRUD的你来说是一种和你刚学面向对象一样的一种飞跃。正如你所看到的,当并行的任务彼此干涉时,实际的并发问题就会接踵而至。...原创 2019-10-17 09:10:59 · 3568 阅读 · 0 评论 -
看完你就明白的锁系列之锁的状态
前面两篇文章我介绍了一下看完你就应该能明白的悲观锁和乐观锁看完你就明白的锁系列之自旋锁看完你就会知道,线程如果锁住了某个资源,致使其他线程无法访问的这种锁被称为悲观锁,相反,线程不锁住资源的锁被称为乐观锁,而自旋锁是基于 CAS 机制实现的,CAS又是乐观锁的一种实现,那么对于锁来说,多个线程同步访问某个资源的流程细节是否一样呢?换句话说,在多线程同步访问某个资源时,锁的状态会如何变...原创 2019-10-16 11:05:39 · 4031 阅读 · 1 评论 -
看完你就明白的锁系列之自旋锁
看完你就明白的锁系列之自旋锁在上一篇文章 看完你就应该能明白的悲观锁和乐观锁 中我们已经学习到了什么是悲观锁和乐观锁、悲观锁和乐观锁的实现、优缺点分别是什么。其中乐观锁的实现之一 CAS 算法中提到了一个自旋锁的概念,为了全面理解 CAS 算法就首先需要了解一下自旋锁 是什么,自旋锁的适用场景和优缺点分别是什么,别着急,下面为你一一列举。自旋锁的提出背景由于在多处理器环境中某些资源的有限性,...原创 2019-10-15 19:46:20 · 4387 阅读 · 0 评论 -
看完你就知道的乐观锁和悲观锁
Java 锁之乐观锁和悲观锁[TOC]Java 按照锁的实现分为乐观锁和悲观锁,乐观锁和悲观锁并不是一种真实存在的锁,而是一种设计思想,乐观锁和悲观锁对于理解 Java 多线程和数据库来说至关重要,那么本篇文章就来详细探讨一下这两种锁的概念以及实现方式。悲观锁悲观锁是一种悲观思想,它总认为最坏的情况可能会出现,它认为数据很可能会被其他人所修改,所以悲观锁在持有数据的时候总会把资源 或者 数...原创 2019-09-27 07:14:19 · 3518 阅读 · 0 评论 -
理解静态绑定与动态绑定
一个Java 程序要经过编写、编译、运行三个步骤,其中编写代码不在我们讨论的范围之内,那么我们的重点自然就放在了编译 和 运行这两个阶段,由于编译和运行阶段过程相当繁琐,下面就我的理解来进行解释:Java程序从源文件创建到程序运行要经过两大步骤:1、编译时期是由编译器将源文件编译成字节码的过程2、字节码文件由Java虚拟机解释执行绑定绑定就是一个方法的调用与调用这个方法的类连接在一起的过...原创 2019-09-27 05:23:44 · 3942 阅读 · 1 评论 -
一文了解@Conditional注解说明和使用
文章目录@Contidional 介绍Condition 接口Spring @Conditional注解实例作用在方法上手动设置系统环境作用在类上多个条件类@Conditional 与@Profile 的对比 @Conditional:Spring4.0 介绍了一个新的注解@Conditional,它的逻辑语义可以作为"If…then…else…"来对bean的注册起作用。@Contidi...原创 2019-06-01 20:11:47 · 1823 阅读 · 0 评论 -
LinkedList 基本示例及源码解析
文章目录一、JavaDoc 简介二、LinkedList 继承接口和实现类介绍三、LinkedList 基本方法介绍四、LinkedList 基本方法使用五、LinkedList 内部结构以及基本元素声明六、LinkedList 具体源码分析一、JavaDoc 简介LinkedList双向链表,实现了List的 双向队列接口,实现了所有list可选择性操作,允许存储任何元素(包括null值)...原创 2019-04-05 08:50:11 · 1040 阅读 · 0 评论 -
ArrayList 分析以及相关方法介绍
ArrayList简介:java.util.ArrayList 是我们最常用的一个类,ArrayList 底层是动态数组,读者可以把它理解为数组的实现public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.S...原创 2019-04-05 08:25:12 · 917 阅读 · 0 评论 -
@SuppressWarnings 用法
从Java 5.0起,您可以使用java.lang.SuppressWarning注释,来停用与编译单元子集相关的编译警告。__作用:用于抑制编译器产生警告信息。Idea 设置泛型检查,变量、方法未使用检查从 eclipse 转换到idea 发现有很多不习惯的地方,比如说String s;List list = new ArrayList();没有未使用的变量,未检查泛型,未使用的方...原创 2019-04-05 08:13:40 · 13481 阅读 · 1 评论 -
for 、foreach 、iterator 三种遍历方式的比较
习惯用法for、foreach循环、iterator迭代器都是我们常用的一种遍历方式,你可以用它来遍历任何东西:包括数组、集合等for 惯用法: List&lt;String&gt; list = new ArrayList&lt;String&gt;(); String[] arr = new String[]{"1,2,3,4"}; for(int i = 0;i &l原创 2019-03-15 23:02:46 · 1485 阅读 · 2 评论