java
djp567
从事javaweb开发近4年,精通java
展开
-
Spring事务为什么不会自动回滚?Spring事务怎样才会自动回滚?事务自动回滚条件及手动回滚
在此,首先我们要明确RuntimeException与Exception之间的关系与他们分别的含义: ①在Java中异常的基类为Throwable,他有两个子类Exception与Errors,同时RuntimeException就是Exception的子类; ②RuntimeException,即运行时异常,为非受检(UNCHECKED)异常; ③...转载 2018-11-29 11:24:43 · 287 阅读 · 0 评论 -
关于数据的事物有关概念
1.事物的特性 原子性:事务里面的操作单元不可切割,要么全部成功,要么全部失败 一致性:事务执行前后,业务状态和其他业务状态保持一致. 隔离性:一个事务执行的时候最好不要受到其他事务的影响 持久性:一旦事务提交或者回滚.这个状态都要持久化到数据库中脏读:在一个事务中读取到另一个事务没有提交的数据不可重复读...转载 2018-10-03 11:54:19 · 227 阅读 · 0 评论 -
简单分析synchronized
简单分析synchronized:静态:全局锁 如:sychroinzed(String.class)、加在静态变量上实例:对当前实例可见 sychroinzed(this)、者加在方法上代码块:代码块的范围原创 2018-02-06 22:07:27 · 279 阅读 · 0 评论 -
java关键字volatile、transient
本问主要知识点: volatile 关键字transient关键字1.volatile:当多个线程进行操作共享数据时,可以保证内存中的数据可见,相对与synchronized是一种轻量级的锁 注意:1)volatile 不具有互斥性;2)不能保证变量的原子性java.util.concurrent.atomic.包下提供了常用的原子变量:1)通过volatile保证原创 2018-02-06 10:17:38 · 183 阅读 · 0 评论 -
注解@Resource和@Autowired区别对比
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。1、共同点两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。2、不同点(1)@Autowired@Autowired为Spring提供...转载 2018-02-11 10:13:54 · 209 阅读 · 0 评论 -
java线程的中断(interrupt)
一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果比如会带着自己所持有的锁而永远的休眠,迟迟不归还锁等。 所以你看到Thread.suspend, Thread.stop等方法都被Deprecated了那么不能直接把一个线程搞挂掉, 但有时候又有必要让一个线程死掉, 或者让它结束某种等待的状态 该怎么办呢?一个比较优雅而安全的做法是:使用等待/通知机制转载 2018-01-25 09:36:45 · 209 阅读 · 0 评论 -
Java并发编程:Lock
本文目录大纲: 一.锁的相关概念介绍二.Lock的特性: 三.java.util.concurrent.locks包下常用的类 三.锁的相关概念介绍一.锁的相关概念介绍 1.可重入锁 如果锁具备可重入性,则称作为可重入锁。像synchronized和ReentrantLock都是可重入锁,可重入性在我看来实际上表明了锁的分配机转载 2018-02-02 13:40:02 · 137 阅读 · 0 评论 -
Lock与synchronized 的区别
实现同步发的方法:有synchronized;jdk5之后有java.util.concurrent.locks的LockLock与synchronized 的区别:概念:如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况: 1)获取锁的线程执行转载 2018-02-02 13:10:43 · 385 阅读 · 0 评论 -
java 线程详情
一、Java线程的周期: 1. 线程有五个基本状态描述New: 新建线程(创建一个线程,但是没有任何可运行的实体)Runnable 线程就绪(将程序变量实体放入线程中,可执行状态)Running 运行(运行放入的程序)Blocked 阻塞(程序暂停,等待自动唤醒或者被动唤醒)Dead 结束(程序运行结束或者异常退出) 2.线程有五个基本状态的转...原创 2018-01-24 12:28:48 · 219 阅读 · 0 评论 -
存储过程&函数-sql
以一下例子以mysql为例:存储过程函数函数函数创建:需要参入参数user_id是intBEGIN DECLARE ss varchar(100); set ss='aaa'; select name into ss from testuser where id=user_id; RETURN ss;ENDjava调用: Connection con原创 2018-02-01 16:22:45 · 192 阅读 · 0 评论 -
java线程之间的通信(等待/通知机制)
线程开始运行,拥有自己的栈空间,就如同一个脚本一样,按照代码一步步的执行直到终止。但是,每个运行中的线程,如果仅仅是孤立地运行,那么没有太大的价值,但如果多个线程能够相互配合完成工作,这将会带来巨大的价值。而java多线程的等待和通知机制就是用来完成线程之间的通信。一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个过程开始于一个线程,而最终执行又是另一个线程。前转载 2018-01-25 09:56:55 · 178 阅读 · 0 评论 -
java实现线程的方法
自己备份转载 2017-11-21 15:44:26 · 174 阅读 · 0 评论 -
jdk8新特性:Lambda表达式(也称为闭包、可传递的匿名函数)与函数式接口@FunctionalInterface
1) 一个lambda可以由用逗号分隔的参数列表、–>符号与函数体三部分表示。例如:ex.1Arrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) );ex.2 (Computer c1, Computer c2) -> c1.getPrice().compareTo(c2.getPrice(转载 2017-11-12 16:31:53 · 2224 阅读 · 0 评论