自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风泊月

渺万里层云,独钓寒江雪!!

原创 线程池ThreadPoolExecutor

引子 线程的创建和销毁比较消耗资源,所以有一种更加高效快捷的方式管理线程----线程池。 先来看一下线程池的java模型 Executor:线程池顶级接口,只有一个方法 ExecutorService:真正的线程池接口 void execute(Runnable command) :执...

2020-03-23 07:52:38 973 0

原创 volatile

学习volatile之前,先补充一下概念:Java 内存模型中的可见性、原子性和有序性。 可见性:   可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的...

2020-03-23 07:43:51 155 0

原创 BlockingQueue

今天我们来认识一下BlockingQueue,获取学习资料添加qq:1184905186 什么是BlockingQueue? BlockingQueue即阻塞队列,从阻塞这个词可以看出,在某些情况下对阻塞队列的访问可能会造成阻塞。被阻塞的情况主要有如下两种: 当队列满了的时候进行入队列操作 当队...

2020-03-22 18:42:54 166 0

原创 认识Condition

      今天我们来学习一下Condition(身份)Condition是在Java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),...

2020-03-22 16:06:55 216 0

原创 Lock与Synchronized的比较

一.Lock锁和Synchronized锁的比较 synchronized是java中的一个关键字,已经有它控制线程了 为什么还需要lock? 如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁...

2020-03-22 10:29:03 171 0

原创 大话Iterator

    我们做集合相关的内容时 必不可少的是会遇到 Iterator这个单词 。今天我们来看一下它是什么? 一.Iterator Iterator专门为遍历集合而生,集合并没有提供专门的遍历的方法 Iterator实际上迭代器设计模式的实现 Iterato...

2020-03-21 19:52:57 135 0

原创 如何判定一个对象是否应该回收?以及CMS垃圾回收器和G1收集器的特点

       前文我们聊了垃圾回收的算法,那么我们现在来看一下,如何判定一个对象时垃圾。举个例子 Person p = new Person(); p = null;//此时的p是不是已经是一个垃圾   &...

2020-03-21 10:41:37 259 0

原创 垃圾回收算法有哪些?

     在学习面向对象时大家肯定知道GC,我们都知道无用的变量就是垃圾,那么该何时回收,怎么回收呢,我们今天来看一下。 标记清除 标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。 在标记阶段首先通过根节点(GC Roots),标...

2020-03-21 10:02:52 183 0

原创 多线程数据共享之卖票问题

来看一道经典的多线程问题,多个售票窗口卖票:涉及到线程的创建,资源的掠夺,语法新特性等等。 ps:使用了jdk8的新特性 不懂请 看jdk8新特性 欢迎点赞关注:qq: 1184905186 public class ThreadTest03 { public static void ma...

2020-03-20 20:16:14 102 1

原创 多线程数据共享带来的问题以及解决方案

小故事 老王(操作系统)有一个功能强大的算盘(CPU),现在想把它租出去,赚一点外快 小男、小女(线程)来使用这个算盘来进行一些计算,并按照时间给老王支付费用 但小男不能一天24小时使用算盘,他经常要小憩一会(sleep),又或是去吃饭上厕所(阻塞 io 操作),有 时还需要一根烟,没烟时思路...

2020-03-20 18:33:30 519 0

原创 查看进程线程的方法

大量的进程运行时,会导致电脑卡顿,最高效的方式是重启电脑。但是 还要重头再启动很多的软件和服务,如何精确定位哪个进程的那一条线程? ps:获取学习资料 添加qq: 1184905186 windows 任务管理器可以查看进程和线程数,也可以用来杀死进程 tasklist 查看进程 taskkil...

2020-03-20 10:44:41 106 0

原创 java8新特性 Stream

今天我们来学习一下java8的新特性,欢迎关注点赞。想要获取学习资料添加qq : 1184905186 一、接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: interface Formula { ...

2020-03-19 17:53:49 63 0

原创 数据库中的BTree和B+Tree

      B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找...

2020-03-19 09:20:16 266 0

原创 Zookeeper小解

       我们做过solr集群 也做过服务的分布式部署。那么肯定会接触过zookeeper这个词。乍一看我们好像知道它是什么,但是仔细一回忆又好像什么都不清楚。今天,我们来一起聊一下zookeeper。如果对你有帮助,可以点...

2020-03-18 19:26:13 103 0

原创 Spring Boot读取配置的几种方式

       当大家看到这篇博客的时候 ,相信已经对SpringBoot有了简单的了解。也看过很多人的demo,但是会发现 不同的程序员 在获取配置信息时 使用的方式不一样,不免会搞得一头雾水,下面我们来一起看一下 具体有哪些方式。 1.读取applica...

2020-03-17 16:02:08 77 0

原创 Dubbo常见问题及解决方案

1、Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。 官网:http://dubbo.apache.org 2、为什么要用Dubbo? Dubbo是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考...

2020-03-17 14:45:41 295 0

原创 Redis常见问题及解决方案

1.Redis 持久化机制     Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。     ...

2020-03-17 09:08:44 194 0

原创 SpringMVC中的拦截器

1.过滤器和拦截器的对比 过滤器: 应该实现Filter接口, 重写三个方法(init, doFilter, destroy), 过滤器还必须进行配置(web.xml)才能使用. 过滤器针对servlet进行请求拦截. 拦截器: 需要实现HandlerInterceptor接口或继承Handle...

2020-03-15 11:17:59 55 0

原创 SpringMVC实现ajax操作 DateTimeFormat格式化日期属性

1.ajax复习 a)ajax是一种能够进行局部页面刷新的艺术. 变同步操作为异步操作. b)原生ajax操作的步骤: 创建对象XmlHttpRequest. 监听事件onreadystatechange 准备请求, 调用open方法 发送请求, 调用send方法 接收响应内容, respons...

