设计模式 (四) | 装饰者模式

前言前面我们将了工厂模式和策略模式,解决了if过多问题,怕修改导致大逻辑得到破坏,今天那我们来讲到装饰器模式,来解决订单的多种优惠结算问题一、定义动态给对象添加一些额外职责,比生成子类更加灵活二、解决问题在不改变对象基础上,动态给对象添加新的职责避免使用继承来拓展功能,从而避免类爆炸问题灵活控制对象

#Java基础  

Java基础 (十二) | 线程及线程池实战

前言hello,大家好,我是霸气侧漏的秀总,时隔多日,今天秀总给大家带来什么呢?大家都知道,此前我带来过一篇关于多线程的文章,如果你项目中多线程遇到不多,没必要使用线程池,那么今天给大家带来多线程一些常见的使用方法场景1、后台任务,例如:定时向大量(100w以上)的用户发送邮件;2、异步处理,例如:

#Java基础  

Java基础 (十一) | 上传、下载、导入、导出

前言hello,大家好,俗话说,上传下载是我们作为开发必不可少的业务,这里讲解比较常用的单纯上传下载功能,不涉及到很高级的比如幂等性、鉴权等业务前言一、上传接口废话不多说,直接撸代码一、上传接口

#Java基础  

设计模式 (二) | 工厂+策略模式结合

前言hello,大家好,前面讲过一篇策略模式,后来发现哪种方法有个bug,那就是实现类里面使用mapper或者dao,发现是个空的。原因其实原因是这种方法实则是new了一个接口,然后相继里面的bean肯定都是空的,那么怎么解决呢,今天叫一个新的处理方式。解决废话不多说,直接开干1、创建枚举publi

#Java基础  

Java基础 (十) | 多线程(详解)

前言众多周知啊,在我们java基础中,有一个基础是我们面试必不可少的话题,但是实际工作中,又很少使用,乃至根本不怎么用。那么这个就是多线程,但也有朋友说根据场景来使用的,也不是用在哪里都好,只有结合时间复杂度以及性能、异步才能完美演绎。

#Java基础  

Java基础 (九) | 常用Java函数、常见问题

这篇个人常用Java函数,不是技术类文章目录1、数据库事件用到的sql2、json字符串截取与替换一、数据库事件用到的sqlDECLARE startDate date DEFAULT DATE_FORMAT(now_day,'%Y-%m-%d');-- 更新数据的时间DECLARE startSt

#Java基础  

Java基础 (八) | 函数式编程

函数式编程函数式编程是一种编程范式,他将计算机视为函数的运算,并避免变化状态和可变数据。他是一种声明式编程范式,也就是说:编程是用表达式或者声明而不是语句完成好处代码简洁,开发快速接近自然语言,易于理解:自由度很高更方便的代码管理:不依赖、也不会改变外界的状态易于"并发编程":不

#Java基础  

Java基础 (七) | Jvm 调优-工具篇

前言工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用工具来分析jvm相关问题,长长可以到达事半功倍的效果来。jvm监控分析工具种类一种是jdk自带的工具:一种是第三方的分析

#Java基础  

Java基础 (五) | 封装、继承、多态

前言本文章主要学习Java中的重要概念封装、继承和多态,通过案例的方式进行讲解,让你对继承和多态在企业中的应用更加了解。一、大纲什么是多态基于继承关系的类型复用和拓展设计多态,运用多态二、封装2.1、什么是封装​ 封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或

#Java基础  

设计模式 (一) | 设计原则

前言先来思考几个问题:策略模式用在哪里,怎么使用,思想是什么本次来一点实际开发中会用到的小技巧。比如平时大家是否都会写类似这样的代码if (a) {// 微信支付} else if(b) {// 阿里支付} else if(c) {// 银联支付}试想而知,条件少还好,一旦 elseif 过多这里的

#Java   #Java基础  

Java基础 (三) | 手写RPC框架及理论

RPC:RemoteProcedureCall即远程过程调用是一种常见的一种通信方法,从跨进程到跨物理机以及有即使年历史理论知识:跨进程交互形式:RestFul、WebService、HTTP、基于DB做数据交互、基于MQ数据交互、以及RPC图解交互形式:现有框架对比核心原理(整体架构)RPCSer

#Java基础   #rpc  

Java基础 (一) | 开发规范

本文摘自阿里开发规范,是阿里工程师们严格遵循的开发标准,同时也是培养自己写出高质量代码的必然要求,不让自己写出来的代码像个刚毕业的。命名的风格代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例: _name $name代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使

#Java基础