![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 77
java
_chenyl
努力从现在开始
展开
-
数据库和SQL
本系列目录文章目录什么是索引?MySQL单个索引最多包含多少列?如何获取SQL执行计划?说下explain中type含义?性能由好到差怎么区分?在不同的 MySQL 引擎中,count(*) 有不同的实现方式你知道哪些场景下索引会失效?数据库事务ACID数据库常见的并发异常SQL标准为事务定义了不同的隔离级别,从低到高依次是谈谈对数据库索引的理解谈谈聚集索引和非聚集索引SQL优化什么是索引?MySQL单个索引最多包含多少列?索引(Index)是帮助MySQL高效获取数据的数据结构。索引是一种单独的、物原创 2021-11-25 16:52:58 · 736 阅读 · 0 评论 -
多线程
本系列目录文章目录进程与线程并发与并行的区别是什么你知道那些并发容器?什么是阻塞队列?阻塞队列常用的应用场景?Java里有哪些阻塞队列线程状态wait、sleep、yield、join、interrupt线程间通信方式主存和工作内存交互时虚拟机保证的天然原子性操作有哪些谈谈volatile关键字synchronized关键字原理乐观锁与悲观锁乐观锁出现的问题互斥同步和非阻塞同步CAS原理ReenterantLock和synchronized关键字对比CopyOnWriteArrayList 原理进程与线原创 2021-11-12 17:04:05 · 532 阅读 · 0 评论 -
1步2步走台阶
题目一次走一步或者两步走完台阶,一共要多少种方法分析从上图可以看到规律,到第n个台阶时,要么从n-1台阶走一步到达,要么从n-2个台阶走两步到达,即前一台阶和前两台阶走法的和,用公式表达:f(n)=f(n-1)+f(n-2)解题方法1递归,由于每次都要完全计算,层层计算,台阶增多时间复杂度指数增加,效率低下static int f(int n) { if (n == 1) { return 1; } if (n == 2) { retu原创 2021-11-11 11:36:58 · 630 阅读 · 0 评论 -
Java中高级问题整理-中间件
本系列目录文章目录Redis哨兵模式1. 哨兵模式搭建2. Java中使用哨兵模式redis使用场景你知道redis哪些高级功能?为什么要使用消息中间件MQAMQP messaging 中的基本概念Kafka特点Kafka使用场景kafka中的 zookeeper 起到什么作用kafka启动了一个broker,可以设置多个partition吗?可以设置多个副本吗?为什么为什么要使用Elasticsearch?全文搜索(Full-text Search)倒排索引(Inverted Index)ES基本概念E原创 2021-11-02 09:30:43 · 935 阅读 · 0 评论 -
servlet实现文件上传
1 jsp页面上传文件: value="上传" />2 web.xml在控制页面的servlet配置里配置 MVC org.springframework.web.servlet.DispatcherServlet原创 2017-03-02 08:34:14 · 219 阅读 · 0 评论 -
spring搭建web项目时项目Tomcat启动过程
启动tomcat➱初始化Listenter(加载项目context、加载初始化spring)➱初始化Filter➱初始化Servlet➱Tomcat完成启动原创 2017-02-21 07:00:02 · 903 阅读 · 0 评论 -
什么是SPI?SPI在框架中的使用原理
此文章不是介绍SPI服务的概念,是基于对SPI有一定了解,想深入研究其实现原理的文章。本文介绍了SPI实现的整个过程,并结合配置文件的配置模拟对应实现服务的调用。话不多说,直接开码。1、准备环境1.1 安装lombok插件,pom文件导入以下依赖<dependency> <groupId>org.projectlombok</groupId> .........原创 2019-12-13 20:45:03 · 813 阅读 · 2 评论 -
创建.bat一键运行SpringBoot等各种jar包
在jar包所在的文件夹新建一个start.bat文件(新建一个txt文件修改文件名和后缀)。打开start.bat文件,填写以下内容(jdk路径更换为自己本机路径):set PATH=D:\Program Files\Java\jdk1.8.0_121\bin;C:\WINDOWS;C:\WINDOWS\COMMAND set classpath=.;D:\Program Files\Ja...原创 2018-11-19 09:56:33 · 2915 阅读 · 0 评论 -
[1-9]*匹配数字存在漏洞之解决办法
如多使用"abc-".substring("abc-".lastIndexOf("-")+1)得到的应该是"";使用"".matches("[0-9]*")返回的是true,因此正则表达式存在漏洞;可使用"^\\d+$"该正则表达式原创 2017-06-06 15:39:33 · 517 阅读 · 0 评论 -
Session控制登录登出
package com.session.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMap原创 2018-01-11 23:05:09 · 6660 阅读 · 0 评论 -
Java 11正式发布,这几个逆天新特性教你写出更牛逼的代码
就在前段时间,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用! 这无疑对我们来说是一大好的消息。作为一名java开发者来说,虽然又要去学习和了解java11,但内心还是欣慰的。我想至少你和我一样的心情:Java在手,天下我有!今天我们来看一下Java 11到底是什么、他有什么特别的、到底要不要升级到Java 11。Java 11...转载 2018-10-26 16:46:20 · 885 阅读 · 0 评论 -
Spring 定时任务之 @Scheduled cron表达式
原文出处,优化了文章格式,提升了阅读体验1.一个基于Spring boot的一个demo:Java配置中开户对Scheduled的支持import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableScheduling;@Configuration@EnableSchedulingpublic class ScheduleCon转载 2021-01-29 09:31:01 · 189 阅读 · 0 评论 -
Java格式化输出
Java SE5推出了C语言printf()风格的格式化输出功能。1 System.out.printf()public static void main(String[] args) { int x = 1; float y=1.5f; //%d表示x是一个整数,%f表示y是一个浮点数 System.out.printf("整数 x:%d %n浮点数 y:%f...原创 2018-11-05 10:21:31 · 4498 阅读 · 0 评论 -
Java调用百度API实现人脸识别
进入百度AI开放平台,成为开发者,进入控制台,地址:http://ai.baidu.com创建应用获取AppID,API Key,Secret Key。获取token。import org.json.JSONObject;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.Htt...原创 2018-12-26 16:05:50 · 6271 阅读 · 35 评论 -
Java类型信息-instanceof、isInstance()、==、equals比较
在查询类信息时,instanceof、isInstance()产生的结果相同,==、equals产生的结果相同。示例:class Parent {}class Son extends Parent {}public class Test { public static void main(String[] args) { test(new Parent()); ...原创 2020-03-08 13:34:29 · 241 阅读 · 0 评论 -
Java反射详解
目录1 Class类的使用1.1 动态加载类2 反射2.1 概念2.2 作用2.2.1 构造器2.2.2 属性2.2.3 方法2.2.4 通过更改配置文件进行系统升级2.2.5 逃避泛型检察1 Class类的使用在面向对象的世界里,万事万物皆为对象:Java中类是对象,是java.lang.Class的对象。本质上讲,一个对象对应的一个不变的、唯一的...原创 2018-09-29 15:40:41 · 485 阅读 · 2 评论 -
散列(Hash)和散列码(HashCode)
概念散列:散列也叫散列函数,是一种可以将任意长度的输入转换为固定长度输出的算法,因此不同的输入可能产生相同的输出。散列码:散列码就是按照散列函数生成的结果。散列在编程语言中的应用散列可以将对象信息提取出摘要,然后产生固定长度的结果,我们利用这个结果跟对象关联起来就能达到快速查找对象的目的。那么,在众多的对象查找方法里,为什么要使用散列?因为快,就相当于抽象的Map直接通过key(散列结果)...原创 2020-03-22 15:56:24 · 3003 阅读 · 0 评论 -
xml文件中几个名词
1 xmlns是XML Namespaces的缩写,中文名称是XML(标准通用标记语言的子集)命名空间。 web-app是web.xml的根节点标签名称 version是版本的意思 xmlns是web.xml文件用到的命名空间 xmlns:xsi是指web.xml遵守xml规范 xsi:schemaLocation是指具体用到的schema资源原创 2017-02-11 19:55:26 · 339 阅读 · 0 评论 -
Java IO的常用方法
文件复制1 使用IO复制public static void ioCopy(String pathIn,String pathOut) throws IOException { BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(pathIn)); BufferedOutpu...原创 2020-02-13 20:29:09 · 207 阅读 · 0 评论 -
服务器端filter解决ajax简单请求跨域访问问题
在web项目中添加一个filter。 重写doFilter(ServletRequest request,ServletResponse response,FilterChain chain)方法: HttpServletResponse res=(HttpServletResponse) response;res.addHeader("Access-Control-Allow-Ori...原创 2018-05-17 11:26:42 · 483 阅读 · 0 评论 -
Java NIO总结 整理
Java NIO(NewIO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的JavaIOAPI。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。 Java NIO与IO的主要区别IO ...原创 2018-07-25 11:31:07 · 658 阅读 · 2 评论 -
Java注解详解
文章目录一、介绍1 概念2 原则二、如何定义注解1 创建1.1 成员变量1.2 元注解1.2.1 @Retention1.2.2 @Target1.2.3 @Documented1.2.4 @Inherited三、注解的提取1 修饰类1.1 定义注解1.2 使用注解1.3 提取注解信息2 修饰类属性2.1 定义注解2.2 使用注解2.3 提取注解信息3 修饰类方法3.1 定义注解3.2 使用注解3...原创 2018-10-09 09:48:27 · 222 阅读 · 0 评论 -
Java生成登录随机验证码
验证码工具类: VerifyUtil.javaimport java.awt.*;import java.awt.image.BufferedImage;import java.util.HashMap;import java.util.Map;import java.util.Random;public class VerifyUtil { // 验证码字符集 pr...原创 2019-01-10 11:18:54 · 7374 阅读 · 8 评论 -
Activity工作流开发简单介绍
1. 工作流表由图中可以看到,依赖中已经集成了mybatis框架,在第一次初始化流程引擎(ProcessEngine)时,会自动创建24张表(图示版本)。act_evt_log,act_ge_bytearray,act_ge_property,act_hi_actinst,act_hi_attachment,act_hi_comment,act_hi_detail,act_hi_identitylink,act_hi_procinst,act_hi_taskinst,act_hi原创 2020-09-18 10:40:48 · 1778 阅读 · 0 评论 -
如何自定义springboot starter?2分钟就够了!比凣凣还快!
在使用springboot starter时简直不要太爽,只需要简单引入pom包,配置一下配置文件就可以了,配置时还有文字提示,怎么做到的?实际开发中,如果我们自己也自定义starter,代码逼格瞬间飙升。Swagger使我们后端开发的一倚天剑,下面就通过实际代码演示一下如何自定义Swagger2 starter1. 引入maven依赖<dependencies> <dependency> <groupId>org.springframewor原创 2021-07-23 14:53:17 · 180 阅读 · 2 评论 -
使用idea远程调试
必须保证远程需要调试类的代码和本地代码一模一样远程服务启动时配置以下jvm参数-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=10.100.3.203:9999其中10.100.3.203为远程服务ip,9999位远程服务暴露的调试端口,不可将调试端口设置为已占用端口否则端口冲突。在idea中,打开本地代码,点击 Edit Configurations 打开配置窗口点击最左侧添加按钮,选择Remote在.原创 2020-07-08 17:26:59 · 409 阅读 · 0 评论 -
对接支付宝接口流程(沙箱环境)
1 配置沙箱环境1.1 入驻开放平台进入蚂蚁金服开放平台登录界面,入口:link,使用支付宝扫码支付。登录成功后,选择自由开发者-&amp;amp;amp;amp;gt;开始入驻。完善信息。同意协议。开发者中心-&amp;amp;amp;amp;gt;研发服务。开发者中心-&amp;amp;amp;amp;gt;研发服务。开发者中心-&amp;amp;amp;amp;gt;研发服务。开发者中心-&am原创 2018-11-02 12:41:41 · 11390 阅读 · 17 评论 -
Java面试中高级整理
IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别。synchronized 原理与锁升级。原创 2019-04-24 09:24:16 · 251 阅读 · 0 评论 -
Java中高级问题整理(一)
分析springboot运行机制首先主类上@SpringBootApplication注解,点进去主要有三个重要注解:@Configuration、@ComponentScan、@EnableAutoConfiguration。@Configuration将该类标记为配置类;@ComponentScan没有指定basePackages的话就以当前类所在的包为basePackages,这就是为什么将Bean放于主类所在包范围之外无法扫描到的原因;@EnableAutoConfiguration有个.原创 2020-05-29 18:35:49 · 722 阅读 · 0 评论 -
用线程池、缓存技术提升数十倍接口性能
刚刚,现网发来急报,某新增数据接口请求超时了,功能无法使用。What? 该系统已经上线多年,为何现在才发现此问题呢?再次请求改接口,分析日志发现,虽然前端请求已经超时,但是后端服务还在坚持不懈、任劳任怨的努力干活。一看处理时间,我靠,25分钟左右才处理完成,是可忍,孰不可忍!领导大手一挥,小C,这个问题你速速解决掉。事关现网,接到命令的我丝毫不敢怠慢,马上开始了本次攻关之旅首先,询问了引发下此故障的原因,是因为操作人员在本次操作中导入了10000数据,不难想象,问题肯定就出在这10000条数据上。接着,原创 2021-08-07 11:06:36 · 215 阅读 · 0 评论 -
hashmap两种排序方式
Map map = new HashMap();map.put("d", 2);map.put("c", 1);map.put("b", 1);map.put("a", 3);List> infoIds = new ArrayList>(map.entrySet());//排序前for (int i = 0; i String id转载 2017-02-16 11:28:30 · 1611 阅读 · 0 评论 -
Java高并发之魂:synchronized深度解析
文章目录一、synchronized简介1 synchronized作用1.1 官方翻译1.2 一句话概括synchronized作用1.3 如何实现2 synchronized地位3 不用并发手段的后果3.1 代码实战:两个线程同时a++ ,最后结果会比预计的少一、synchronized简介1 synchronized作用1.1 官方翻译同步方法支持一种简单的策略来防止线程干扰和内存一...原创 2019-02-24 16:33:51 · 884 阅读 · 8 评论 -
Lock和synchronized比较详解
今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章,注意红色字体。 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java...转载 2018-07-17 15:00:08 · 309 阅读 · 0 评论 -
单点登录原理与简单实现
一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏转载 2017-06-30 08:39:09 · 250 阅读 · 0 评论 -
单点登录-同域名
1 首先新建项目一,项目结构如下图2 接着将该项目端口设为8080;3 接着编写一个项目1主页,与登录页面;4 接着编写登录控制器,代码如下 @PostMapping("login") private String doLogin(@RequestParam String username, @RequestParam String password, @Reque原创 2017-06-29 10:40:53 · 725 阅读 · 0 评论 -
使用Spring Boot发送邮件
1 简介Spring Mail对Java Mail进行了封装,大大简化了邮件的发送,Spring Boot Mail在Spring Mail的基础上对邮件发送再次进行了封装,使邮件发送更加简单。本文主要包含以下内容发送文本邮件发送带有附件的邮件发送HTML邮件发送图片邮件发送模板邮件2 示例先设置好用于发送邮件邮箱的POP3/IMAP/SMTP,记住授权码2.1 项目搭建...原创 2018-11-06 11:03:48 · 243 阅读 · 0 评论 -
令牌桶限流-java实现
令牌桶的容量是c(个),令牌以速度r(个/秒)均匀的放入桐中,上个请求的时间为at(时间戳),上个请求后剩余的令牌数目为w(个),现在有个请求b对象进来了,现在请求的时间bt=now(),伪代码如上图,其中wb代表从at到bt时间段内产生的令牌数,产生的令牌数加上上次剩余的令牌数是不能大于桶容量的Java实现代码:import java.util.HashMap;import java.util.Map;import java.util.concurrent.TimeUnit;public c.原创 2021-10-26 11:33:24 · 1306 阅读 · 0 评论 -
Java获取资源文件方式,需要注意的地方,maven或者gradle环境下获取不到包下资源问题
获取资源文件方式解析一般的Java项目目录下有两部分静态资源文件夹:java 文件夹。resources 文件夹。项目编译时期会将这两个文件夹下的文件分别按照包层级(文件夹层级)和文件夹层级关系放到target/classes文件夹下...原创 2020-03-11 19:39:07 · 804 阅读 · 0 评论 -
Java源码分析-Java 8 Map接口新增方法merge解析
如果传入的key对应的值为空就使用新值替换null保存到Map中,如果Map中不包含该key,就将key和新值value保存到Map中。如果传入的key对应的值不为空,那么就将该值和新传入的值作为计算函数remappingFunction的入参进行计算,返回计算后新的值。如果计算后的值为空,就删除该key,如果不为空就将计算后的值代替旧值保存到Map中。default V merge(K key...原创 2020-03-10 10:36:43 · 203 阅读 · 0 评论 -
Java容器探索-为何Arrays.asList()方法产生的List调用Iterator.remove()报错,new ArrayList()产生的ArrayList就能正常移除
1. new ArrayList产生的ArrayList是java.util.ArrayListArrayList继承了抽象类AbstractList:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable,...原创 2020-03-06 10:29:42 · 258 阅读 · 0 评论