反射中Class.forName()和ClassLoader.loadClass()的区别

一 Java类装载过程 装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;   校验:检查导入类或接口的二进制数据的正确性;(文...

2019-03-18 17:51:26

阅读数 37

评论数 0

ConcurrentHashMap 从Java7 到 Java8的改变

一、关于分段锁 1.分段锁发展概况 集合框架很大程度减少了java程序员的重复劳动。在Java多线程环境中,以线程安全的方式使用集合类是一个首先考虑的问题。 能够保证线程安全的哈希表中,ConcurrentHashMap是大家都熟知的,也知道它内部使用了分段锁。然而,进入到Java8时代,分...

2019-03-17 19:33:00

阅读数 62

评论数 0

浅析Oracle和Mysql分页的区别

Mysql使用limit分页而Oracle使用rownum分页,下面通过本文给大家介绍Oracle和Mysql分页的区别,需要的的朋友参考下吧 一、Mysql使用limit分页 select * from stu limit m, n; //m = (startPage-1)*pageSiz...

2019-03-17 19:30:00

阅读数 29

评论数 0

分布式之消息队列复习精讲

为什么写这篇文章? 博主有两位朋友分别是小A和小B: 小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术...

2019-03-17 19:25:23

阅读数 49

评论数 0

HTTP与TCP的区别和联系

相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助。 一、基本概念 1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使...

2019-03-17 19:22:38

阅读数 51

评论数 0

RPC和HTTP服务对比

RPC(即Remote Procedure Call,远程过程调用), RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹 OSI网络七层模型 在说RPC和HTTP的区别之前,我觉...

2019-03-17 19:21:16

阅读数 32

评论数 0

zookeeper原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某...

2019-03-17 19:18:03

阅读数 36

评论数 0

Java高并发之无锁与Atomic源码分析

目录 无锁即无障碍的运行, 所有线程都可以到达临界区, 接近于无等待. 无锁采用CAS(compare and swap)算法来处理线程冲突, 其原理如下 CAS原理 CAS包含3个参数CAS(V,E,N).V表示要更新的变量, E表示预期值, N表示新值. 仅当V值等于E值时, 才...

2019-03-17 19:15:35

阅读数 49

评论数 0

AQS深入理解与实战----基于JDK1.8

要介绍AQS,首先要介绍“同步器”的概念。 同步器是一种抽象数据类型,在该类型的内部,维护了以下内容: 1.一个状态变量,该变量的不同取值可以表征不同的同步状态语义(例如表示一个锁已经被线程持有了还是没有任何线程持有); 2.能够更新和检查该状态变量值的操作(方法)集合; ...

2019-03-17 19:13:10

阅读数 59

评论数 0

mybatis中批量插入的两种方式(高效插入)

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。这篇文章主要介绍了mybatis中批量插入的两种方式(高效插入)的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧 MyBatis简介 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层...

2019-03-17 19:10:23

阅读数 109

评论数 0

ReentrantLock的使用

ReentrantLock(重入锁) public class MyService { private Lock lock = new ReentrantLock(); public void testMethod() { lock.lock(); ...

2019-03-17 19:08:46

阅读数 45

评论数 0

dubbo心跳机制

dubbo的心跳机制: 目的:检测provider与consumer之间的connection连接是不是还连接着,如果连接断了,需要作出相应的处理。 原理: provider:dubbo的心跳默认是在heartbeat(默认是60s)内如果没有接收到消息,就会发送心跳消息,如果连着3次(18...

2019-03-13 12:30:52

阅读数 61

评论数 0

RPC原理及RPC实例分析

在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 public class Test { public static void main(String[] args) { ...

2019-03-13 12:28:24

阅读数 95

评论数 0

数据库事务隔离级别 - 分析脏读 & 不可重复读 & 幻读

一 数据库事务的隔离级别 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。 1. Read UnCommitted(读...

2019-03-13 12:21:54

阅读数 48

评论数 0

分布式系统的接口幂等性设计

在微服务架构下,我们在完成一个订单流程时经常遇到下面的场景: 一个订单创建接口,第一次调用超时了,然后调用方重试了一次 在订单创建时,我们需要去扣减库存,这时接口发生了超时,调用方重试了一次 当这笔订单开始支付,在支付请求发出之后,在服务端发生了扣钱操作,接口响应超时了,调用方重试了一次 ...

2019-03-13 12:19:49

阅读数 45

评论数 0

浅谈,分布式事务与解决方案

前言 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务...

2019-03-13 12:17:49

阅读数 67

评论数 0

java随笔——HashMap与红黑树

前言: hashmap是一种很常用的数据结构,其使用方便快捷,接下来笔者将给大家深入解析这个数据结构,让大家能在用的时候知其然,也知其所以然。 一.Map 首先,从最基本的讲起,我们先来认识一下map是个什么东西。在我们写程序的时候经常会遇到数据检索等操作,对于几百个数据的小程序而言,数据的...

2019-03-12 23:41:36

阅读数 51

评论数 0

【Java并发(一)】--synchronized详解(偏向锁、轻量级锁、锁的存储结构即升级过程)

简介: ​ 可能在很多人眼里,在java中提到锁、安全性、同步,首先想到的则是java提供的大佬(synchronized)。那么为什么在多线程下,单单靠一个关键字修饰代码块就可以实现所谓的安全性呢?可以说是对初学者而言及神奇又强大的存在。也成了大多数初学者百试不爽的良药。 ​ 但是在逐渐对j...

2019-03-12 21:34:02

阅读数 45

评论数 0

JVM内部细节之一:synchronized关键字及实现细节(轻量级锁Lightweight Locking)

在C程序代码中我们可以利用操作系统提供的互斥锁来实现同步块的互斥访问及线程的阻塞及唤醒等工作。然而在Java中除了提供Lock API外还在语法层面上提供了synchronized关键字来实现互斥同步原语。那么到底在JVM内部是怎么实现synchronized关键子的呢? 一、synchro...

2019-03-12 21:32:43

阅读数 28

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