
java
桑小一
这个作者很懒,什么都没留下…
展开
-
java知识体系
原文;整理的Java知识体系主要包括基础知识,工具,并发编程,数据结构与算法,数据库,JVM,架构设计,应用框架,中间件,微服务架构,分布式架构,程序员的一些思考,项目管理,运维,权限,推荐书籍,云计算,区块链等,包含了作为一个Java工程师在开发工作学习中需要用到或者可能用到的绝大部分知识。千里之行始于足下,希望大家根据自己的薄弱点,查缺补漏,根据自己感兴趣的方面多学习,学的精通一点,从现...转载 2020-04-02 16:13:40 · 431 阅读 · 0 评论 -
transient的作用及使用方法
原文链接1、背景在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。换句话说,这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化。2. tra...转载 2020-04-02 11:18:30 · 152 阅读 · 0 评论 -
synchronized
原文链接在再有人问你Java内存模型是什么,就把这篇文章发给他中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。在《深入理解Java虚拟机》中,有这样一段话:synchronized关键字在需要原子性、可见性和有序性这三种特性的时候都可以作为...转载 2020-04-02 11:15:29 · 168 阅读 · 0 评论 -
理解Java中Lock的实现原理
原文:https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650122072&idx=1&sn=63690ad2cbf2b5390c3d8e1953ffbacf&chksm=f36bba79c41c336fbea8b56289fc2a71e829042f6c3616e3ba051c2542b48f0a3936...转载 2020-04-02 11:13:58 · 472 阅读 · 0 评论 -
java中String类为什么不可变?
原文:https://www.cnblogs.com/wcyBlog/p/4073725.html 在面试中经常遇到这样的问题:1、什么是不可变对象。不可变对象有什么好处。在什么情景下使用它,或者更具体一点,java的String类为什么要设置成不可变类型?1、不可变对象,顾名思义就是创建后的对象不可以改变,典型的例子有java中的String类型。2、相比于可变对象,不可变对象有很...转载 2020-03-31 11:14:09 · 249 阅读 · 0 评论 -
Java中的finalize()方法
原文:https://blog.youkuaiyun.com/Justin_zhao/article/details/74358828 ...转载 2020-03-30 11:36:23 · 328 阅读 · 0 评论 -
Java内存模型之happens-before
原文:https://www.cnblogs.com/chenssy/p/6393321.html 在上篇博客(【死磕Java并发】—–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题。那么我们正确使用同步、锁的情况下,线程A修改了变量a何时对线程B可见? 我们无法就所有场景来规定某个线程修改的变量何时对...转载 2020-03-30 11:12:21 · 122 阅读 · 0 评论 -
java内存屏障的原理与应用
原文:https://blog.youkuaiyun.com/breakout_alex/article/details/94379895 目录1. java内存屏障2.java内存屏障的使用 一. java内存屏障1.1 什么是内存屏障(Memory Barrier)?内存屏障...转载 2020-03-30 10:40:57 · 256 阅读 · 0 评论 -
为什么volatile能保证有序性不能保证原子性
对于内存模型的三大特性:有序性、原子性、可见性。大家都知道volatile能保证可见性和有序性但是不能保证原子性,但是为什么呢? 一、原子性、有序性、可见性1、原子性:(1)原子的意思代表着——“不可分”;(2)在整个操作过程中不会被线程调度器中断的操作,都可认为是原子性。原子性是拒绝多线程交叉操作的,不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进...转载 2020-03-30 09:56:26 · 390 阅读 · 0 评论 -
ConcurrentHashMap1.7 和 1.8 的不同实现
谈谈 ConcurrentHashMap1.7 和 1.8 的不同实现 来源:占小狼, www.jianshu.com/p/e694f1e868ec 知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。 ConcurrentHashMap 在多线程环境下,使用HashMap进行pu...转载 2020-03-27 11:08:00 · 158 阅读 · 0 评论 -
史上最简单的 SpringCloud 教程 | 终章
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.youkuaiyun.com/forezp。 https://blog.youkuaiyun.com/forezp/article/details/70148833 转载请标明出处:...转载 2018-12-04 16:47:47 · 133 阅读 · 0 评论 -
java.util.HashMap.remove()方法实例
remove() 方法用于从该映射中移除了映射指定键(如果存在)。声明以下是java.util.HashMap.remove()方法的声明。public V remove(Object key)参数 key–这是其映射关系要从映射中移除的键对应值。返回值 该方法调用返回与key相关联的值。返回null,如果没有键的映射关系的前一个值。 异常 NA例子 下面的例子显示java.util....转载 2018-11-26 14:53:52 · 1932 阅读 · 0 评论 -
BlockingQueue深入分析
1.BlockingQueue定义的常用方法如下 抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e,time,unit)移除remove()poll()take()poll(time,unit)检查element()peek()不可用不可用1)add...转载 2018-11-26 10:16:46 · 92 阅读 · 0 评论 -
数组、List和ArrayList的区别
数组、List和ArrayList的区别数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如:string[] s=new string[3];//赋值 s[0]="a"; s[1]="b"; s[2]="c";//修改 s[1]="b1";但是数组也存在一些不足的地方。比如在数组的两个数据间插入数据也是很麻烦的,还有我们在声明数组的时候,必须同时...转载 2018-11-19 15:19:12 · 135 阅读 · 0 评论