
java
文章平均质量分 74
java基础语法.java高级基础.java企业级开发技术
炒冷饭
一个普通本科软件工程方向的学生,从事Java开发。
越努力,越幸运!!
博客记录学习记录,力求写出高质量的博文和大家分享
我想要offer
展开
-
自定义时间校验器
时常可能有这样的需求:在请求之前对于请求参数做校验,这样做一方面可以过滤掉一部分无效的请求(请求参数错误),另一方面也可以有效的限制错误请求占用请求时间,减少并发。而且在请求之前做参数校验是很好的,在数据的源头遏制脏数据,会比在代码中,甚至数据库中处理数据要方便和省力很多。原创 2021-11-03 18:33:21 · 706 阅读 · 0 评论 -
表加字段以及大表加字段
文章目录如何在MySQL数据库中给表加字段直接加字段复制原表结构加字段后拷贝数据拓拓2之前淘宝提供的是nick用于淘宝的渠道的单店铺/多店铺的会员识别和打通现在淘宝不在提供nick。对于单店铺淘宝提供ouid(淘宝提供nick转ouid的接口(这个接口淘宝可能仅提供一段时间)),该ouid在单店铺中唯一,保证在单店铺中的用户识别对于品牌多店铺的情况,提供ouid转omid的转化接口,用于跨店识别同一用户做用户管理及分析。这就对原始的数据库提出了新的要求,需要使用ouid以及omid作为用户识别的原创 2021-09-23 09:49:43 · 1707 阅读 · 2 评论 -
消息回调与根据企微消息使用回调函数处理添加联系人和添加部门事件
文章目录回调函数剖析回调函数的结构监听企微消息处理添加外部联系人/添加部门的业务接收Kafka监听到的企微消息并选择相应的处理接收企微消息的实体消息解析添加外部联系人抽象回调函数企微添加联系人实体企微添加部门实体回调函数要搞懂什么是回调函数,怎么使用回调函数回调函数其实也是函数(方法),就像白马王子也是王子一样。在本质上回调函数和普通的函数没有区别,同样可以被其他方法调用,也可以含有参数,可以拥有返回值。最大的不同是:回调函数并不能主动的触发的,而是根据调用者来判断我是否调用,调用哪一个方法。或者原创 2021-09-16 18:56:07 · 1374 阅读 · 0 评论 -
你应该对单例模式有一点思考
文章目录为什么要使用单例模式不完美的解法一(懒汉式单例)懒汉式不完美之处解析:懒汉式单例的优化(双检锁的方式)懒汉式优化说明饿汉式单例模式总结总结为什么要使用单例模式在项目中我们有些类我们只需要有一个实例即可,我们也希望只维护一个实例,节省大量实例化对象占用太多的系统资源。不完美的解法一(懒汉式单例)public class Singleton{ private Singleton{ } public static Singleton instance =原创 2021-09-06 23:21:13 · 337 阅读 · 0 评论 -
Swagger,减少前后端工程师撕逼的神器
Swagger 是最流行的 API 开发工具,它遵循 OpenAPI Specification(OpenAPI 规范,也简称 OAS)。在企业日常工作中已经成为了后端和前端人员必备的技能。原创 2021-07-28 22:00:56 · 331 阅读 · 0 评论 -
使用Java程序发送邮件|发送有附件的邮件|进行邮件群发
今天公司某一个业务需要给顾客发邮件进行营销,并且需要附带附件,公司当前对该功能还没有进行封装。我暂时对于使用Java程序发送邮件练习一个小demo。本文涉及到的知识点:>1.如何使用Java程序发送邮件>2.如何发送有附件的邮件>3.如何进行群发邮件>4.如何携带多个附件原创 2021-07-20 23:45:19 · 1687 阅读 · 4 评论 -
【JUC】线程部分的知识梳理,用于强化记忆
文章目录1.进程/线程进程和线程的区别2.实现一个线程的方式三种实现方式分别有什么特点,或者说怎么选择?3.怎么实现多线程同步4.synchronized和Lock锁的区别5.在多线程中如何安全的使用集合,他们有什么区别?6.锁是什么?锁的对象如何判断?7.什么是虚假唤醒?什么是虚假唤醒?为什么会导致虚假唤醒?8.synchronized和Lock锁的使用场景9.锁升级(锁膨胀机制)?无锁偏向锁轻量级锁(自旋锁)重量级锁10.锁分类11.ReentrantLock的实现?12.死锁是什么?产生条件是什么?1原创 2020-12-07 00:09:43 · 880 阅读 · 0 评论 -
【JUC】集合类多线程操作不安全的三种解决方案
在多线程中,对于集合的操作可能会导致java.util.ConcurrentModificationException异常,也就是同步修改异常,而集合是在项目开发中经常使用的API,正确的操作集合能够保证系统的稳定运行。本文介绍三种集合安全的操作方案,并介绍部分底层原理,详细原理还是决定分为多个博客,详细介绍。原创 2020-12-05 09:59:17 · 535 阅读 · 2 评论 -
【JUC】学习JUC之前必备的线程知识
本文介绍了JUC的概念和要一步一步学习Java JUC需要掌握的线程的知识,如创建线程的三种方式以及实现线程同步问题,列举了线程同步经典问题(生产者消费者问题),介绍了多线程中可能造成的虚假唤醒和虚假唤醒的解决方案。原创 2020-12-04 16:44:03 · 246 阅读 · 1 评论 -
看了几道面试题,让我又走了几遍【HashMap源码】
菜菜的我在找工作的路上摸爬滚打,今天看了几道HashMap的面试题,我受到了暴击,赶紧走了几遍HashMap源码,彻底搞懂了HashMap的添加,查找和原理实现。原创 2020-11-09 21:57:36 · 787 阅读 · 11 评论 -
【面试题】i+1<i真的存在
从I+1<i讨论数据溢出的问题,是java中常见的面试题原创 2020-09-09 11:39:54 · 2079 阅读 · 0 评论 -
面试官可能问到的序列化和反序列化
序列化和反序列化不仅在java程序员日常的工作中非常的重要,这同样也是HR通常在面试时向面试者提出的问题,本篇文章从面试题出发,完整的讲解实现序列化和反序列的步骤和面试中常用问题的解答原创 2020-08-19 15:11:32 · 495 阅读 · 0 评论 -
《二十不惑》,多看看JVM面试全解
文章目录JRE和JDK的区别引言JVM1.JVM是什么?2.JVM的实现原理3.JVM调优总结:1. 确认哪些内存需要回收?2. 什么时候回收?3. 怎么回收?4. JVM怎么确认哪些对象是垃圾?(哪些对象已经"死亡"?)5. 垃圾收集算法?6. 为什么要将新生代和老生代,分代收集垃圾?最近要准备秋招了,会更新一些面试相关的知识JRE和JDK的区别JRE是Java Runtime Environment的缩写,顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语原创 2020-08-09 13:22:42 · 251 阅读 · 0 评论 -
SpringBoot框架最全笔记
Spring Boot的特点,项目的创建,项目启动方式的介绍,常用注解和注解原理的梳理 ,以及Spring Boot集成MyBatis和分页助手,Spring集成JSP.原创 2020-08-02 11:34:00 · 6412 阅读 · 5 评论 -
FilterAndListener
本文主要讲过滤器和监听器在servlet中的用法,合理的使用过滤器和监听器会使我们的实现更加高效和便利.原创 2020-05-27 10:28:50 · 707 阅读 · 0 评论 -
Maven学习和踩坑记录
MavenMaven的安装下载安装包,直接解压就可以使用目录bin—构建项目boot----maven运行的类加载器conf------中有一个setings是我们对maven配置的很重要的一个配置文件lib----------maven自身运行需要的一些jar包需要配置maven的环境变量path的环境变量注意:maven的运行需要依赖于javahome的环境变量(确定我们的环境中有javahome)如何确定我们的maven环境已经安装好了DOS输入 : mvn -v简述项目原创 2020-05-21 23:59:27 · 836 阅读 · 1 评论 -
基础却最常用的正则表达式的用法详解,文章很短,但是有点料
个人对正则表达式使用的总结,都是最基本,但是却最常用的方法和功能.原创 2020-05-13 20:47:31 · 606 阅读 · 0 评论 -
JavaScript学java后端也得学??
大家都知道,现在虽然是前后端分离,但是前端工程师必须了解一些后端的知识,而后端开发的工程师也必学一些前端的知识,今天就和我一起来看看后端必学的一些前端知识,我是一个学习java后端的,最近会更新一系列java后端要学的前端的知识.原创 2020-05-08 08:44:41 · 2313 阅读 · 0 评论 -
我竟然把JDBC忘了,一篇适合新手和老手的JDBC完整介绍(详细的不要不要的)
有适合新手的JDBC入门级介绍和操作,也有关于sql拼接sql注入的解决方法,也有适合高手和数据库连接池的使用,总之看了就入门,看完就完全搞懂JDBC,摸不透JDBC你来打我好了原创 2020-04-23 01:59:52 · 2258 阅读 · 1 评论 -
外观设计模式(facade )
外观设计模式模式定义:外观模式实现了新子系统和功能的分离,让系统方法的调用的顺序看起来更加的有序。为子系统中的一组接口提供一个一直的界面,此模式定义了一个高层的接口,这个接口使得子系统更容易使用。引入外观设计模式后,Client只需要和外观模式的总接口facade交互,避免了复杂的和子系统进行交互。相当于在子系统和Client之间创建了一个超级的接口,这个接口中的内容是有效的整合子系统的类的...原创 2019-12-04 19:38:20 · 147 阅读 · 0 评论 -
装饰设计模式详解
装饰设计模式模式定义和动机装饰模式可以在不改变一个对象本身的基础上给对象增加额外的新行为(方法),在实现生活中的例子有很多,买了毛坯房需要装修,我们每个人对毛坯房的新装修(新功能)可能都是不一样的,但是这都不会改变毛坯房自己的特性。定义:动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类要灵活的多(生成的不同子类可能不能多个用户的要求)。它是一种对象结构型模式。UM...原创 2019-12-01 20:14:07 · 243 阅读 · 0 评论 -
原型模式
原型模式定义在软件系统中,有时需要多次创建某一类型的对象,为了简化创建过程,可以只创建一个对象,然后通过对象克隆的方式复制出多个相同的对象,这就是原型设计模式。原型设计模式是一种对象创建型模式,用原型实例指定创建对象的种类,并且通过复制这些原型创建新对象。原型设计模式允许一个对象再创建另一个可定制的对象,而不需要知道在创建的细节。原型模式结构分析1.Prototype(抽象原型类)抽象...原创 2019-11-18 12:20:31 · 196 阅读 · 0 评论 -
适配器模式_适配器模式简单实例
适配器模式简介适配器模式是java设计模式中的一种结构型设计模式,如果是在系统中存在接口不兼容的接口,可以通过引入一个接口来使原本因为接口不兼容而不能一起工作的两个类能够一起工作。“类的单一职责原则”,一个软件系统的一个类最好只有一个职责,但是在实际的软件开发过程中,通常是需要多个类来相互协作的,因此需要将这些类和类的实例进行组合。模式定义将一个类的接口转化为用户希望的另一个接口,使得原...原创 2019-11-09 17:37:13 · 2173 阅读 · 0 评论 -
简单工厂模式
简单工厂模式简介在java软件开发过程中,有时需要创建一些来自于相同父类的类的实例,为此可以专门定义一个类负责创建这些类的实例,这些被创建的类有着共同的父类。这样,可以通过注入不同的参数从而获得不同的对象,java语言中,习惯上将创建其他类实例的方法定义的static,这样外部不需要实例化这个类就可以直接调用该方法来获得需要的对象,该方法也称为静态工厂方法。下面我们来看源代码。Car接口...原创 2019-11-05 23:05:24 · 139 阅读 · 0 评论 -
单例模式的定义?单例模式的应用环境?怎么写单例模式?
java设计模式—单例模式java单例模式指的是,在执行程序的过程中,只允许该类生成一个实例对象。通过单例模式可以保证系统中的一个类只有一个实例,而且这个类易于被外界访问,从而方便对实例个数的控制并节约系统资源。单例模式定义单例模式确保在某一个类只有一个实例,而且自行的实例化并向系统提供这个实例,这个类称为单例类,它提供全局的访问的方法。单例模式的要点1.某一类只能有一个实例2.该单...原创 2019-11-05 16:28:34 · 250 阅读 · 0 评论 -
java集合框架子接口List和list的常用实现类
List的常用方法和List的常用实现类原创 2020-03-23 09:01:47 · 790 阅读 · 0 评论 -
一文掌握java集合框架的Collection接口
本文是博客集合框架的第一篇,介绍了集合的思想和Collection接口的常用方法,遍历集合的三种方式原创 2020-03-22 12:39:30 · 810 阅读 · 0 评论 -
Java集合框架之Map接口详解(方法示例)
目录Map接口常用方法:添加方法:1.添加方法2.删除方法3.修改方法4.查询5.获取键值对数6.遍历Map常用实现类HashMapTreeMapLinkedHashMap(JDK1.7-JDK1.8)Map接口java.util.Map接口内部实现:数组+链表和Collection最大的不同就是Map存储的是键值对(我之前文章将他称为情侣约会,家庭聚会),而Collection存储的...原创 2020-04-06 17:12:21 · 901 阅读 · 0 评论 -
java集合框架之Collection的子接口Set和它的实现类
java集合框架Set接口和它的实现类特点小结原创 2020-03-26 14:18:43 · 783 阅读 · 0 评论 -
Java日期时间类必看必学
Java日期时间类第一代到第三代常用的方法介绍,有一个关于日期时间的小练习(非常经典)原创 2020-03-16 16:00:53 · 762 阅读 · 0 评论 -
Java中的Math类你必须知道的这些(内含经典面试题)
主要是,Math类中的方法和有关方法的思维发散,包含Math类的经典面试题.原创 2020-03-10 16:49:39 · 878 阅读 · 0 评论 -
自定义异常
Threadable 类是Java语言中所有错误和异常的超类1.只有当对象是此类(或其子类之一)的实例时,才能通过Java虚拟机或者Java throw语句抛出.类似地,只有此类或其子类之一才可以是catch子句的参数类型.结论:要想一个类称为"异常类型",那么他必须是Throwable或者它的子类2. 自定义异常的对象,只能由throw语句手动抛出3. 建议自定义异常,添加两个构造器...原创 2020-03-08 09:16:15 · 231 阅读 · 0 评论 -
异常关键字throws和throw
关键字 throws在声明一个方法时,明确这个方法可能抛出xx异常,说明这些异常在方法中没有try…catch处理,而由上层调用者处理语法格式:[修饰符] 返回值类型 方法名([形参列表])[throws 异常]{}说明:throws后面可以接多个异常,一般有多个异常时,如果有包含关系,那么只写范围大的异常.throws和方法重写:方法重写的要求:(1)方法名必须相同(2)形...原创 2020-03-07 19:41:16 · 395 阅读 · 0 评论 -
异常处理中常见的面试题安利
异常处理中常见的面试题安利1.概念辨析题final/finalize/finally的区别:final;是一个修饰符,修饰类(不能被继承).方法(不能被重写).变量(不能修改值)finalize:是Object中声明的一个方法,表示有GC调用,在对象被回收之前finally:是try…catch结构中的一部分,无论异常是否发生,finally中的语句块一定会执行.2.结果判断题所含的...原创 2020-03-07 17:25:44 · 263 阅读 · 0 评论 -
异常的处理
介绍了异常处理的基本语法和进行简单的异常处理练习原创 2020-03-07 16:35:34 · 170 阅读 · 0 评论 -
哪些操作释放锁和不释放锁.死锁
哪些操作释放锁和不释放锁.死锁释放锁的操作(1)当前线程的同步方法.同步代码块执行结束(2)当前线程在同步代码块.同步方法中遇到了break,return终止了同步代码块.同步方法的执行.(3)当前线程在同步代码块.同步方法中出现了未处理的Error或者Exception,导致当前线程异常结束(4)当前线程在同步代码块.同步方法中执行了锁对象的wait()方法,当前线程被挂起,并释放锁...原创 2020-03-07 09:40:40 · 2627 阅读 · 3 评论 -
多线程_多个生产者多个消费者问题
多线程中多个生产者多个消费者问题还是之前的问题:厨师负责做菜,服务员负责给客人上菜,厨师做好的菜放在工作台上,服务员从工作台上取菜品,但是这次的厨师和服务员都有多个.首先创建出多个厨师和多个服务员是很简单的,为了方便,我们给线程重命名一下,做一个标记,在后面方便进行观察.public class TestCommunicate { public static void main(Strin...原创 2020-03-06 14:06:52 · 901 阅读 · 0 评论 -
多线程_生产者消费者问题
什么是多线程的生产者-消费者问题当一个或者多个线程只负责往"数据缓冲区"中添加数据,而一个或者多个线程只负责从"数据缓冲区"中 取数据时可能造成的存数据时数据缓冲区满,或者取数据时,数据缓冲区为空的情况,这种情况就称为生产者-消费者问题.而线程通信,就是在遇到"生产者-消费者问题"的时候需要用到的生产者-消费者问题(1)因为生产者-消费者都要操作数据缓冲区,所以数据缓冲区是共享的,就会可能...原创 2020-03-06 11:37:55 · 349 阅读 · 0 评论 -
多线程使用同步方法解决线程安全问题
仍然还是两个线程窗口卖票当一次任务是在一个方法中完成的,那么我们可以将这个方法封装,即锁这个方法如下是同步方法的代码;/** * */package com.yan;/** * @author 雷雨 * */public class TestThread { /** * @param args */ public static void main(Strin...原创 2020-03-06 09:10:18 · 193 阅读 · 0 评论 -
多线程使用同步代码块的方式实现两个窗口卖票(不重复)
使用两个线程实现两个窗口卖票,不能卖出重复的票,两个线程使用同一个数据结果图1.先建立一个共享的数据存储,这里用ArrayList来实现package com.leiyustudy.thread.safe;import java.util.ArrayList;/** * * */public class TicketService { private ArrayList...原创 2020-03-05 10:03:23 · 798 阅读 · 2 评论