Java
Java
~来了小老弟
Java/Python/Database/Vue.js/HTML5
展开
-
【Java】Thread深入学习
本篇文章将介绍Thread类相关方法,以及一些重要概念及应用。JDK提供了直观观察线程状态的工具,在学习线程的过程中,可以使用jconsole命令打开Java监视和管理控制台观察线程运行状态。1. setDaemon()守护线程: 当子线程被设置为守护线程时,父线程一旦进入DEAD状态,守护线程也立即进入DEAD状态。示例:package com.juc;/** * 守护线程: ...原创 2020-01-08 20:57:36 · 255 阅读 · 0 评论 -
【Java】Java8新特性(Stream)
一、StreamJava8中扩展了JavaAPI,增加了许多特性,例如lambda,和流操作。流操作即是将对象转换成流进行操作,这样方便我们进行映射、筛选、限制等操作,这有点像操作数据库。流转换分为两种方式:串行流stream()、并行流parallelStream()。几乎Java中的所有集合类都可以进行流操作,这大大简化了我们的程序代码,同时可读性会变高。但简化操作就和Syntax Suge...原创 2019-08-25 22:59:55 · 190 阅读 · 1 评论 -
【Java】SpringBoot项目支持HTTPS
HTTPS其实是(HTTP OVER SSL/TLS),是对传统HTTP的请求方式进行加密。使用HTTPS协议进行传输的所有数据都会被加密,从而保证数据传输时的安全性,同时也大大降低了数据劫持后被解密的可能性。一般来说,使用HTTPS需要申请相应的证书,开发这也可以利用自己本地的Java环境申请项目开发用的免费证书。一、本地终端下生成证书已经配置好JDK环境的可以直接执行以下命令,没配的...原创 2019-08-25 21:26:56 · 1396 阅读 · 1 评论 -
【Java】ActiveMQ实例
一、ActiveMQActiveMQ是ASF(Apache Software Foundation)的一款消息中间件(middle-ware),消息中间件主要完成的是消息的接收、存储和转发。主要实现的模式是生产消费模式、订阅发布模式。其主要区别是,生产消费模式中,生产完消息,消息一经消费,便不再存在。发布订阅模式中,一条消息可以有多个订阅者,即一条消息的消费者可以有多个。消息中间件的主要作用...原创 2019-08-25 13:36:45 · 321 阅读 · 1 评论 -
【Java】Quartz定时任务调度
Quartz是一个定时任务调度框架,主要包含三个部分(JobDetail, CronTrigger, Scheduler)。通过设定Cron表达式从而在特定时间执行特定任务。Quartz底层运用了TimerTask创建定时任务调度线程。使用Quartz,需要创建spring配置文件和任务。一、导入dependency <dependency> <...原创 2019-08-23 08:28:31 · 276 阅读 · 1 评论 -
【Java】iText & POI
iText是一个可以生成PDF文档的工具。POI可以用来读取Word、Excel文档。最近由于在做项目,所以很久没更新博客了,这次博客更新是项目中使用的小demo,希望可以帮助到需要的人。 --来了,小老弟iText <dependency> <groupId>com.itextpdf</groupId> <...原创 2019-08-19 15:14:07 · 962 阅读 · 1 评论 -
【Java】文件参数拦截器实例
参数拦截器import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServl...原创 2019-08-02 11:02:44 · 465 阅读 · 1 评论 -
【Java】SpringMVC拦截器
1.定义拦截器实现HandlerInterceptor接口继承HandlerInterceptorAdaptor类2.拦截器方法preHandle:拦截于请求刚进入时,进行判断,需要boolean返回值,如果返回true将继续执行,如果返回false,将不进行执行。postHandle:拦截于方法成功返回后,视图渲染前,可以对modelAndView进行操作。afterCompl...原创 2019-08-01 21:38:42 · 292 阅读 · 1 评论 -
【Java】MyBatis缓存机制
1.一级缓存|二级缓存一级缓存:是指当使用SqlSession从数据库中取数据时,Executor会在优先查找本地缓存中的数据,如果命中缓存,则直接返回本地缓冲区中的数据,否则会从数据库中进行查找,查找结果缓存到本地的同时,发送给SqlSession。当第二次查询SQL语句相同时,会直接从本地缓存中拿取数据。session级别的一级缓存是靠PerpetualCache(内部原理Hash...原创 2019-08-01 17:22:29 · 180 阅读 · 2 评论 -
【Java】SpringMVC实现文件上传下载
(1)文件上传操作public static final String FILE_LOCATION = "/home/huangwei/Desktop/";public void upload(MultipartFile... files) { for (MultipartFile file : files) { String fileName = file.getO...原创 2019-07-29 21:54:04 · 186 阅读 · 2 评论 -
【Java】AIO实例
一、blocking/non-blocking | sync/async1.blocking/non-blocking: 描述的是方法会不会阻塞线程的执行,使线程进入blocking状态2.sync/async:描述的是数据读写方式sync:用户线程参与数据读写由内核线程发起读写,用户只需要关注I/O完成后的回调,不需要参与具体的I/O过程二、AIO(Asynchronous In...原创 2019-07-29 21:52:14 · 472 阅读 · 4 评论 -
【Java】WebSocket实例
一、DEMO实现(1)客户端实现。<button onclick="sendMsg()">发送消息</button><script type="text/javascript"> var webSocket = new WebSocket('ws://localhost:8080/TestWebSocket/websocket/' + 'huangwei...原创 2019-07-29 21:48:57 · 1465 阅读 · 3 评论 -
【Java】NIO实例
一、重要概念1. IO的分类BIO(Blocking IO):同步阻塞式IONIO(New IO \ NonBlocking IO):同步非阻塞式IOAIO(Async IO):异步非阻塞式IO2. NIO的两个重要概念Channel(信道):Channel是一个对象,可以通过它读取和写入数据。拿 NIO 与原来的 I/O 做个比较,通道就像是流,而且他们面向缓冲区的。Select...原创 2019-07-20 10:57:34 · 241 阅读 · 1 评论 -
【Java】线程创建
a.实现Runnable接口,创建Thread类,重写run()方法,调用start方法 public static void main(String[] args) { Thread thread = new Thread(new MyRunnable()); thread.start(); } static class MyRunnable implements Runnab...原创 2019-07-20 09:16:20 · 105 阅读 · 0 评论 -
【Java】 MyBatis的使用
一、ORM(Object Relation Mapping)框架ORM框架所解决的问题:阻抗不匹配(数据库查询所得到的数据和Java类型不匹配)ORM框架需要依赖于数据源(DataSource),常用的数据库连接池:C3P0、Druid、DBCP常见的ORM框架MyBatis 、 Hibernate 、 Spring JDBC 、 JPA二、MyBatis初步使用配置数据源 ...原创 2019-07-01 16:17:25 · 404 阅读 · 0 评论 -
【Java】JVM虚拟机内存模型
一、jvm概述java version "1.8.0_191"Java(TM) SE Runtime Environment (build 1.8.0_191-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)1. jvm两种类型client:GUI等java程序的运行。server:大型后台服务...原创 2019-07-01 16:09:31 · 407 阅读 · 1 评论 -
【Java】SpringAOP五种增强
增强类型增强又称通知(Advice),指代植入切面的事件,增强(通知)有以下几种类型:前置(before):在方法执行之前执行通知原创 2019-05-30 01:42:47 · 1066 阅读 · 1 评论 -
【Java】Spring IoC & DI
概念Spring IoC: 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。DI: 依赖注入(Dependencies Injection,缩写为DI),通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。Java Bean: ...原创 2019-05-28 18:53:06 · 277 阅读 · 1 评论 -
【Java】手写Spring-IoC
Spring IoC所解决的问题Spring IoC(Inversion of Control),即控制反转,也叫依赖注入DI(Dependency Injection)是将程序的控制权交给了Spring容器,从而达到控制的反转。IoC降低了程序之间的耦合度。在不使用Spring框架的前提下,我们必须以创建对象的方式对两个类进行强耦合,这样,会导致我们程序的健壮性太低。如果我们程序所依赖的类...原创 2019-05-27 14:18:22 · 286 阅读 · 2 评论 -
【Java】详解HashMap原理
HashMap介绍Map是一种存放键值对的数据类型。在Java中,最为常用的三个基于hashing原理实现的类是:HashMap、HashTable、HashSet。(实线段表示泛化关系,即继承,实线是实现关系)HashMap的特点HashMap中Key值不可以相同,但是value值可以相同。HashMap可以使用null作为key值,但需要规避这样的做法。HashMap无法确保线程...原创 2019-05-25 16:44:25 · 221 阅读 · 0 评论