- 博客(11)
- 资源 (6)
- 收藏
- 关注
原创 浅谈GC(最后更新时间:20170328)
说道GC,不得不提及一下内存模型,JVM主要管理两种类型内存:堆和非堆,堆内存(Heap Memory)是在 Java 虚拟机启动时创建,非堆内存(Non-heap Memory)是在JVM堆之外的内存。 简单来说,堆是Java代码可及的内存,留给开发人员使用的;非堆是JVM留给自己用的,包含方法区、JVM内部处理或优化所需的内存(如 JIT Compiler,Just-in-time Compi
2017-03-28 22:49:25 327
原创 CAS如何保证安全性?(最后更新时间:20170328)
CAS是compareAndSwap的缩写,是Unsafe类中的方法,我们来看源码: /** * Atomically sets the value to the given updated value * if the current value {@code ==} the expected value. * * @param expect the
2017-03-28 18:59:39 1462
原创 Object finalnize()方法学习
Object对象中包含了一个用来回收堆中对象的方法,finalnize(),显示调用该方法并不一定会触发GC的回收,下面我们通过实验查看finalnize()方法工作机制;public class LoanProduct { @Override protected void finalize() throws Throwable { System.out.println
2017-03-25 22:32:39 502
原创 AtomicInteger线程安全的实现机制
java在concurrent包下提供了线程安全的int包装类,AtomicInteger,接下来我们就讲讲AtomicInteger的实现原理:public class AtomicInteger extends Number implements java.io.Serializable { private volatile int value;AtomicInteger 类中的valu
2017-03-24 22:28:25 3085
原创 mysql面试题
SELECT * FROM dbn_binding_user_data b JOIN dbn_person_credit p ON p.bo_id_person = b.person_id AND b.audit_status = ‘approve’ AND b.is_enabled = 1 JOIN dbn_person_information_v t4 ON
2017-03-24 14:27:44 407
原创 事物底层实现
关于mysql支持的事物底层是如何实现的: 1.mysql事物显示配置: Transaction.begin(); //TODO 增删改查 Transaction.commit();显示配置事物; 2.声明式事务的配置: spring提供了声明式事务的配置,基于AOP实现了,在Adivice(通知)中添加需要实现的逻辑代码: 如@Before中添加:Transacti
2017-03-23 23:01:00 445
原创 mysql锁机制
mysql提供了行锁,表锁以及叶锁;其中,InnoDB引擎采用了表锁的行锁机制; 行锁很容易有死锁的问题,当两个session同时进入该行数据的时候,会造成所竞争,同时事物也会锁定;
2017-03-23 22:52:24 450
原创 dubbo原理
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合),比如表现层和业务层就需要解耦合。 从面向服务的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。 除了以上两个角色,
2017-03-23 21:30:05 351
原创 Sping对事物的支持
Spring的事物通过它下面的tx组件实现,首先我们找到平台事物管理器: 这里是他的接口清单: PlatformTransactionManager.java*TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException;*void commit(Transactio
2017-03-18 17:20:48 344
原创 Hibernate named parameter 传参书写方式,同样Hibernate帮我们做了预编译,可以防止sql注入,同时可以一定程度上加快sql执行效率,也利于后期维护
1.当传入参数有多个的时候,使用Hibernate的named parameter方式是一种较好的选择,利于后期的维护; 2.实现方式:使用:name 来进行传入参数,使用sqlQuery对象的setParameter方法传入参数,同时兼顾list类型以及普通数据类型; 3.注意使用时的空格标识符的添加,否则IDE可能会提示,如果不提示,那就只能在运行时抛出异常了; 4.厉害了我的Hibe
2017-03-17 14:40:43 1233
Java并发编程的艺术
2018-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人