- 博客(17)
- 收藏
- 关注
转载 java 拦截器和过滤器
一、引言在平时开发过程中经常会用到过滤器和拦截器,用到过滤器用做xss的危险字符过滤,字符编码设置,用到拦截器主要是:1、日志记录 :记录请求信息的日志2、权限检查,如登录检查 ,两者的区别也是面试题经常会问到的。二、区别1、过滤器(Filter)首先说一下Filter的使用地方,我们在配置web.xml时,总会配置下面一段设置字符编码,不然会导致乱码问题:<...
2019-03-31 20:11:19 228
原创 SpingData JPA之ExampleMatcher实例查询
ExampleMatcher是SpingData-JPA中好玩的一个东西ExampleMatcher实例查询三要素实体对象:在ORM框架中与Table对应的域对象,一个对象代表数据库表中的一条记录,如上例中User对象,对应user表。在构建查询条件时,一个实体对象代表的是查询条件中的“数值”部分。如:要查询姓“X”的客户,实体对象只需要存储条件值“X”。匹配器:ExampleMatch...
2019-03-24 21:46:38 5969
原创 死锁的现象和解决办法
产生死锁的根本原因是两个或者两个以上线程在执行过程中,因争抢资源而产生相互等待的一种现象。在申请锁的时候发生了交叉闭环申请。死锁产生的四个条件:1)互斥。共享资源同时只能被一个线程访问。2)占有且等待。线程T1在取得共享资源A的时候,请求等待资源B的时候并不释放资源A。3)不可抢占。其他线程不能强行抢占线程的资源。4)循环等待条件。线程T1在持有资源A1,同时在请求等待获取资源B...
2019-03-21 16:01:18 4076 2
原创 守护线程和非守护线程
守护线程和非守护线程java线程中有两种线程,一种是用户线程(非守护线程),一种是守护线程。守护线程是一种特殊的线程,它具有陪伴的含义。当进程中不存在非守护线程了,则守护线程自动销毁。典型的就是垃圾回收进程。当进程中没有非守护线程了,则垃圾回收线程没有存在的必要,自动销毁。任何一个守护线程都是整个JVM中所有非守护线程的保姆。只要当前JVM中有非守护线程没有结束,守护线程就在工作。只有当最后一...
2019-01-11 11:52:14 3571 2
转载 讲事务隔离:为什么你改了我还看不见
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转100块钱,而此时你的银行卡只有100块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这100块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就...
2019-04-13 00:02:49 269
转载 spring boot入门第一课
第01课:Spring Boot 入门什么是 Spring BootSpring Boot 是由 Pivotal 团队提供的基于 Spring 的全新框架,其设计目的是为了简化 Spring 应用的搭建和开发过程。该框架遵循“约定大于配置”原则,采用特定的方式进行配置,从而使开发者无需定义大量的 XML 配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域成为领导...
2019-04-10 00:26:45 240
原创 MAC IntelliJ IDEA maven库下载依赖包速度慢的问题
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="...
2019-04-03 23:42:30 2397
原创 wait(),sleep(),notify(),notifyAll()领悟
1、wait() 方法和 sleep() 方法都能让当前线程挂起,它们的区别是什么?wait与sleep区别在于:1. wait会释放所有锁而sleep不会释放锁资源.2. wait只能在同步方法和同步块中使用,而sleep任何地方都可以.3. wait无需捕捉异常,而sleep需要.4. sleep是Thread的方法,而wait是Object类的方法5. sleep方法调用的时候...
2019-03-18 01:05:30 296
原创 JVM
运行时数据区主要包括程序计数器、虚拟机栈、本地方法栈、方法区、堆。程序计数器、虚拟机栈和本地方法栈是线程独立的,方法区和堆是线程共享的,在虚拟机启动时创建。程序计数器可看作是当前线程执行字节码指令的行号指示器。字节码解释器工作时就是通过改变计数器的值来取得下一条需要执行的字节码指令,分支,循环,异常处理和线程恢复都要依靠这个程序计数器。java虚拟机栈,存放当前线程运行方法执行时...
2019-02-14 00:12:59 146
原创 静态变量、静态语句块、静态方法、语句块的执行顺序
在代码执行调用的时候,分两种情况,一种是有继承关系的,一种是无继承关系的。package test;public class testObject{ private static testObject instance = null;(顺序1) private testObject(){ (顺序4) } static{ ins...
2019-01-24 10:27:43 1158 1
转载 多线程并发知识纪要
学习多线程并发,要着重 “外练互斥,内修可见” ,这是掌握多线程、学习多线程并发的重要技术点。一、基础知识1、currenThread() 方法可返回代码段正在被哪个线程调用的信息2、多线程两种方式 集成Thread OR 实现Runable3、isAlive() 的功能是判断当前线程是否处于活动状态(活动状态就是线程以启动且尚未终止)4、sleep()的作用是在指定的毫秒数内让“正...
2019-01-16 11:41:21 126
转载 Java 内部类的作用
推荐一、 定义放在一个类的内部的类我们就叫内部类。二、 作用1.内部类可以很好的实现隐藏 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以2.内部类拥有外围类的所有元素的访问权限3.可是实现多重继承4.可以避免修改接口而实现同一个类中两种同名方法的调用。三、 例子1.实现隐藏 平时我们对类的访问权限,都是通过类前面...
2019-01-14 23:25:02 112
原创 可重入锁
关键词synchronized拥有锁重入的功能,也就是在使用synchronized时,当一个线程得到对象锁时,再次请求这个对象锁是可以再次得到的。这也证明在一个synchronized方法/块的内部调用其他的synchronized方法/代码块是永远可以得到锁的。如果锁不可以重入,那么调用其他的同步方法会阻塞,就会造成死锁。public class SyschronizedObject {...
2019-01-14 14:14:40 95
原创 线程安全
sychronized同步方法非线程安全是多个线程对同一个对象中的实例变量进行并发访问时发生,就会产生脏读,而线程安全获得的实例变量的值是经过同步处理的,不会出现脏读的情况。方法内的实例变量为线程安全public class MyThread extends Thread { private SyschronizedObject object; public MyThrea...
2019-01-14 10:45:36 103
原创 Synchronized与锁对象
关键字Synchronized取得的锁都是对象锁,而不是把一段代码或者方法当作锁,哪个线程先执行带有Synchronized方法,哪个线程先持有该方法所属对象的锁lock,那么其他线程就只能等待。前提是多个线程访问的是同一个对象。如果是多个线程访问多个对象,则会创建多个锁。同步的单词是synchronized,异步的单词是asynchronized。调用关键词synchronized声...
2019-01-14 10:45:03 477
原创 线程suspend,yield详解
一、在使用suspend与resume方法时也容易出现因为方法的暂停而导致数据的不同步的情况。public class SyschronizedObject { private String username = "1"; private String password = "11"; public String getUsername() { re...
2019-01-11 11:26:00 505
原创 线程优先级
线程的优先级在操作系统中,线程可以划分优先级,Cpu优先执行优先级高的线程的任务。在java中线程优先级分为1~10,如果小于1或者大于10,则jdk报illegalArgumentException()异常。设置线程优先级使用setPriority()方法。1、线程优先级具有继承性。a线程启动b线程,b线程的优先级和a线程的优先级是一样的。public class MyTh...
2019-01-10 17:34:26 6515 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人