2020-03-15 11:09:42 202 0

原创 SpringMVC实现文件上传

1.文件上传的前提 需要导包: commons-fileupload.jar, commons-io.jar 需要提供上传文件的表单域: <input type=”file”name=”” /> 表单的提交方式必须是post方式 表单的enctype属性必须是multipart/fo...

2020-03-15 11:03:55 62 0

原创 SpringMVC 实现页面跳转

1.页面跳转的两种方式 1.1请求转发 request.getRequestDispatcher(path).forward(request, response); 一次请求 地址栏路径不会发生变化 可以使用请求作用域传参 只能访问内部资源(当前项目下的资源) 可以访问安全目录下的资源(WEB-...

2020-03-15 10:59:16 58 0

原创 SpringMVC 参数的接收和处理

一.请求参数的接收 1.1servlet中如何接收参数? request.getParameter(name), request.getParameterValues(name). 方法的特点: a)参数要求是表单域的name属性; b)getParameter方法用于获取单个值, 返回类型是S...

2020-03-14 20:34:27 64 0

原创 SpringMVC环境搭建

1.通过配置的形式搭建(了解) 1.1创建项目并导包 web项目, 包: spring相关 springmvc相关: spring-webmvc.jar 1.2编写后端控制器 public class DemoController implements Controller { @Ov...

2020-03-14 18:59:55 54 0

原创 Spring 声明式事务

1.事务的管理方式可以分为两种: a)编程式事务管理: 通过代码编写的形式进行事务管理的方式 b)声明式事务管理: 通过配置的形式进行事务管理的方式 Spring中的声明式事务是借助AOP实现的. 声明事务还提供了对事务更细致的控制. 2.完成声明式事务的配置 必须依赖spring-tx.jar包...

2020-03-14 17:40:42 55 0

原创 Spring整合MyBatis

1.如何进行整合 Spring可以将已有技术变得更好用, MyBatis是可以简化JDBC操作. 前提: 导包, 要注意Spring默认没有提供整合MyBatis的包, 由MyBatis提供, 需要将整合包导进来. 责任划分, MyBatis负责数据库的操作(映射文件xxxMapper.xml)...

2020-03-13 08:19:26 36 0

原创 Spring AspectJ简化AOP配置

1231321

2020-03-13 08:06:11 60 0

原创 Spring AOP

1.AOP的定义:        在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开...

2020-03-13 07:56:36 45 0

原创 Spring之代理模式

