标签:synchronized

编程技术

51 信用卡 Android 架构演进

14

yeseng 发布于 2018-12-19

编辑推荐: 本文来自于infoq,文章阐述了 51 信用卡 Android 架构演进过程中Weex 容器实践、工程化实践等的一些实践经验。 随着业务的快速扩张,原本小作坊式的单个工程的开发模式越来与不能满足实际需求。早在两年多以前,51 信用卡管家就向下沉淀出了单独的公用基础库,...

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

Java

Spring Boot+SQL/JPA实战悲观锁和乐观锁

11

yanxinchi 发布于 2018-12-18

最近在公司的业务上遇到了并发的问题,并且还是很常见的并发问题,算是低级的失误了。由于公司业务相对比较复杂且不适合公开,在此用一个很常见的业务来还原一下场景,同时介绍悲观锁和乐观锁是如何解决这类并发问题的。 公司业务就是最常见的“订单+账户”问题,在解决完公司问题后,转头一想,我的...

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

Java

Java并发编程-内存模型及volatile

1

yeseng 发布于 2018-12-18

内存模型相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程则慢得多(不是一个数量级),因此如果任何时候对数据的操作都要通过和内存的...

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

Java

深入 Java Timer 定时调度器实现原理

2

hanze 发布于 2018-12-17

使用 Java 来调度定时任务时,我们经常会使用 Timer 类搞定。Timer 简单易用,其源码阅读起来也非常清晰,本节我们来仔细分析一下 Timer 类,来看看 JDK 源码的编写者是如何实现一个稳定可靠的简单调度器。 Timer 使用 Timer 调度任务有一次性调度和循环...

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

Java

为什么阿里巴巴禁止把SimpleDateFormat定义为static类型的?

6

hellas 发布于 2018-12-17

在日常开发中,我们经常会用到时间,我们有很多办法在Java代码中获取时间。但是不同的方法获取到的时间的格式都不尽相同,这时候就需要一种格式化工具,把时间显示成我们需要的格式。 最常用的方法就是使用SimpleDateFormat类。这是一个看上去功能比较简单的类,但是,一旦使用不...

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

Java

浅析Spring Framework框架容器启动过程

7

刘莉莉 发布于 2018-12-17

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1...

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

Java

java基础学习:JavaWeb之Servlet

3

xubiao.zhuang 发布于 2018-12-17

Servlet是一个特殊的Java类, 是运行在 Web 服务器中的小型 Java 程序(即:服务器端的小应用程序)。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。这个Java类必须继承HttpServlet。每个Servlet可以响应...

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

Java

深入理解java反射原理

刘莉莉 发布于 2018-12-15

反射是java的一个特性,这一特性也使得它给了广大的第三方框架和开发过者很大的想像空间。 通过反射,java可以动态的加载未知的外部配置对象,临时生成字节码进行加载使用,从而使代码更灵活!可以极大地提高应用的扩展性! 但是,除了停留在使用其华丽功能,我们还可以去看看其实现! 主要...

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

Java

Java多线程编程笔记10:单例模式

xiaoli.he 发布于 2018-12-14

立即加载就是指使用类的时候已经将对象创建完毕,常见的实现方法就是直接new实例化。也就是在调用方法前,实例就被创建了。示例代码如下所示: class MyObject { private static MyObject myObject=new MyObject(); priva...

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

Java

打通 Java 任督二脉 —— 并发数据结构的基石

12

刘莉莉 发布于 2018-12-13

每一个 Java 的高级程序员在体验过多线程程序开发之后,都需要问自己一个问题,Java 内置的锁是如何实现的?最常用的最简单的锁要数 ReentrantLock,使用它加锁时如果没有立即加成功,就会阻塞当前的线程等待其它线程释放锁之后再重新尝试加锁,那线程是如何实现阻塞自己的?...

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

Java

【Dubbo源码阅读系列】之 Dubbo SPI 机制

dulong 发布于 2018-12-12

最近抽空开始了 Dubbo 源码的阅读之旅,希望可以通过写文章的方式记录和分享自己对 Dubbo 的理解。如果在本文出现一些纰漏或者错误之处,也希望大家不吝指出。 Dubbo SPI 介绍 Java SPI 在阅读本文之前可能需要你对 Java SPI(Service Provi...

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

Java

String源码分析

3

hanze 发布于 2018-12-12

其实String方面的面试题往深了延申的话,还是会延伸到JVM,所以还是希望读者对JVM有一定的了解,这样更便于理解String的设计。 String源码分析 String结构 /* Strings are constant; their values can not be ch...

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

Java

HashMap和Hashtable的6 个区别,最后一个没几个人知道!

1

hellas 发布于 2018-12-11

HashMap 和 Hashtable 是 Java 开发程序员必须要掌握的,也是在各种 Java 面试场合中必须会问到的。 但你对这两者的区别了解有多少呢? 现在,栈长我给大家总结一下,或许有你不明朗的地方,在栈长的指点下都会拨开迷雾见晴天。 1、线程安全 Hashtable ...

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

Java

作为一位开发三到五年的java程序员,这些必备的技能你是否具备?

2

dulong 发布于 2018-12-11

前言 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Java程序员的。 简单先说一下,LZ坐标杭州,13届本科毕业,算上年前在阿里巴巴B...

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

Java

Android Dex分包之旅

hellas 发布于 2018-12-11

当程序越来越大之后,出现了一个 dex 包装不下的情况,通过 MultiDex 的方法解决了这个问题,但是在底端机器上又出现了 INSTALL_FAILED_DEXOPT 的情况,那再解决这个问题吧。等解决完这个问题之后,发现需要填的坑越来越多了,文章讲的是我在分包处理中填的坑,...

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

Java

Java NIO之Channel

尖兵 发布于 2018-12-11

今天来谈一谈NIO中的Channel,上一篇文章介绍了Buffer,有了Buffer还需要有一个通道来处理Buffer。它就是今天我们要学习的Channel。按照字面理解,它就是一个通道,可以从通道中读数据,也可以把数据写入到通道中。 Channel可以分为几大类 FileCha...

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

Java

【译】Java引用对象

8

xiaoli.wang 发布于 2018-12-10

在写了15年C/C++之后,我于1999年开始写Java。借助指针切换(pointer handoffs)等编码实践或者Purify等工具,我认为自己对C风格的内存管理已经得心应手了,甚至已经不记得上次发生内存泄露是什么时候了。所以起初我接触到Java的自动内存管理时有些不屑,但...

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

Java

通俗易懂,JDK 并发容器总结

3

hanze 发布于 2018-12-10

实战Java高并发程序设计》为我们总结了下面几种大家可能会在高并发程序设计中经常遇到和使用的 JDK 为我们提供的并发容器。先带大家概览一下,下面会一一介绍到。 JDK提供的这些容器大部分在 java.util.concurrent 包中。 ConcurrentHashMap: ...

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