自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 redis(二)

springboot整合redis:第一:添加相关jar包<dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-data-redis</artifactId> </depe...

2019-01-29 22:58:00 94

转载 Redis(一)

redis需学习那些知识:主从复制,哨兵模式、读写分离以及集群什么是redis:  redis是一种nosql缓存数据库,是一个高性能的key-value数据库。为什么用redis?     Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。     Redis不仅仅支持简单的key-value类型的数据,同时还提供list,...

2019-01-29 22:51:00 114

转载 《深入理解java虚拟机》 精华总结(面试)

《深入理解java虚拟机》 精华总结(面试)本文转载:Wuuboy一、运行时数据区域Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区1.1程序计数器程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的...

2019-01-19 23:19:00 158

转载 Java内存结构

本文来自转载:https://www.cnblogs.com/jiyukai/p/6665199.htmlJava虚拟机规范的规定,JVM自动管理的内存将会包括以下几个运行时数据区域。程序计数器  程序计数器(Program Counter Register)是JVM中一块较小的内存区域,保存着当前线程执行的虚拟机字节码指令的内存地址。Java多线程的实现,其实是通过...

2019-01-12 22:23:00 73

转载 动态代理设计模式

通过JDK实现动态代理如果要实现动态代理,那么你要编写的那个代理类就需要实现一个InvocationHandle接口java.lang.reflect.InvocationHandler.看到reflect我们就能知道,动态代理肯定是通过反射来实现的了,这个接口中有一个方法:    Object invoke(Object proxy, Method method, O...

2019-01-09 00:08:00 94

转载 静态代理设计模式

代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。为什么需要代理:     打一个最简单的比方,我现在想要学习,那么就必须得把书包拿过来,把书掏出来,准备好纸笔,然后开始学习,等学完了我还得收拾书,把书塞回书包里,还得整理一下书包,这是一个完整的学习的过程,但是我很懒,不想动弹,只想学习,那可能就得让妈妈帮我把书包拿过来,把书打开,我只管学习就好...

2019-01-08 23:16:00 69

转载 Callable与Future模式

在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。如果2个线程执行,其中一个线程执行完成后另外一个线程才能执行,我们只能采用共享变量或共享存储区以及线程通信的方式实现获得任务结果的目的。Java中,也提供了使用Callable和Future来实现获取任务结果的操作。Cal...

2018-12-21 21:32:00 116

转载 SpringBoot(十) 性能优化

默认情况下,我们会使用 @SpringBootApplication 注解来自动获取应用的配置信息,但这样也会给应用带来一些副作用.1、会导致项目启动时间变长。当启动一个大的应用程序,或将做大量的集成测试启动应用程序时,影响会特别明显。2、会加载一些不需要的多余的实例(beans)。3、会增加 CPU 消耗。因为 @SpringBootApplication会触发自动配置...

2018-12-13 21:52:00 171

转载 springboot(九):事物管理

SpringBoot整合事物管理   Springboot默认集成事物,只主要在方法上加上@Transactional即可。多数据源情况下事物怎么管理事物  对于这种传统的分布式事物管理,采用jta+atomikos分布式事物管理。Atomikos 是一个为Java平台提供增值服务的并且开源类事务管理器。新增jta-atomikos依赖   <depend...

2018-12-05 00:07:00 105

转载 springboot(八):整合多数据源

数据源是如何划分:  按包名(业务)和注解划分 ;例如:com.test.learn01----使用datasource1; com.test.learn02----使用datasource2。项目目录结构:配置文件中新增两个数据源创建数据源DataSource1Config@Configuration // 注册到springboot容器中@Mapp...

2018-12-04 23:24:00 82

转载 lombok让代码更简洁

开发工具中需要安装lombok插件,eclipse 安装 lombok1、下载 lombok.jar https://projectlombok.org/download.html2、将 lombok.jar 放在 eclipse 安装目录下,和 eclipse.ini 文件平级的  运行 lombok.jar  在 lombok.jar 的目录下,运行:  ...

2018-12-02 23:41:00 57

转载 Java锁的深度化

Java锁分为:Lock轻量级锁,和synchronized重量级锁 重入锁(什么是重入锁)、 读写锁 、悲观和乐观锁 、CAS无锁、 自旋锁、 AQS锁 、非公平锁、公平锁 、互斥锁 、排他锁 、分布式锁:(redis和Zookeeper实现分布式锁)。悲观锁   悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁(每次去拿数据的时候都认为别人会修改,所以每...

2018-11-19 23:23:00 79

转载 线程池

什么是线程池?   线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建一个线程。为什么要使用线程池?    使用线程必须通过线程池提供,不允许在任何应用中显示的创建线程, 使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统的资源开销,解决了资源不足问题,如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗内...

2018-11-18 23:44:00 63

转载 并发队列

Java队列中存在有界和无界2种,区别在于有界就是有限制的,无界是无限的。在并发中存在阻塞和非阻塞。  阻塞:生产者写入队列慢的时候就会进入阻塞,等待消费者消费。当一个线程试图对一个空队列进行出队列操作时,它将会被阻塞,除非有另一个线程进行了入队列操作。第一:ConcurrentLinkedQueue    ConcurrentLinkedQueue :是一个适用于高...

2018-11-18 22:48:00 92

转载 CountDownLatch、CyclicBarrier和 Semaphore

  CountDownLatch类位于java.util.concurrent包下,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。    CountDownLatch是通过一个计数器来实现的,计数器的初...

2018-11-17 23:39:00 68

转载 ConcurrentHashMap

HashTable,它是线程安全的,它在所有涉及到多线程操作的都加上了synchronized关键字来锁住整个table,这就意味着所有的线程都在竞争一把锁,在多线程的环境下,它是安全的,但是无疑是效率低下的。ConcurrentHashMap:  ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的HashTable,它们有...

2018-11-17 22:15:00 47

转载 Lock锁 和 ThreadLoca

synchronized锁。   从代码执行开始上锁 ,代码结束或者代码异常释放锁,他是内置锁,自动化实现锁,缺点:效率低(强锁的资源),阻塞、扩展性不高,不能自定义。Lock锁和synchronized的区别。   Lock是手动去实现锁,使用前必须先获取锁 ,在使用锁,最后需要释放锁;Lock 接口的实现允许锁在不同的作用范围内获取和释放,并允许以任何顺序获取和释放多个锁...

2018-11-16 22:13:00 158

转载 多线程之间通讯

多线程之间通讯:就是多个线程在操作同一个资源,但是操作的动作不同  现在需要实现,生产一台电机,销售一台电机问题。实现代码:运行结果:数据发生错乱,造成线程安全问题解决线程安全问题:通过wait()、notify来解决。wait和sleep的区别:  wait可以指定时间也可以不指定时间,sleep必须执行时间;...

2018-11-16 00:48:00 51

转载 多线程之间实现同步

为什么有线程安全问题  当多个线程同时共享同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。线程安全问题前提条件:  必须是在多线环境下,多个线程共享一个资源,对资源进行写操作(非原子性操作)什么是多线程之间同步  当多个线程共享同一个资源,不会受到其他线程的干扰。需求说明:2个窗口同时卖100...

2018-11-14 00:58:00 166

转载 多线程快速入门

应用程序:就是可以执行的软件,如QQ、YY语言。什么进程:就是正在运行的程序,是所有线程的集合。什么线程:每一个线程是进程中的一条执行路径,一个独立执行的单元。(是独立运行的一个执行路径或者执行顺序)。 每个线程互补影响,因为自己都是独立运行的。创建线程有方式: 继承Thread类,2、实现Runnanle接口、3、使用匿名内部类、4、实现Callable接口 ,5...

2018-11-13 23:00:00 56

转载 学习相关地址记载

Durid官方地址:https://github.com/alibaba/druidmybatis:http://www.mybatis.org/mybatis-3/zh/getting-started.html#mybatis plus 使用:http://baomidou.oschina.io/mybatis-plus-doc/#/quick-startmybatis...

2018-05-29 15:47:00 71

转载 springboot(六):spring data jpa的使用二

讲了Spring-data-JPA的基本配置、继承的方法和创建查询,都比较简单,终于到了学习一个重量级的查询方式上,使用@Query注解,使用注解有两种方式,一种是JPQL的SQL语言方式,一种是原生SQL的语言,略有区别。1、在CustomerRepository里添加/*** 模糊匹配 * @param bauer * @return */@Query("selec...

2018-05-21 18:10:00 90

转载 springboot(六):spring data jpa使用一

spring data jpa 、hibernate 和jpa 三者之间的关系 :  JPA是规范,Hibernate除了作为ORM框架之外,它也是一种JPA实现; Spring Data JPA 是在JPA规范的基础下提供了Repository层的实现; ORM框架都实现了JPA规范,但是在不同ORM框架之间切换是需要编写的代码有一些差异,而通过使用Spring Data Jpa能...

2018-05-21 18:08:00 80

转载 SpringBoot(五):配置文件解析

Spring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者类路径的/config下。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。自定义属性使用@value来读取配置文件的值application.properties提供自定义属性的支持,这样我们就可以把一些常量配...

2018-05-21 11:40:00 86

转载 并发编程之 Java 三把锁

前言今天我们继续学习并发。在之前我们学习了 JMM 的知识,知道了在并发编程中,为了保证线程的安全性,需要保证线程的原子性,可见性,有序性。其中,synchronized 高频出现,因为他既保证了原子性,也保证了可见性和有序性。为什么,因为 synchronized 是锁。通过锁,可以让原本并行的任务变成串行。然而如你所见,这也导致了严重的性能受损。因此,不到万不得已,不要使用锁,特...

2018-05-20 20:42:00 96

转载 Spring Boot (四):热部署及打包部署

springBoot热部署所谓的热部署:在开发过程中修改了Java文件后在应用程序不停止的情况下实现重新编译发布新的部署。springBoot提供了devtools热部署功能。添加依赖包:因为devtools会监听classpath下的文件变动,当java类重新编译的时候,devtools会监听到这个变化,然后就会重新启动SpringBoot。实现原理spring...

2018-05-20 20:36:00 168

转载 springboot(三):日志管理

Spring Boot中默认日志工具为logback,但是对于习惯了log4j的开发者,Spring Boot依然可以很好的支持,只是需要做一些小小的配置功能。Spring Boot使用log4j只需要一下几步引入log4j依赖  在创建Spring Boot工程时,我们引入了spring-boot-starter,其中包含了spring-boot-starter-logg...

2018-05-20 10:55:00 88

转载 springboot(二):在Web中开发应用

springboot中静态资源访问  在开发Web应用的时候,需要引用大量的js、css、图片等静态资源。  Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static、 /public、 /resources、 /META-INF/resources  举例:我们可以在src/main/resources/目录下创建...

2018-05-17 00:39:00 116

转载 springboot(一):快速入门

为什么要用springboot,  传统的项目ssh,ssm,在做项目整合时候,都是通过xml配置文件来实现,需要很多jar,有时间jar直接的冲突问题,整合起来繁琐。springBoot是一个快速开发的框架,能够快速的整合常用第三方框架(内部原理是通过Mave依赖关系,实现通过Maven集成方式),简化XML配置,全部采用注解形式,内置切入http服务器(包括Tomcat、Jett...

2018-05-14 23:20:00 101

转载 Spring Boot 集成Mybatis实现主从(多数据源)分离方案示例

文将介绍使用Spring Boot集成Mybatis并实现主从库分离的实现(同样适用于多数据源)。延续之前的Spring Boot 集成MyBatis。项目还将集成分页插件PageHelper、通用Mapper以及Druid。新建一个Maven项目,最终项目结构如下:多数据源注入到sqlSessionFactoryPOM增加如下依赖:?...

2018-05-10 17:25:00 101

转载 利用spring session解决共享Session问题

1.共享Session问题HttpSession是通过Servlet容器创建和管理的,像Tomcat/Jetty都是保存在内存中的。而如果我们把web服务器搭建成分布式的集群,然后利用LVS或Nginx做负载均衡,那么来自同一用户的Http请求将有可能被分发到两个不同的web站点中去。那么问题就来了,如何保证不同的web站点能够共享同一份session数据呢?最简单的...

2018-05-10 17:13:00 111

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除