标签:重排序

Java

Java之Map的键,值多重排序问题解决方案

yanxinchi 发布于 2018-09-18

我们知道,Map不同于List,它是无序的,但我们实际工作中某些业务场景是需要Map按照一定的顺序排列组合的,有些需要按键排序,有些则需要按值排序。比如说我们现在返回的Map封装了我们所需要的数据,它的值是无序的,但是我们现在需要将Map按值升序或者降序排列来最终返回我们所要的数...

阅读(26)评论(0)赞 (0)

Java

JMM必知必会

1

yanxinchi 发布于 2018-09-18

因为CPU处理的速度比内存读取的速度快很多,通过缓存可以极大的提升CPU处理速度。并且,多级缓存的设计,可以平衡缓存大小与芯片体积、成本,在现代CPU中广泛使用。在多核且多级缓存的条件下,如果多个核同时读写内存的同一行,如何保证数据的一致性? 在处理器级别,内存模型定义了什么条件...

阅读(30)评论(0)赞 (0)

Java

史上最全Java面试266题:算法+缓存+TCP+JVM+搜索+分布式+数据库

1

xiaoli.wang 发布于 2018-09-14

JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节。 String类能被继承吗,为什么。 String,Stringbuffer,StringBuilder的区别。 ArrayList和LinkedList有什么区别。 讲讲类的实例化顺序,比如父类静态数据,构造函...

阅读(69)评论(0)赞 (0)

Java

回顾几个 Java 关键字

songhua.gao 发布于 2018-09-07

static 方法 :一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问。但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。 static 变量 :也称作静态变量,静态变量和非静态变量的区别是:...

阅读(35)评论(0)赞 (0)

Java

final关键字深入解析

3

尖兵 发布于 2018-08-31

final关键字在java中使用非常广泛,可以申明成员变量、方法、类、本地变量。一旦将引用声明为final,将无法再改变这个引用。final关键字还能保证内存同步,本博客将会从final关键字的特性到从java内存层面保证同步讲解。这个内容在面试中也有可能会出现。 final使用...

阅读(43)评论(0)赞 (0)

Java

啃碎并发(九):内存模型之基础概述

14

邓龙华 发布于 2018-08-30

在并发编程中,需要解决两个关键问题: 线程之间如何通信; 线程之间如何同步; 线程通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种: 共享内存和消息传递 。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式...

阅读(117)评论(0)赞 (0)

Java

原创 谈谈Java中的volatile

1

小丁 发布于 2018-08-28

在 《死磕GOF23种设计模式之单例模式》 中,其中双重检查锁使用到了volatile关键字,本篇文章就带大家深入了解一下volatile相关的知识。 简介 volatile是Java提供的一种轻量级的同步机制,在并发编程中扮演着比较重要的角色。与synchronized相比,v...

阅读(64)评论(0)赞 (0)

Java

再有人问你 volatile 是什么,把这篇文章也发给他

8

yeseng 发布于 2018-08-27

在上一篇文章中,我们围绕volatile关键字做了很多阐述,主要介绍了volatile的用法、原理以及特性。在上一篇文章中,我提到过:volatile只能保证可见性和有序性,无法保证原子性。关于这部分内容,有读者阅读之后表示还是不是很理解,所以我再单独写一篇文章深入分析一下。阅读...

阅读(58)评论(0)赞 (0)

Java

来,了解一下Java内存模型(JMM)

3

刘莉莉 发布于 2018-08-23

在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。 内存模型,英文名Memory Model,他是一个很老的老古董了。他是与计算...

阅读(106)评论(0)赞 (0)

Java

Java内存模型

3

yanxinchi 发布于 2018-08-14

文章内容有并发、内存模型、重排序、内存屏障、happens-before规则、as-if-serial语义、顺序一致性内存模型、volatile、锁、final。 并发 并发需要处理的两个关键问题:线程之间通信和同步 通信:是指线程之间以何种机制来交换信息;在命令式编程中,通信机...

阅读(94)评论(0)赞 (0)

Java

activemq的优先级

likai 发布于 2018-08-07

我们可以在发送消息时,指定消息的权重,broker可以 建议 权重较高的消息将会优先发送给Consumer。在某些场景下,我们通常希望权重较高的消息优先传送;不过因为各种原因,priority并不能决定消息传送的严格顺序(order)。 JMS标准中约定priority可以为0~...

阅读(88)评论(0)赞 (0)

Java

再有人问你 synchronized 是什么,就把这篇文章发给他

8

尖兵 发布于 2018-08-06

在 再有人问你Java内存模型是什么,就把这篇文章发给他 中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。 在《深入理解Jav...

阅读(56)评论(0)赞 (0)

Java

终于有人把Java内存模型说清楚了!

5

likai 发布于 2018-07-26

网上有很多关于 Java 内存模型的文章,但是很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。 本文就来整体的介绍一下 Java 内存模型,读完本文以后,你就知道到底 Java 内存模型是什么,为什么要有 Java 内存模型,Java 内存模型解决了什么问题等。 本文中很多说...

阅读(106)评论(0)赞 (0)

Java

Java并发(3)- 聊聊Volatile

4

zhuangli 发布于 2018-07-26

谈到volatile关键字,大多数开发者都有一定了解,可以说是开发者非常熟悉,深入之后又非常陌生的一个关键字。相当于轻量的synchronized,也叫轻量级锁,与synchronized相比性能上开销较少,同时又具备了可见性、有序性以及部分原子性,是Java并发需中非常重要的一...

阅读(50)评论(0)赞 (0)

Java

bat等大公司常考java多线程面试题

1

changyuan.xu 发布于 2018-07-25

1、说说进程,线程,协程之间的区别 简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程.进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高.线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更...

阅读(103)评论(0)赞 (0)

Java

Java多线程(二)volatile关键字

2

刘莉莉 发布于 2018-07-25

1 volatile的定义 Java语言规范第三版中对volatile定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能够被准确和一致地更新,线程应该取保通过排它锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁更方便。如果一个字段被声明成v...

阅读(67)评论(0)赞 (0)

Spring

Java架构师知识体系汇总

xirruiqiang 发布于 2018-07-19

源码分析 常用设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模板模式 Spring5 beans 接口实例化 代理Bean操作 Context Io...

阅读(69)评论(0)赞 (0)

Spring

Java架构师知识体系汇总

xiaoli.he 发布于 2018-07-19

源码分析 常用设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模板模式 Spring5 beans 接口实例化 代理Bean操作 Context Io...

阅读(92)评论(0)赞 (0)