- 博客(74)
- 资源 (1)
- 收藏
- 关注
原创 Java 8 Streams peek API
转载链接:https://www.jianshu.com/p/3e1501fd33a91. 简介Stream API 为Java 处理数据提供了一种强大的替代方法。在这篇文章中,我们主要介绍Stream API 中一个经常被错误理解的方法peek()2. 样例假设我们有一个Person的流,我们想将Person的名字,年龄等信息打印到控制台。peek()方法的唯一参数是Consum...
2020-02-12 10:47:12 367
原创 CronTrigger定时任务
1、CronTrigger的作用:基于日历的作业调度器,而不是像SimpleTrigger那样精确指定间隔时间,比SimpleTrigger更常用。2、Cron表达式用于配置CronTrigger实例是由7个子表达式组成的字符串,描述了时间表的详细信息格式:[秒][分][时][日][月][周][年] (年可以省略,只写前6个)特殊符号解释: 特殊字符 ...
2019-12-31 17:55:40 579
原创 Java截取字符串中的最后几个字符
Java中的String类提供了一个substring(int from,int to)方法用于截取字符串中位置为from到to-1位置的字符。因为字符串的字符位置是从0开始的,而substring(int from,int to)的方法是前闭后开的,即[from,to),可以理解为[from,to-1]同时to是可以省略的,to缺省的情况下为截取到字符串的最后一位。那么要截取字符...
2019-12-31 16:13:31 29035 1
原创 mysql给id生成uuid
mysql中直接使用uuid()函数,可以生成一个随机的uuid正常的uuid是36位长度的,例如d48644cc-2c7a-4714-9900-18ab99e80b03,其中有4个字符是“-”,在mysql中可以使用replace()函数来替换。REPLACE(UUID(),"-","")insert into wkzc_coupon_info(logic_code,coupon_co...
2019-12-31 15:43:18 1049
原创 Mysql模糊查询之LIKE CONCAT('%',#{name},'%')
众所周知,SQL语句中的like模糊查询select * from table where name like‘%张蛋%’,但实际开发中经常用到select * from table where namelikeconcat(#{name},'%')比如根据用户名或手机号模糊查找用户(us.nick_name LIKE CONCAT('%',#{keyWord},'%')...
2019-11-12 15:57:29 2307
原创 TCP 粘包/拆包的原因及解决方法
TCP 粘包/拆包的原因及解决方法ava NIO学习时,发现,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题。发生TCP粘包或拆包有很多原因,现列出常见的几点,可能不全面,欢迎补充,1、要发送的数据大于TCP发送缓冲区剩余空间大小,将会发生拆包。2、待发送数据大于MSS(最大报文长度),TCP...
2019-09-08 23:32:15 186
原创 缓存穿透、缓存击穿、缓存雪崩
缓存穿透在高并发下,查询一个不存在的值时,缓存不会被命中,导致大量请求直接落到数据库上,如活动系统里面查询一个不存在的活动。缓存击穿在高并发下,对一个特定的值进行查询,但是这个时候缓存正好过期了,缓存没有命中,导致大量请求直接落到数据库上,如活动系统里面查询活动信息,但是在活动进行过程中活动缓存突然过期了。缓存雪崩在高并发下,大量的缓存key在同一时间失效,导致大量...
2019-08-22 00:33:37 134
转载 原创 | 既生synchronized,何生volatile?!
我们简单回顾一下相关内容:1、Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。(再有人问你Java内存模型是什么,就把这篇文章发给他)2、synchronized通过加锁的方式,使得其在需要原子性、可见性和有序性这三种特性的时候都可以作为其中一种解决方案,...
2019-08-22 00:17:21 149
转载 再有人问你Java内存模型是什么,就把这篇文章发给他。
前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚...
2019-08-21 15:12:58 82
转载 JVM内存结构 VS Java内存模型 VS Java对象模型
Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混。可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者的概念及其间的区别。甚至我见过有些面试官自...
2019-08-21 14:02:27 58
原创 系统雪崩 幂等性
1.什么是雪崩https://www.cnblogs.com/xudong-bupt/p/9039064.html指分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应。离线雪崩时,新数据无法更新,导致队列堵塞。在线雪崩时,在线无法提供正常的检索服务,从外部看整个系统不可用。因此,通常雪崩都是说的在线架构。导致雪崩的情况可能有:...
2019-08-17 21:13:29 103
原创 Http长连接与短连接
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。2. 如何理解HTTP协议...
2019-08-17 14:59:17 113
原创 HashMap 和ConcurrentHashmap
HashMaphttps://youzhixueyuan.com/the-underlying-structure-and-principle-of-hashmap.htmlConcurrentHashMaphttps://www.cnblogs.com/hujinshui/p/9950056.htmlhttps://www.cnblogs.com/lezon1995/p/...
2019-08-17 14:37:06 96
转载 大白话解说,半分钟就懂 --- 分布式与集群是什么 ? 区别是什么?
PS:这篇文章算是笔记,仅部分文字是原创,相当内容只是收集、整理、提炼、总结别人写的。没有标为原创 是出于对部分内容原作者的尊重和感谢 ...但若你要转载还是请带上我家地址哦,毕竟这些内容都不是现成的哦 ~ ~ ~ 一、大白话解说,半分钟就懂,用生活中的例子来说明: ...
2019-08-13 10:31:09 114
原创 git回滚命令reset、revert的区别
git回滚命令reset、revert的区别 </h1> <div class="clear"></div> <div class="postBody"> ##使用git,总有一天会遇到下面的问题:(1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚。(2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行...
2019-08-13 10:24:54 164
转载 Java面试中常问的Spring方面问题(55道含答案)
Spring Framework 现在几乎已成为 Java Web 开发的标配框架。那么,作为 Java 程序员,你对 Spring 的主要技术点又掌握了多少呢?不妨用本文的问题来检测一下。1、一般问题1.1. 不同版本的 Spring Framework 有哪些主要功能?VersionFeatureS...
2019-08-13 10:21:52 199
转载 java面试题框架知识点总结
框架springMVC的流程1.用户发送请求至前端控制器DispatcherServlet2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。3.处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4.DispatcherServlet通过HandlerAdap...
2019-08-13 10:17:30 95
原创 Servlet面试题
1、说一说Servlet生命周期Servlet生命周期包括三部分:初始化:Web容器加载servlet,调用init()方法处理请求:当请求到达时,运行其service()方法。service()自动派遣运行与请求相对应的doXXX(doGet或者doPost)方法。销毁:服务结束,web容器会调用servlet的distroy()方法销毁servlet。2、get提交和pos...
2019-08-13 10:02:15 118
转载 这几道Java集合框架面试题在面试中几乎必问
本文是“最最最常见Java面试题总结”系列第三周的文章。 主要内容: 1. Arraylist 与 LinkedList...
2019-08-13 09:36:23 76
原创 面试中关于Spring AOP和代理模式的那些事
https://blog.csdn.net/eson_15/article/details/84933442
2019-08-13 00:00:11 94
原创 AOP之jdk代理和cglib代理
在了解JDK动态代理前,有需要可以了解下代理模式。参考:https://blog.csdn.net/yhl_jxy/article/details/52679882代理介绍:JDK动态代理实现原理(jdk8):https://blog.csdn.net/yhl_jxy/article/details/80586785CGLIB动态代理实现原理:https://blog.csdn.n...
2019-08-12 23:16:30 68
原创 Spring 为啥默认把bean设计成单例的?
原文:https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_8626170766957266244%22%7D&n_type=1&p_from=3熟悉Spring开发的朋友都知道Spring提供了5种scope分别是singleton、prototype、reques...
2019-08-12 17:11:18 114
原创 AOP与IOC
1. IOC(Inverse of Control):控制反转,也可以称为依赖倒置。它并不是一种技术实现,而是一种设计思想。在任何一个有实际开发意义的程序项目中,我们会使用很多类来描述它们特有的功能,并且通过类与类之间的相互协作来完成特定的业务逻辑。这个时候,每个类都需要负责管理与自己有交互的类的引用和依赖,代码将会变的异常难以维护和极度的高耦合。而IOC的出现正是用来解决这个问题,我们通过I...
2019-08-06 20:49:55 78
原创 Java 序列化与反序列化
https://blog.csdn.net/q5706503/article/details/84677041https://www.ibm.com/developerworks/cn/java/j-lo-serial/http://www.hollischuang.com/archives/1140#What%20Serializable%20Did
2019-08-05 23:27:53 98
原创 java对象锁和类锁
synchronized修饰非静态方法,是对调用该方法的对象加锁,称为对象锁。synchronized修饰静态方法,是对该类加锁,称为类锁。每个对象的锁唯一。对象内所有加锁的非静态方法共用一把锁(即对象锁),一个加锁非静态方法执行,另一个加锁非静态方法就不能执行了,要等待持有锁的线程释放锁,不同对象之间的方法不互相作用。类中的所有加锁的静态方法共用一把锁(即类锁),一个加锁的静态方...
2019-08-04 02:58:36 375
原创 进程 线程 协程 管程 纤程
协程是用户模式下的轻量级线程,操作系统内核对协程一无所知 协程的调度完全有应用程序来控制,操作系统不管这部分的调度 一个线程可以包含一个或多个协程 协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下纹和栈保存起来,在切换回来时恢复先前保运的寄存上下文和栈 协程能保留上一次调用时的状态,看到这里各种生成器(生成器是被阉割的协程)的概念浮现出来了。。 Windows下的...
2019-08-03 22:54:26 243
原创 乐观锁与悲观锁详解
何谓悲观锁与乐观锁?乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会对数据进行修改,所以每次拿数据时候都会上锁。因此在整个数据处理过程中,将数据处于锁定状态。这样别人想拿到这个数据就会block直到拿到锁。悲观...
2019-08-03 19:34:04 337
原创 数据库事务及其隔离级别
1.事务什么是事务呢?官方一些来说,事务就是恢复和并发控制的基本单位。为什么说是基本单位呢?我们在做一个需求的时候,往往不是一个sql语句就可以完成所有的更改,通常都需要一系列的操作才可以达到预期的目的。而这一系列的操作呢,就可以看作一个事务。或者说,我们可以人为地将它看作一个“原子操作”。类似于+1和-1操作。当一个事务执行之后,就相当于+1,那么我如果后悔了呢?我不想加一了,怎么办呢?...
2019-07-31 23:38:17 112
原创 浏览器请求响应全过程详解
1、在浏览器中输入url,直接输入ip或者输入域名。2、如果输入的是域名就需要通过DNS解析将域名解析成IP地址,通过IP来确认访问的是哪个服务器。3、建立TCP请求(即三次握手)。4、发送http请求。5、服务器处理请求,并将结果返回给浏览器。6、最后断开TCP连接(即四次挥手)。7、浏览器根据返回结果进行处理以及页面渲染。-------------------...
2019-07-31 23:33:07 4504 1
原创 java中LinkedList详解
Java的LinkedList是一种常用的数据容器,与ArrayList相比,LinkedList的增删操作效率更高,而查改操作效率较低。LinkedList 实现了List 接口,能对它进行列表操作。LinkedList 实现了Deque 接口,即能将LinkedList当作双端队列使用。LinkedList 实现了Cloneable接口,能克隆。LinkedList 实现了java.i...
2019-07-30 20:46:43 310
原创 java中ArrayList详解
本文通过实例讲解Java中如何使用ArrayList类。Java.util.ArrayList类是一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征。可以随时从链表中添加或删除一个元素。ArrayList实现了List接口。大家知道,数组是静态的,数组被初始化之后,数组长度就不能再改变了。ArrayList是可以动态改变大小的。那么,什么时候使用Array(数...
2019-07-30 17:42:04 182
原创 java实现八大排序算法详解
排序算法关系如下:性能比较如下:一、直接插入排序插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法步骤:1)将第一待排序列的第一个元素看成一个有序序列,把第二个元素到最后一个元素看作是未排序序列。2)从头到尾依次扫描未排序序列(通过外层循环),将扫描到的每个元素插入到有序序...
2019-07-11 21:21:36 169
原创 a=a+b和a+=b有什么不同?
在Java语言中,当参与运算的两个数是byte、ahort或int类型时,他们首先会被转化成int类型,然后在进行计算。然后把计算的结果赋值给用来存储结果的变量。如果用来存储结果变量的类型是byte或者short,这意味着需要把int类型转化成byte或者short类型。a+=b和a = a+b的区别就在于a+=b会隐式的把运算结果转换为a的类型。而a = a+b不会把a+b运算结果的类型隐式转换...
2019-07-10 14:13:42 987
原创 深入理解Java中i++和++i
在几乎所有的命令式编程语言中,必然都会有i++和++i这种语法。有些语言中i++和++i既可以作为左值又可以作为右值,在Java语言中,这两条语句都只能作为右值,而不能作为左值。同时,它们都可以作为独立的一条指令执行。可以看到程序中 ++a = 5; 和 a++ = 5;报错了。下面说明i++和++i的实现原理:首先写一个例子:{ int i = 1; i...
2019-07-10 13:33:58 572
原创 String和char[]类型间的相互转化
(1)String类型转char[] 类型,使用String类型的toCharArray()方法;(2)char[] 类型转String类型,使用String.valueOf()方法;package www;public class ww { public static void main(String[] args) { //String转char[] Strin...
2019-07-03 14:54:38 3069
原创 Java的String类中的startsWith方法和endsWith方法
1、startsWith()方法用于检测字符串是否以指定的前缀开始。语法:public boolean startsWith(String prefix, int toffset)public boolean startsWith(String prefix)参数prefix -- 前缀。toffset -- 字符串中开始查找的位置。返回值如果字符串以指定的前缀开...
2019-06-25 17:06:17 4379
原创 Java中HashMap的用法详解
package com.mbyte.easy.admin.controller;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * @Author: wqy * @Date: 2019-06-24 16:52 * @Versio...
2019-06-25 15:33:17 4120
原创 java初始化块(2)
1、java在初始化的时候首先执行初始化静态代码块(只执行一次),然后非静态代码块,然后构造方法。2、在各个代码块中顺序执行。3、执行顺序:父类static -》子类static-》父类非static-》父类构造-》子类非static-》子类构造4、对于new A(new B());先执行A的static,在执行B的所有,最后执行A的非静态和构造举例:1、无继承,无层次p...
2019-06-23 15:30:00 106
原创 String、StringBuffer、StringBuilder的区别以及字符串常量池
1、StringString是Java中基础且重要的类,被声明为final class,除了hash这个属性其他属性都声明为final,因为它的不可变性,所以如果拼接字符串时候会产生很多无用的中间对象,如果频繁的进行这样的操作对性能有所影响。2、StringBufferStringBuffer就是为了解决大量拼接字符串时产生很多中间对象问题而提供的一个类,它提供了append和add方...
2019-06-23 13:25:19 548
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人