自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

给你更好的

爱好促你坚持,坚持促你成功

  • 博客(311)
  • 资源 (3)
  • 收藏
  • 关注

原创 全局统一异常处理器

软件开发springboot项目过程中,不可避免的需要处理各种异常,spring mvc 架构中各层会出现大量的try {...} catch {...} finally {...}代码块,不仅有大量的冗余代码,而且还影响代码的可读性。这样就需要定义个全局统一异常处理器,以便业务层再也不必处理异常。实现:1 封装统一返回结果类import com.jiusen.exercise.enums.ErrorEnum;import com.jiusen.exercise.exception.Busi

2021-05-11 11:44:45 1225 13

原创 JVM知识脑图

用于对JVM知识快速回忆梳理后序会一直更新。脑图链接:https://www.processon.com/mindmap/6026cc6d1e08532119975daf目前目录大纲:知识源于B站 康师傅~

2021-02-19 06:24:27 246 3

原创 分布式-CAP原则

CAP原则又称CAP定理,指的是在一个分布式系统中:一致性(Consistency)、可用性(Availabiliy)、分区容错性(Partition tolerance)。CAP原则指的是:这三个元素最多只能同时实现两点,不可三者兼顾。一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)可用性(A):保证每个请求不管成功或者失败都有响应。分区容忍性(P):系统中任意信息的丢失或失败不会影响系统的继续运作。CAP原则的精髓就.

2021-01-27 19:42:59 151

原创 Java使用new Date() 插入数据库时间与本地时间相差8个小时

问题原因:配置JDBC连接时候,地区与本地不同:jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/o2o?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=a1b2c3serverTimezone=UTC : 这个UTC是协调世界时,我们中国在东八区

2020-12-08 11:13:59 1054

原创 IDEA能运行,但是出现红色下划线的问题报 cannot resolve method

方法一:能编译通过并运行说明SDK导入正确,但是为啥我们点击每一个Java文件会出现好多红色的下划线 ,并提示idea cant resolve symbol。原因就是可能没有清除原来的历史缓存,导致一些错误,解决方法是 File ~> Invalidate Caches 然后重启IDEA!待续.........

2020-11-24 16:30:43 319

原创 SVN版本控制介绍与使用(超详细版)

一、SVN概述1、为什么需要SVN版本控制软件协作开发 远程开发 版本回退2、解决之道SCM : 软件配置管理所谓的软件配置管理实际就是对软件源代码进行控制与管理CVS: 元老级产品VSS : 入门级产品ClearCase : IBM公司提供技术支持SVN : 主流产品3、什么是SVNSVN全称SubVersion SVN是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数软件公司都使用SVN作为代码版本管理软件 特点:操作简单,入..

2020-10-11 22:21:21 4237 3

原创 快速幂(全网最详细)

