javase
文章平均质量分 50
大卫不加班
不会做饭的厨师不是好程序员!
展开
-
java面试题之多线程
多线程环境下,对共享变量的操作,要么加锁,要么CAS加锁 :保证只能同时有一个线程去操作 数据CAS:比较交换,预期旧值,偏量值 ,主要思想是通过读取主内存的值 和预期旧值比较,如果相同,则将新值=预期旧值+偏量值 写入主内存经典的使用例子便是jdk 中的atomic 包(查看源码可以看见有乐观锁的思想)以AtomicInteger 的 getAndIncrement() 方法为例Ato...原创 2019-11-06 11:08:17 · 292 阅读 · 0 评论 -
volatile
http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。转载 2017-12-21 11:25:27 · 143 阅读 · 0 评论 -
java 设计模式
很生动,分享https://www.cnblogs.com/bingo1717/p/7745556.html转载自转载 2017-12-07 19:26:24 · 150 阅读 · 0 评论 -
uml 关系
http://blog.csdn.net/hguisu/article/details/7609483点击打开链接转载 2017-12-07 20:53:06 · 129 阅读 · 0 评论 -
实体类转为Map 键值对
需求:将实体类对象的属性名和属性值转为k-v的形式,存放到mapjava代码:public static Map<String,Object> object2Map(Object object){ Map<String,Object> result=new HashMap<>(); //获得类的的属性名 数组 ...原创 2018-08-01 16:53:08 · 19168 阅读 · 1 评论 -
BigDecimal 的add方法,结果竟然没变??
@Test public void testBigDecimal(){ BigDecimal decimal1=new BigDecimal("0"); BigDecimal decimal2=new BigDecimal(2); decimal1.add(decimal2); System.out.println(decimal...原创 2018-10-10 16:17:12 · 8655 阅读 · 1 评论 -
double check机制真的是完美的吗?
单例我们是经常会用到的一种设计模式,为了减少对象的创建。一个类有且仅有一个实例,并且自行实例化向整个系统提供。但是在多线程的情况下,我们不得不考虑如何保证正确高效的获得单例对象。单例的一般写法:(这里以饿汉为例)public class Singleton(){private static Singleton instance;private Singleton(){}publi...原创 2018-12-12 19:02:27 · 2639 阅读 · 1 评论 -
(一)设计模式之策略模式
注:以jdk中的一角来理解设计模式的运用策略模式:在不同的情形下选取不同的方式去处理比如:jdk中的 java.util.Arrays.sort() 方法,则是根据待排序数组的初始的有序程度,以及规模来选取不同的排序方式处理排序具体实现是这个方法:策略1:对于小数组,直接使用&quot;快排&quot;策略2:对于不是高度结构化(各区间内有序)的数组,执行&quot;快排&quot;策略3:高度结构化的,使用归并排原创 2019-01-24 12:09:20 · 154 阅读 · 0 评论 -
深拷贝与浅拷贝
理解一波概念:浅拷贝: 除了引用指向的对象(在堆上,而引用是在栈上)不被拷贝,其余都被拷贝深拷贝:引用所指向的堆上对象也会被拷贝一份接下来以代码演示:定义一个IDCard 类:package top.forethought.javagrammer.clone;public class IDCard { private String No; private String...原创 2019-03-29 13:57:04 · 175 阅读 · 0 评论