本文演示的是Spring中使用AspectJ注解和XML配置两种方式实现AOP 下面是使用AspectJ注解实现AOP的Java Project首先是位于classpath下的applicationContext.xml文件 <?xml version="1.0" encoding="UTF-8"? Read More
create or replace procedure RaiseSalry(eno in number) as psal emp.sal%type; begin select sal into psal from emp where EMPNO=eno; update emp set sal = Read More
DML语言,比如update,delete,insert等修改表中数据的需要commit; DDL语言,比如create,drop等改变表结构的,就不需要写commit(因为内部隐藏了commit); DDL 数据定义语言: create table 创建表 alter table 修改表 drop Read More
事件简述 这是一件发生在前段时间的事情,当时的情况是这样的:一个新的功能模块上线之后,出现短信接口被恶意访问调用的情况,请求数量很大,而且通过查看短信服务商控制台也发现,短信发送量在飙升,看着统计曲线的增长,紧张的气氛也渐渐变得更浓,很明显,事情并不是遇到一个bug那么简单,因为牵涉到服务费用,需要 Read More
Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共 Read More
一、对静态代码块和非静态代码块进行简单的总结 1.静态代码块: 静态代码块是在当类被载入(内存)时最先被调用的,且之被执行一次,静态块常用来执行类属性的初始化。执行类的载入之前就会调用。 2.非静态代码块: 非静态代码块是在当类的对象被创建载入(内存)时最先被调用的,每创建一个对象,即每载入一个对象 Read More
所谓mybatis缓存,就是将硬盘中的数据放到内存中。尤其对于一些相同的查询语句,完全可以放在内存中,可以大大提高查询效率。 MyBatis的缓存分为两种: Read More
volatile是变量修饰符,而synchronized则是作用于代码,方法和变量。 int i1;int geti1() {return i1;} volatile int i2;int geti2() {return i2;} int i3;synchronized int geti3() {r Read More
可以不提供,只不过这样的话构造对象的时候一定要先拿到有参数的构造方法,然后赋予参数再构建对象。比如package cn.mldn.demo; import java.lang.reflect.Constructor; class Person{ // CTRL + K private String Read More
1.概念:线程是进程的一个实体,是CPU调度和分配的基本单位。 举个例子:运行多个QQ程序就是多个进程并发执行,在QQ里面边聊天边看空间就是多个线程并发执行。 2.线程创建: 第一种:继承Thread,重写Run()方法,创建该类对象,调用start()方法开启线程。线程任务和线程对象绑定在一起,耦 Read More