- 博客(19)
- 收藏
- 关注
原创 Java并发原理学习笔记+总结+实战(6)——可重入锁
Java中常用的重入锁 java中重入锁的定义是指可重复、递归调用的锁,在得到同一个对象或类的前提下,外层使用锁之后,在内层中依然可是使用且不会发生死锁。其中最常见的关键字是synchronize和reentrantLock这两个。使用synchronize实现import java.util.concurrent.TimeUnit;import java.util.conc...
2019-04-02 14:49:43
228
原创 Java并发原理学习笔记+总结+实战(5)——Lock接口
一、 在JDK1.5之后,在java.util.concurrent.locks的包中提供了另一种实现代码同步的方法,Lock。 在前面说过,synchronize锁是一种重量级的,特别耗费资源的锁。在使用synchronize中,当线程被阻塞或等待处理,但又没有释放锁时,其他线程只能在外面等待,非常影响执行效率。这就需要有一种机制可以不让等待的线程一直无期限地等待下去(比如只...
2019-03-15 11:07:01
227
原创 Java并发原理学习笔记+总结+实战(4)——volatile的原理与使用
volatile是一种轻量级锁,被volatile关键字修饰的变量,在线程之间是可见的。即一个线程修改了这个变量的值,在另一个线程中能够读到这个修改后的值。 像我们之前所说的synchronize除了能让线程之间互斥以外,还有一个非常大的作用就是办证变量的可见性。/** * 保证可见性的前提 * <p> * 多个线程拿到的是同一把锁,否则是保证不了的。 ...
2019-03-14 15:33:25
180
原创 Java并发原理学习笔记+总结+实战(3)——单例与线程安全问题
1.单例模式饿汉模式public class Singleton { // 私有化构造方法 private Singleton() { } private static Singleton instance = new Singleton(); public static Singleton getInstance() { return instance...
2019-03-14 10:32:18
162
原创 Java并发原理学习笔记+总结+实战(2)——线程带来的风险
1、线程带来的风险 java对线程的支持其实是一把双刃剑。虽然java提供了相应的语言和库,以及一种明确的跨平台内存模型,这些工具简化了并发应用程序的开发,但同时也提高的对开发人员的技术要求,因为更多的程序中会使用线程。1.1 线程的安全性问题 线程安全性可能是非常复杂的,在没有充分同步的情况下,多个线程中的操作次序是不可预测的,甚至会产生奇怪的结果。/** * U...
2019-03-01 16:11:38
214
原创 Java并发原理学习笔记+总结+实战(1)
为什么要学习并发编程?•1.发挥多处理的强大能力•2.建模的简单性•3.异步事件的简化处理•4.响应更加灵敏的用户界面•1.找工作,面试•2.了解并发编程的原理,提高代码的编写能力•3.解决工作中遇到的并发问题......线程与进程首先要先学会区分线程和进程:进程:运行中的程序,是资源分配的基本单位。进程中包含多个线程,线程共享进程的资...
2019-02-28 16:33:29
198
原创 从SolrDocument转换为bean
我需要将从Solr检索到的数据转换为特定的类,我尝试了3种不同的方法,但每种方法都存在一些问题。方法1:使用第三方库 - JSONUtil。 SolrDocument solrDocument = (SolrDocument) iterator.next(); String jsonString = JSONUtil.toJSON(solrDocument); Ev...
2019-01-17 15:13:36
964
原创 springcloud微服务项目架构搭建第二天
springcloud微服务项目架构搭建第二天:整合oauth2时遇到的坑推荐文章:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.htmlspringboot2.0 oauth2重要变更https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration...
2018-08-28 10:06:23
3413
2
原创 springcloud微服务项目架构搭建第一天
springcloud微服务项目架构搭建第一天(一).项目简介1、准备工作:idea创建springboot模板2、后台应该涉及的技术(后期可能会有删改)Spring Framework 容器 SpringMVC MVC框架 Apache Shiro 安全框架 Spring session 分布式Session管理 MyBatis OR...
2018-08-02 10:13:47
12044
原创 Springmvc和spring的父子容器
一般我们使用spring和springMVC的时候,web.xml的配置一般先配置加载spring contextConfigLocation classpath:spring/applicationContext-*.xml org.springframework.web.context.ContextLoaderListener
2018-01-19 13:40:54
566
原创 在Spring Cloud中.yml与.properties
在Spring Cloud的配置文件中,发现使用yml与properties两种后缀的文件:在application.properties中内容是这样的:server.port=8801eureka.client.register-with-eureka=falseeureka.client.fetch-registry=falseeureka.client.serviceUrl.defau
2017-06-02 17:53:21
22407
3
转载 Maven的pom.xml文件的tag详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.
2017-05-19 10:01:34
2721
转载 chrome不再支持showModalDialog
2014年的某一天,chrome升级后,突然发现某个在用的系统不能弹出模态窗口了,查找各种资料后确认新版本(可能为Chrome 37+)确实把这个支持去掉了,有这么坑人的吗!虽然说谷歌不支持了,可是火狐用自己的内核它支持啊。。。。。所以特地在网上找了很久
2017-04-27 16:11:37
545
原创 Hibernate中clear()与flush()
在这次项目中偶尔会遇到“identifier of an instance of”这个错误,一开始还以为是没进行clear()操作,可是仔细排查了一遍后发现居然是因为flush()引起的这个错误。因为在进行数据库的写操作时,涉及到parent也就是上级分类属性。无论是Load 还是 Get 都会首先查找缓存(一级缓存) 如果没有,才会去数据库查找,调用Clear() 方法,可以强制清除Sess
2017-04-06 13:46:37
296
原创 ConvertUtils.register(new DateConverter(null), java.util.Date.class)使用
在使用BeanUtils.copyProperties()方法过程中报"no value specified for date"错误,是因为Converter这个居然只支持一些基本的类型,居然连java.util.Date这个也支持不了,在没有使用类型注册器的前提下使用date类型会报上述错误。 BeanUtils.copyProperties(dest, orig);这种copy是浅拷贝,复
2017-03-13 13:00:05
3071
原创 Apache+PHP+Discuz论坛开发环境搭建
Apache2.4安装过程:1. 以管理员身份运行命令提示符,具体操作方法是,点“开始”->“所有程序”->“附件”,右键点击“命令提示符”,选择“以管理员身份运行”就可以了。2. 把路径指向Apache文件下bin文件3. 输入httpd –k install()4. 安装成功界面:以上过程是把apache服
2017-02-28 11:25:03
2257
原创 Criteria联合分组查询+bject转对象,java实现Object转实体类备忘录
最近接触Criteria联合分组查询+bject转对象,java实现Object转实体类所以做了一下备忘录
2017-02-28 11:03:09
942
原创 Json时间转换中时间自动加时区的解决办法
办法一:在Model中直接使用注解对时间进行格式化输出和时区选择 @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, locale = “zh”, timezone=”GMT+8”) @Temporal(TemporalType.TIMESTAMP) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale
2017-02-24 09:34:50
12070
原创 List<Map<String, Object>>对其中的map按规则排序
public List<Map<String, Object>> getBreedRecordList(Batch batchBean) { List<Map<String, Object>> fieldList = null; Map<String, Object> fieldMap = null; if (null != batchBean.get
2017-02-23 13:04:50
3067
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人