为什么要用代理模式? 中介隔离作用: 在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。 开闭原则,增加功能: 代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额外的功能来扩...

2020-03-12 20:57:41 112 0

原创 SpringBean标签详解

标签用于创建对象, 常用属性概述: 1.class 用于定位类, 写的是类型的全限定路径. 2.id 用于给的对象做唯一标识. 命名规则一般是字母, 数字, 下划线. 3.factory-bean 用于指定创建目标对象使用的工厂对象. 4.factory-method 用于指定调用工厂中的哪个方法...

2020-03-12 12:04:42 76 0

原创 Spring创建对象以及为对象赋值的几种方式

a)通过构造器创建对象 无参构造器. 默认Spring会使用无参构造器创建对象 有参构造器. 可以在下通过标签指定使用有参构造器创建对象. 属性介绍: index: 索引, 从0开始, 表示参数的索引位置 name: 名称, 表示参数的名称 type: 类型, 表示参数的类型 value: 赋值...

2020-03-12 08:50:03 307 0

转载 Spring IoC/DI详解

1.1IOC是什么?       Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好...

2020-03-12 08:40:50 109 0

原创 搭建Spring基础环境

1.创建项目并导包 创建java工程, 导入jar包 a)spring核心jar包: 4个 spring-core.jar spring-beans.jar spring-expression.jar spring-context.jar b)日志包: commons-logging.jar, ...

2020-03-11 17:08:50 82 0

原创 Spring Framework Runtime

Test 对应spring-test.jar. Spring提供的测试工具,可以整合JUnit测试,简化测试环节. CoreContainer Spring的核心组件,包含了Spring框架最基本的支撑. Beans, 对应spring-beans.jar. Spring进行对象管理时依赖的...

2020-03-11 11:16:42 532 0

原创 认识Spring框架

一、spring简化Java开发 为了降低Java开发的复杂性,spring框架采取了四种关键策略 (1)基于POJO的轻量级和最小侵入性编程 注:spring竭力避免因自身的API而弄乱你的应用代码。spring不会强迫你实现spring规范的接口或继承spring规范的类,相反,在基于spri...

2020-03-11 10:48:17 88 0

原创 Mybatis注解开发

1.注解的使用规范   a)元注解, 描述注解的注解. 一共有四个: @Target, 表示当前注解作用的位置 @Retention, 保留策略, 在什么时间段生效 @Document, 注解将出现在javadoc中 @Inherited, 可以被子类继承  &n...

2020-03-11 09:43:27 59 0

原创 Mybatis多表连接查询

Mybatis多表连接查询 需要借助<resultMap>标签 1.<resultMap>标签的使用 在MyBatis中, 查询标签有两个属性, resultType和resultMap. 都代表返回结果的类型. 区别在于: resultType指定的一个类型, MyBa...

2020-03-11 09:33:36 88 0

原创 MyBatis的缓存机制

1.什么是缓存? 缓存是内存中开辟的一个区域, 用于存放一些数据(信息). 来提高数据的读取速度. 提高查询效率. 2.MyBatis对缓存的支持 a)一级缓存 MyBatis基于SqlSession对象做的缓存. 同一个SqlSession对象中, 对同一个id的查询, MyBatis会进行数据...

2020-03-10 19:36:29 42 0

原创 Mybatis4 Mybatis动态sql的实现

###1.什么是动态SQL SQL语句不固定, 会根据前台用户的操作而进行变化的SQL语句, 可以被称之为动态SQL. 在MyBatis中, 提供了一组标签, 用于方便的实现动态SQL, 不需要通过java代码拼接字符串了. ###2.动态sql中的标签 ######1. 用于条件判断, test...

2020-03-10 18:59:54 112 0

原创 MyBatis3 接口绑定方案实现

第一节(接口绑定) 什么是接口绑定 了解 要遵循的规范 掌握 参数传递问题 掌握 什么是接口绑定 接...

2020-03-10 18:49:59 52 0

原创 Mybatis 2 工具类的编写,常见的增删改查

节数 知识点 要求 第一节(封装MyBatis工具类) 工厂对象只需要一个,借助静态代码块 了解 第二节(MyBatis中带条件的查询) #{}占...

2020-03-10 08:22:28 83 0

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