摘要:Redis数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 注意: 命令的关键词,如set,get,lpush,zadd等不区分大小写。。 但是key一定要注意区分大小写。 String(字
阅读全文
摘要:ReenTrantLock可重入锁(和synchronized的区别)总结 可重入性: 从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的
阅读全文
摘要:原文地址:https://blog.csdn.net/dt_zhangshuo/article/details/53334030 资源的分类 系统中有许多不同类型的资源,需要采用互斥访问方法并且不可被抢占的资源,也就是临界资源。 使用次数分类 可重用性资源 每一个可重用资源中的单元只能分配给一个进程
阅读全文
摘要:死锁,就是两个(或多个)线程对彼此加锁的资源进行加锁,导致彼此等待而永远阻塞。 比如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加锁,这时死锁就发生了。线程1永远得不到B,线程2也永远得不到A,并且它们永远也不会知道发生了这样的事情。为了得到彼此的对象(A和B
阅读全文
摘要:Condition类可以使线程等待,也可以唤醒线程。Condition类的await方法和Object类的wait方法等效Condition类的signal方法和Object类的notify方法等效Condition类的signalAll方法和Object类的notifyAll方法等效 注意:awi
阅读全文
摘要:在没有写操作的时候,两个线程同时读一个资源没有任何问题,允许多个线程同时读取共享资源。 但是如果有一个线程想去写这些共享资源,就不应该再有其它线程对该资源进行读或写。 简单来说,多个线程同时操作同一资源时,“读读共存,写写不共存,读写不共存”。 读写锁的锁定规则如下:获得读锁后,其它线程可获得读锁而
阅读全文
摘要:最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的. HashMap中的单链表是尾插, 而不是头插入等等, 后
阅读全文
摘要:java中的锁,最基本的是Lock接口。 Lock接口中的方法,主要是: lock(): 获取锁,lock()方法会对Lock实例对象进行加锁,因此所有对该对象调用lock()方法的线程都会被阻塞,直到该Lock对象的unlock()方法被调用。 unlock(): 释放锁, Lock在发生异常时,
阅读全文
摘要:0.什么是N+1问题? 在查询中一下子取出所有属性,就会使数据库多执行几条毫无意义的SQL 。实际中不需要把所有信息都加载进来,因为有些信息并不常用,加载它们会多执行几条毫无用处的 SQL,导致数据库资源的损耗和系统性能的下降。假设现在有 N 个关联关系完成了级联,那么只要再加入一个关联关系,就变成
阅读全文
摘要:在线程池的api中,Executor接口是最上层的接口,内部只有一个方法。如下: ExecutorService接口继承自Executor接口,结构如下: 而线程池的类ThreadPoolExecutor,具体关系如下: execute():用于执行线程 shutdown() : 关闭线程 Exec
阅读全文
摘要:Mybatis的多表级联查询 。 一对一可以通过<association>实现,一对多和多对多通过<collection>实现。 <discriminator> 元素,可以灵活选择属性column使用哪个字段进行鉴别。 一. 一对一的级联查询 对user_t表和book_t表进行连接查询。sql语句
阅读全文
摘要:final可以修饰类,方法,变量。 1.final修饰的类,不可以被继承。 2.final修饰方法,可以把方法锁定,以防任何继承类修改它的含义。 3.fianl修饰的变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改; 如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对
阅读全文
摘要:阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。 这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。 阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就
阅读全文
摘要:错误1: The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. 解决方案: http://www.c
阅读全文
摘要:错误1: error: Your local changes to the following files would be overwritten by merge:Please, commit your changes or stash them before you can merge. 解决
阅读全文
摘要:一、效率低下的HashTable容器HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法时,其他线程访问HashTable的同步方法时,可能会进入阻塞或轮询状态。如线程1使用put进
阅读全文
摘要:SpringMVC可以通过配置拦截器,进行url过滤等处理。 在spring-mvc.xml的配置文件中,如下示: 其中,在<mvc:interceptors>中可以配置多个拦截器<mvc:interceptor>。 然后添加拦截器类,拦截器主要是通过继承HandlerInterceptorAdap
阅读全文
摘要:摘自网络博客。 学会如何读一个JavaWeb项目源代码 步骤:表结构->web.xml->mvc->db->spring ioc->log->代码 1、先了解项目数据库的表结构,这个方面是最容易忘记的,有时候我们只顾着看每一个方法是怎么进行的,却没有去了解数据库之间的主外键关联。其实如果先了解数据库
阅读全文
摘要:参考博客:https://blog.csdn.net/sinat_33087001/article/details/73607625
阅读全文
摘要:java多线程之间的通信方式有多种: 1.wait(),notify(),notifyAll()方法;2.join()方法;3.通过volatile共享内存的方式进行线程通信的;4.interrupt()方法中断线程; 5.管道通信。 本文主要学习JAVA多线程中的 wait()方法 与 notif
阅读全文
摘要:synchronized能够保证在同一时刻只有一个线程执行该段代码。 使用synchronized能够防止多个线程同时并发访问程序的某些资源。 synchronized既可以修饰变量,也可以修饰方法,还可以用于代码块。 使用synchronized的原则:锁的范围尽可能小,锁的时间尽可能短。即能锁对
阅读全文
摘要:今天在配置SpringMVC时,访问项目一直出现404,无法访问。 报错: The origin server did not find a current representation for the target resource or is not willing to disclose th
阅读全文
摘要:一、ORM简介 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。那么,到底如何实现持久化呢?一种简单的方
阅读全文
摘要:java后端架构师技术图谱Java 工程师进阶知识完全扫盲【Java学习+面试指南】 石杉的架构笔记 中小公司的Java工程师应该如何逆袭冲进BAT? Java后端技术从0到1技术路线,一步步走向大神! 《吐血整理》顶级大佬学习方法 后端架构师技术图谱 如何成为一名不那么差的程序员? Java 后端
阅读全文
摘要:interrupt() 方法只是改变中断状态而已,它不会中断一个正在运行的线程。这一方法实际完成的是,给受阻塞的线程发出一个中断信号,这样受阻线程就得以退出阻塞的状态。更确切的说,如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞,此时调用该线程的i
阅读全文