isEmpty和isBlank区别

isEmpty和isBlank区别前言小编在刚接触Java时一般是用equals方法来进行判断是否为空,有点笨拙,效果还不是太好,现在在项目中大家一般都是用StringUtils类下的isEmpty和isBlank进行空值判断,那么它们又有什么区别呢?一、通过源码比较public static boolean isEmpty(String str) { return str == n...

Java 2020-03-09 PM 1839次 0条

【转载】Java锁知识总结(二)

【转载】Java锁知识总结(二)1. 锁类型可重入锁:广义上的可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者class),这样的锁就叫做可重入锁。即在执行对象中所有同步方法不用再次获得锁。ReentrantLock和synchronized都是可重入锁。举个简单的例子,当一个线程执行到某个synchronized方法时,比如说...

Java 2020-03-08 AM 1482次 0条

Spring知识总结(一)

Spring知识总结(一)1. 什么是Spring?Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编程风格。2. Spring有哪些优点?轻量级:Spring在大小和透...

Java 2020-03-07 PM 1332次 0条

Java锁知识总结

Java锁知识总结前言本篇在网上总结了一下关于Java锁的一些相关概念,希望可以给大家带来一点帮助1. 什么是线程安全,如何保证线程安全?1.线程安全:就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后 更改数据造成所得到的...

Java 2020-03-06 AM 2111次 1条

【转载】并发问题是怎样造成的

【转载】并发问题是怎样造成的我们的程序要运行,离不开CPU、内存、IO设备,但是他们三者之间的执行速度是有差异的。CPU 的执行速度最快,内存的速度次之,IO设备的速度最慢。一、为什么会有内存缓存CPU执行一条指令非常快,但是他从内存中读取某个数据时,就需要等待很长的时间,为了弥补速度上的巨大差距,让CPU不被内存拖垮,所以在CPU上增加了缓存。当CPU请求内存中的数据时,会先查看缓存中是否...

Java 2020-03-05 PM 1388次 0条

HashMap、Hashtable、ConcurrentHashMap的原理与区别

HashMap、Hashtable、ConcurrentHashMap的原理与区别前言本篇简单讲述HashMap、Hashtable、ConcurrentHashMap的原理,并对它们之间的区别做一个简单对比,并不从源码层面上做讲解一、基础概念HahTable1.继承于Dictionary,现了Map、Cloneable、java.io.Serializable接口2.底层是数组+链表实现,...

Java 2020-03-04 PM 1423次 0条

GET和POST两种基本请求方法的区别

GET和POST两种基本请求方法的区别最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。一般面试当面试官问时,我们的答案可能是这样的:GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而P...

Java 2020-03-03 PM 1301次 0条

死锁编码及定位分析

死锁编码及定位分析概念死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉那它们都将无法推进下去,如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。代码示例class DeadLockResource implements Runnable{ private String LockA; ...

Java 2020-03-03 PM 1386次 0条

线程池简单介绍

线程池简单介绍一、线程池的优势线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。他的主要特点为:线程复用;控制最大并发数;管理线程。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不...

Java 2020-03-02 PM 1672次 0条

【转载】ReentrantLock和synchronized的比较

【转载】ReentrantLock和synchronized的比较ReentrantLock和synchronized的比较。Monitor是原理和作用开始今天,我们来聊聊ReentrantLock和synchronized的相似与不同。都是阻塞ReentrantLock和synchronized都是加锁式同步,当一个线程获取了对象锁后,其它要进入同步块的线程就必须阻塞在同步块外等待。线程的...

Java 2020-03-01 PM 1443次 0条