请点击此处传送到全网最详细博客代码1: public int fastPower(int x, int n) { int result = 1; while (n > 0 ){ if(n % 2 == 0){ //如果指数为偶数 n = n / 2; //把指数缩小为一半 x = x * x % 1000; //底数变大成原来的乘方 .

2020-09-18 11:42:10 228 1

原创 分块查找算法

分块查找又称索引顺序查找,它是顺序查找的一种改进方法。算法流程:先选取各块中的最大关键字构成一个索引表; 查找分两个部分:先对索引表进行二分查找或顺序查找,以确定待查记录在哪一块中;然后,在已确定的块中用顺序法进行查找。图片借自https://blog.csdn.net/qq_27870421/article/details/106773548?utm_medium=distribute.pc_relevant.none-task-blog-title-1&spm=1001.210

2020-09-16 16:38:51 326 1

原创 静态查找表与动态查找表

静态查找表:仅做查询和检索操作的查找表动态查找表:在查询之后,还需要将查询结果不在查找表中的数据元素插入到查找表中;或者,从查找表中删除其查询结果为在查找表中的数据元素;简而言之,动态查找表的结构是可以随时修改或变化的,表结构本身在查找过程中动态生成,一般而言链式结构有这个特征,比如二叉查找树、三棵树等。另外,基于顺序存储的Hash查找应该也算动态查找表;而静态查找表的结构一次性生成后就不再允许改变,就像在有序数组上使用折半查找那样。...

2020-09-16 10:36:22 1723 1

原创 Drools实战-保险产品准入规则

1、规则介绍各保险公司针对人身、财产推出了不同的保险产品,作为商业保险公司,筛选出符合公司利益最大化的客户是非常重要的,即各保险产品的准入人群是不同的,也就是说保险公司会针对不同的人群特征,制定不同的产品缴费和赔付规则。下面保险产品准入规则的简化版,当不满足以下规则时,系统模块需要返回准入失败标识和失败原因规则1: 保险公司是:PICC规则2: 销售区域是:北京、天津规则3: 投保人年龄:0 ~ 17岁规则4: 保险期间是:20年、25年、30年规则5:

2020-08-10 14:44:48 463 3

原创 Drools-决策表

1、决策表Drools除了支持drl形式的文件外还支持xls格式的文件(即Excel文件)。这种xls格式的文件通常称为决策表(decision table)。决策表(decision table)是一个“精确而紧凑的”表示条件逻辑的方式,非常适合商业级别的规则。决策表与现有的drl文件可以无缝替换。Drools提供了相应的API可以将xls文件编译为drl格式的字符串一个决策表的例子如下:决策表的语法:关键字 说明 是否必须 RuleSet 相当于drl文

2020-08-10 11:21:54 962

原创 Drools实战-信用卡申请

通过Drools规则引擎来根据规则进行申请人的合法性检查,检查通过后再根据规则确定信用卡额度,最终页面效果如下:1、计算规则合法性检查规则如下:规则编号 名称 描述 1 检查学历与薪水1 如果申请人既没房也没车,同时学历为大专以下,并且月薪少于5000,那么不通过 2 检查学历与薪水2 如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于3000,那么不通过 3 检查学历与薪水3 如果申请人既没房也没车,同时学历为本科以上.

2020-08-10 10:16:34 374 1

原创 Drools实战-个人所得税计算器

1、个人所得税计算器1.1、名词解释税前月收入:即税前工资,指交纳个人所得税之前的总工资应纳税所得额:指按照税法规定确定纳税人在一定期间所获得的所有应税收入减除在该纳税期间依法允许减除的各种支出后的余额税率:是对征税对象的征收比例或征收额度速算扣除数:指为解决超额累进税率分级计算税额的复杂技术问题,而预先计算出的一个数据,可以简化计算过程扣税额:是指实际缴纳的税额税后工资:是指扣完税后实际到手的工资收入1.2、计算规则要实现个人所得税计算器,需要了解如下计算规则:

2020-08-07 11:41:05 599 2

原创 Drools高级语法(6/6)

1、global全局变量global关键字用于在规则文件中定义全局变量,它可以让应用程序的对象在规则文件中能够被访问。可以用来为规则文件提供数据或服务。语法结构为:global 对象类型 对象名称在使用global定义的全局变量时有两点需要注意:1、如果对象类型为包装类型时,在一个规则中改变了global的值,那么只针对当前规则有效,对其他规则中的global不会有影响。可以理解为它是当前规则代码中的global副本,规则内部修改不会影响全局的使用。第一步:编写global.drl

2020-08-05 23:11:22 526

原创 Drools规则属性(5/6)

前面我们已经知道了规则体的构成如下:rule "ruleName" attributes when LHS then RHSend1、enable属性enabled属性对应的取值为true和false,默认值为true。用于指定当前规则是否启用,如果设置的值为false则当前规则无论是否匹配成功都不会触发。rule "rule_comparison_notMemberOf" //指定当前规则不可用,当前规则无论是否

2020-08-05 19:47:58 452

原创 Drools基础语法(4/6)

1、规则文件构成在使用Drools时非常重要的一个工作就是编写规则文件,通常规则文件的后缀为.drl。drl是Drools Rule Language的缩写。在规则文件中编写具体的规则内容。一套完整的规则文件内容构成如下:Drools支持的规则文件,除了drl形式,还有Excel文件类型的。2、规则体语法结构规则体是规则文件内容中的重要组成部分,是进行业务规则判断、处理业务结果的部分。规则体语法结构如下:rule "ruleName" attributes

2020-08-05 16:04:04 386

原创 Drools入门案例(3/6)

1、业务场景说明业务场景:消费者在图书商城购买图书,下单后需要在支付页面显示订单优惠后的价格。具体优惠规则如下:现在需要根据上面的规则计算优惠后的价格2、开发实现第一步:创建maven工程drools_quickstart并导入drools相关的maven坐标<dependency> <groupId>org.drools</groupId> <artifactId>drools-compiler</artif

2020-08-04 23:03:36 1020

原创 规则引擎概述(2/6)

目录1、什么是规则引擎2、使用规则引擎的优势3、规则引擎应用场景4、Drools介绍1、什么是规则引擎规则引擎,全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规范),由用户或开发者在需要时进行配置、管理。需要注意的是规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。目前市面上具体的规则引擎产品有

2020-08-04 22:16:54 435

原创 规则引擎Drools(1/6)

问题引出现有一个在线申请信用卡的业务场景,用户需要录入个人信息,如下图所示通过上图可以看到,用户录入的个人信息包括姓名、性别、年龄、学历、电话、所在公司、职位、月收入、是否有房、是否有车、是否有信用卡等。录入完成后点击申请按钮提交即可。用户提交申请后,需要在系统的服务端进行用户信息合法性检查(是否有资格申请信用卡),只有通过合法性检查的用户才可以成功申请到信用卡(注意:不同用户有可能申请到的信用卡额度不同)检查用户信息合法性的规则如下:用户信息合法性检查通过后,还需要根据

2020-08-04 21:25:21 300

原创 正则表达式

一、重复次数匹配有以下字符串:HuaweiHuaaweiHuaaawei他们有什么规则呢? Hua{1,3}wei其中,{1,3}表示前面的字符重复1到3次(1-3)大括号的其他用法{m,n} 最少m次,最多n次{m,} 最少m次{,n} 最多n次{m} 刚好m次参考代码使用java.util.regex.*下的API来实现正则表达式String content = "Huaawei"; String regex = "Hua{1,3}

2020-05-25 19:04:16 212

原创 计算机网络体系结构

1.1、概念、组成、功能和分类1.2、标准化工作及相关组织3.1、速率相关的性能指标

2020-05-22 09:21:51 176

原创 全局实例框架的设计

1、全局实例全局实例:Global Instance一直存在的、不会被GC回收销毁的对象一般使用public static来创建一个全局实例演示一下:1、创建全局实例public static Car car = new Car();2、访问全局实例AfGlobals.car.run();在任何时候都可以访问,在任何地点都可以访问代码演示(方便理解记忆)(1.0)3个普通类:public class Car{ public void run()

2020-05-19 21:03:26 117

原创 元注解

元注解用于注解其他注解类的注解@Retention@Target@Documented@Inherited@Retention@Retention,保留级别设定SOURCE:源代码级,不会编译到class文件Class:会被编译到class文件中,但加载时忽略Runtime:会被编译到class文件中,并被加载到JVM显然,框架设计中要从class文件中提取注解,所以在反射中必须使用RUNTIME级别@Targetimpo...

2020-05-19 17:58:29 70

原创 反射与注解

反射与注解通过例子来说,更加清晰明了、记忆深刻(这里都不在解释反射与注解,直接合体使用)1、首先自定义一个注解import static java.lang.annotation.RetentionPolicy.RUNTIME;import java.lang.annotation.Retention;@Retention(RUNTIME)public @interface FieldInfo { String format(); int type();}2、.

2020-05-18 20:29:00 96

原创 代理模式

目录代理模式的基本介绍1、静态代理1、静态代码模式的基本介绍2、应用实例3、静态代理优缺点2、动态代理1、动态代码模式的基本介绍2、JDK中生成代理对象的API3、Cglib代理3.1、基本介绍3.2、实现代理模式的基本介绍代理模式的基本介绍1)代理模式:为一个对象提供一个替身,以控制对这个对象的访问,即通过代理对象访问目标对象...

2020-05-01 20:39:23 98

原创 二叉树

1、二叉树的概念和常用术语1.1、树的示意图1.2、二叉树的概念2、前序中序后序遍历二叉树3、前序 中序 后序遍历代码实现3.1、代码实现1package tree;public class BinaryTreeDemo{ public static void main(String[] args) { }}//定义的BinaryT...

2020-04-29 11:41:42 190

原创 数组 链表 树存储方式分析

1、数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。 缺点:如果要检索具体某个值,或者插入某个值(按一定顺序)会整体移动,效率较低2、链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可,删除效率也很好)缺点:在进行检索时,效率仍然较低,...

2020-04-29 09:27:19 467

原创 四种查找算法(Java)

一、线性查找算法【easy】package search;public class SeqSearch{ public static void main(String[] args) { int[] arr = {1, 3, 9, 8, 7, -1, 2}; //没有顺序的数组 int index = seqSearch(arr, 7); if(index == -1...

2020-04-26 11:44:29 1042

原创 String、StringBuilder、StringBuffer

String对String来说,常见的是看程序写结果:来3个经典: /* 看程序写结果 */ public static void main(String[] args) { String s1 = "abc"; String s2 = "a" + "b" + "c"; String s3 = "...

2020-04-20 10:34:20 74

原创 工厂模式解耦

通过反射技术来创建实例对象- 可以降低类之间的耦合性- 对于不存在的类,出现的不是error异常,而是NotFoundException工厂package com.itheima.factory;import java.io.IOException;import java.io.InputStream;import java.util.Properties;/** ...

2020-04-19 12:07:23 110

原创 通过jdbc的工程代码分析程序的耦合

package com.itheima;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;/** * 程序的耦合 * 耦合:程序间的依赖关系 * 包括...

2020-04-19 08:51:55 80

原创 Java-多线程

目录1、概念1.1、Process与Thread1.2、核心概念2、创建线程的三种方式2.1继承Thread类(方式一)2.2、实现Runnable(方式二)2.3、实现Callable(方式三)3、静态代理设计模式4、lambda_简化线程4.1、无参lambda表达式4.2、带参数的lambda表达式4.3、带返回值的lambda表达式...

2020-04-16 11:56:23 258

原创 表格数据存储

map和list结合存储整张表package sxt.gaoqi.container;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;p...

2020-04-14 18:05:54 211

原创 Collections工具类

package sxt.gaoqi.container;import java.util.ArrayList;import java.util.Collections;import java.util.List;/* * Collections辅助类的使用 * Collection是接口,Collections是工具类 */public class TestCollectio...

2020-04-14 17:09:44 73

原创 迭代器的使用

通过对List、Set、Map的遍历来了解迭代器的使用package sxt.gaoqi.container;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import j...

2020-04-14 12:07:17 47

原创 TreeSet的使用和底层原理

根据源码可知,TreeSet的底层使用到TreeMappackage sxt.gaoqi.container;import java.util.HashMap;import java.util.Map;public class JsHashSet{ Map map; private static final Object PRESENT = new Object();...

2020-04-14 09:57:35 283

原创 Set接口

根据hashset的源码可知,其底层是由HashMap来实现的根据源码仿写setpackage sxt.gaoqi.container;import java.util.HashMap;import java.util.Map;public class JsHashSet{ Map map; private static final Object PR...

2020-04-14 08:43:49 52

原创 TreeMap使用

package sxt.gaoqi.container;import java.util.Map;import java.util.TreeMap;/* * 测试TreeMap的使用 */public class TestTreeMap{ public static void main(String[] args) { Map<Integer, String&gt...

2020-04-13 21:33:30 112

原创 手工实现HashMap

HashMap底层实现采用了哈希表package sxt.gaoqi.container;/* * put存储键值对 * 解决键重复问题、链表生成问题 * 重写toString方法打印Map内容 * get查找键值对 */public class JsHashMap<K,V>{ Node2[] table; //哈希数组 int size; //...

2020-04-13 20:06:54 167

原创 HashMap底层原理

存储键值对底层过程HashMap底层实现采用了哈希表,zh这是一个非常重要的数据结构哈希表的基本结构就是“ 数组 +链表”哈希表结构:HashMap存储键值对的过程查找键值对过程_equals和hashcode取数据过程get(key)JDK8将链表在大于8情况下变为红黑二叉树...

2020-04-13 08:49:41 58

图片库项目(Java实现).zip

通过 Tomcat mysql Java HTML 实现图片库项目,功能包括图片的上传,图片详细信息的查看,图片的删除等,个人还可以根据自己的喜好进行更多功能的扩展,代码注释详细

2019-11-27

中国省市县结构图.zip

描述了中国各个省市县的结构图,具有增加查询功能,提高大家的观看查询效率,大到中国,小到县镇,都可以轻松查看

2019-12-02

json-org.jar

json工具类,什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。 JSON 具有自我描述性,更易理解

2019-11-27

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除