- 博客(32)
- 收藏
- 关注
原创 Java的设计模式(工厂模式)
例子:用简单工厂模式实现一个计算器,当需要对同种类型数据进行不同的处理时,就可以考虑使用简单工厂模式,大概就是写一个抽象基类或者接口,然后基类里面写一个抽象业务方法没有实现,也可把子类的业务都需要的方法在基类实现,然后写具体的操作类,继承基类然后重写业务方法,根据不同的业务写不同的逻辑,再写一个工厂类,具体就是根据不同的业务类型实例化不同的类,得到最后的结果,最后返回的都是基类类型。主要是学习其中的思想,让每个业务分隔开,使用继承、封装、多态等Java的特性,实现代码的高可复用性。
2025-02-11 15:53:16
234
原创 Spark学习,RDD算子,RDD的读写等一篇总结
map(func):返回一个新的 RDD,该 RDD 由每一个输入元素经过 func 函数转换后组成比如你有一个list类型的RDD,你可以使用map(func)将String类型的转换成Iteger类型的RDD,他传入的是一个函数,所以需要提供对应的函数。filter(func):返回一个新的 RDD,用于过滤限定条件的算子,该 RDD 由经过 func 函数计算后返回值为 true 的输入元素组成,也就是说新的rdd是大于10的数据集。
2024-08-05 18:29:14
848
原创 hive的内部表(MANAGED_TABLE)和外部表(EXTERNAL_TABLE)的区别
外部表:外部表的存储在hdfs中,是我们指定的文件目录,当我们删除数据或者删除分区的时候不会将元数据删除,数据还会在hdfs目录中,我们还可以进行数据挂载。内部表:内部表的存储是在hdfs的默认目录下,当我们删除数据或者删除分区的时候会将元数据删除,数据文件也会被删除。运行指令找到table_type 如果为MANAGED_TABLE,那就是内部表,内部表和外部表的主要区别在于数据的存储方式。如果是EXTERNAL_TABLE,那就是外部表。
2024-08-01 16:11:59
551
原创 java的队列,PriorityQueue的使用业务场景
这个时候就是得使用队列,PriorityQueue优先队列,如以下代码,我们设置一个优先队列只能存三个对象,并且用distanceToCenter进行排序,优先队列会设置优先级,会根据Comparator.comparingDouble(Cell::getDistanceToCenter)返回值的大小,设置优先级,需要注意的是,越小的优先级越高,如果三个对象都没存满,那就先存满三个,如果有distanceToCenter更加小的就先清除大的(优先级低的),再将小的(优先级更高的)放进去。
2024-07-24 17:23:38
248
原创 #数仓分层总结(ods、dim、dwd、dws、tdm、ads)
l面向对象建模,对跨业务板块、跨数据域的特定对象数据进行整合,通过ID-Mapping把各个业务板块、各个业务过程中的同一对象的数据打通,形成对象的全域标签体系,方便深度分析、挖掘、应用。•**统计类:**统计对象相关数值,客观描述对象状态的标签,如高负荷小区近7天话务量、小区近7天弱覆盖天数。这里业务上会有大宽表的说法,个人理解大宽表就是一个业务字段的汇总,一般有几百个字段,相当于是XDR和TRACE的表的数据的汇总。•**规则类:**根据业务运营上的需要,在业务层面制定规则的标签。
2024-07-19 09:51:18
850
原创 Flink的学习总结,连接Kafka等概念
1.1流处理不同于spark的批次处理,流处理是随时数据来,随时处理是一个多线程的处理方式,例子代码如下.首先是创建流处理的环境StreamExecutionEnvironment,再通过readTextFile方法进行读取数据,再通过扁平算子flatMap进行处理,最后打印。
2024-07-15 17:05:03
937
原创 Jquery的学习,选择器、事件、Ajax请求
用$.ajax的方式,指定type:POST/GET,data需要传给接口的数据,success成功的回调,error失败的回调。比如拿到input框中name为buildingNum的值。比如选中class为addForm的表单值,并序列化。比如说给id为addBtn的元素绑定点击事件。()、mouseenter()等。实例:点击按钮后发送get请求。
2024-03-04 11:51:17
214
原创 Vue3,VueX,VueRouter的配置学习
在文件中写routes:[},},})需要注意的是history:createWebHistory(),是路由的工作模式,还有种hash模式但是hash模式会让url带#,我们一般都采用history的模式,但是需要后端后面去处理404等问题。然后是更改main.js更改main.js如下//引入路由器//创建应用//使用路由器再去App.vue里面引用<template><div>-- 导航 -->
2024-01-30 10:17:41
1510
原创 ES6以及TypeScript(TS)
var num3 = 177.234 console.log("num3.toFixed() 为 "+num3.toFixed()) // 输出:177 console.log("num3.toFixed(2) 为 "+num3.toFixed(2)) // 输出:177.23 console.log("num3.toFixed(6) 为 "+num3.toFixed(6)) // 输出:177.234000。const和let都有个暂时性死区的概念,暂时性死区,就是在声明之前,使用变量,会报错。
2024-01-24 16:58:52
1867
原创 阿里巴巴的java代码规范
1.long 或者 Long 初始赋值时,必须使用大写的 L,不能是小写的 l,避免跟数字1混淆。2.不要使用一个常量类维护所有常量,应该按常量功能进行归类。
2024-01-08 14:38:55
1698
原创 Sql的常见指令、函数、关键字、视图、索引等
MONTHS_BETWEEN:计算两个列的月数相差,类似于做减法,所以可能有负数,这样正好可以判断月数的顺序。ADD_MONTHS:在指定的时间列进行增加月的函数,使用格式ADD_MONTHS(字段,数字),LAST_DAY:在指定的时间列推算出当月或者年最后一天。having子句:having子句也是条件限制,能够跟汇总函数,经典的例子,求平均工资小于多少的Sql就不能用where,用having。order by子句:排序子句,根据字段的类型,如果是数字则按大小,字符串则是字母顺序,汉字则是按照拼音。
2023-12-29 14:05:39
668
1
原创 Java中实现多线程有几种方法
通过继承Thread类或者实现Runnable接口、Callable接口都可以实现多线程,不过实现Runnable 接口与实现Callable接口的方式基本相同,只是Callable接口里定义的方法返回值,可以声明抛出异 常而已。这种方式下,多个线程 可以共享一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将 CPU、代码和数据分开,形成清晰的模型,较好的体现了面向对象的思想。缺点:因为线程类已经继承了Thread类,Java语言是单继承的,所以就不能再继承其他父类了。
2023-11-01 11:19:48
78
原创 JVM的运行机制,垃圾回收算法,类加载机制
引用计数法:创建的变量,方法等,被引用一次引用计数器会加一,取消引用后,计数器减一,当计数器计数为0时,则可以被回收,但是有循环引用问题,如两个对象互相引用。首先由编译器将文件转换成字节码文件也就是.class文件,再由解释器将.class文件转换成机器码,机器码再调用相应的操作系统的本地方法库。标记整理法:结合了标记清除和复制算法的优点,解决了碎片化,内存浪费等问题,但是无法分类回收。方法栈,记录存储变量,方法,返回等,有方法的执行过程的内存模型。个内存区域可用,即可用的内存空间被压缩到原来的一半,
2023-10-18 11:32:50
89
原创 nginx的原理详解
我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的 情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。降低原来单个服务器的压力。反向代理,客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。
2023-08-28 15:16:44
198
1
原创 Jwt(JSON Web Token)的定义以及在springboot中的运用
5.负载:包含了需要认证的用户信息,比如说用户名,用户ID等信息,前后端需要交互的信息,但是最好不要放如用户密码这样的敏感信息,这一块也是用base64进行编码。4.标头:包含两部分,令牌和算法类型,分别是,typ(令牌)和alg(算法)这两个属性,然后可以基于base64的编码将其加密为字符串。head:头部,payload:负载,signature:签名。3.jwt的token三个组成部分(head,payload,singurater).1.jwt就是一个字符串,一个小的令牌,由三段组成。
2023-07-17 14:47:06
170
1
原创 SpringCloud的微服务原理以及思想原理。
三.他们之间的工作原理就像接口,user模块会调用oder模块,具体方法如下,oder项目有一个可执行的启动程序,程序查出oder信息,有对应的URL路径。四.与传统的思想对比,如果我们要实现表之间调用,我们会采用多表联查的方式,SpringCloud的方式,实现了解耦,功能的独立,造就了代码的独立。一.一个SpringCloud的项目,一般有多个模块,模块之间负责不同的功能,每个模块对应自己的数据库,以及操作的表。
2023-07-13 10:06:10
137
1
原创 Mysql的子查询
select * from emp where salary >all (select salary from emp where dept_id=(select id from dept where name = '财务部‘));select * from emp where dept_id=(select id from dept where dept_name=’销售部’);子查询返回的值是一列的属性(可以是多行),常用in ,not in,some和any(两者基本用法一致),all等连接。
2023-07-12 14:13:48
107
1
原创 Mysql的多表查询
二.外连接(left/right [outer] join):查询两张表的交集加上完全包含左表或者右表的数据,分为左外连接和右外连接。select 字段属性 from 表A 别名A join 表B 别名B on条件。select 字段属性 from 左表 left [outer] join 右表 on 条件查询语句。一.内链接(inner join):查询的是两张表的交集部分,分为隐式内连接,和显式内连接。select 字段列表 from 表一 [inner] join 表二 on 条件。
2023-07-11 15:16:35
210
1
原创 Java基础抽象类和接口的区别
抽象类:常量,变量,有构造方法,有抽象方法和非抽象方法。类和接口:实现,单实现,也可以多实现。接口与接口:继承,单继承,多继承。抽象类:对象抽象,包括行为,属性。接口:对行为抽象,主要是行为。接口:常量,抽象方法。类与类:继承,单继承。
2023-07-03 11:00:42
147
1
原创 java基础字符串拼接StringBuilder
1.将一个String类型的字符串转换成StringBuilder。2.将一个StringBuilder类型的字符串转换成String。3.StringBuilder的字符串拼接和反转。
2023-07-01 15:46:54
445
原创 Java基础Debug
看Debugger窗口和console窗口,前者是变量的变化后者是程序结果的展示。选择要设置断点的代码行,单击鼠标左键,在代码区域右键Debug运行。1.Debug调试,就是断点调试。3.按F7箭头程序会继续执行。
2023-07-01 10:53:08
148
原创 Java基础方法重载
2.重载只与方法的名称和参数有关,与返回值无关,不能通过返回值来判定两个方法是否重载,返回值类型也无关。1.多个方法在同一个类中,多个方法具有相同的方法名,多个方法参数不同,类型不同,数量不同。
2023-07-01 10:40:30
64
原创 Java的基础数据类型
布尔:boolean(true or false布尔类型不是数值型,其他的都是数值型)整数:byte,int,short,long。浮点数:float,double。2 引用数据类型:类,接口,数组。
2023-07-01 10:33:57
60
原创 MP第三章Mybatis-Plus代码生成器的使用
String mapperLocation = "C:\\Users\\dacai\\Desktop\\神盾局特工管理系统\\源码\\x-admin\\src\\main\\resources\\mapper\\" + moduleName;//设置映射文件的位置。.outputDir("C:\\Users\\dacai\\Desktop\\神盾局特工管理系统\\源码\\x-admin\\src\\main\\java");//.fileOverride() // 覆盖已生成文件。//生成的业务逻辑包名。
2023-06-25 09:51:11
157
1
原创 大数据分析与挖掘期末部分选择题知识点
1.决策树ID3算法,C4.5算法,CART算法选择最优分裂属性的方法分别是,信息增益。信息增益率,基尼系数。13.再序列数据库中,任何支持度大于等于最小支持度阈值的序列都是频繁的,一个频繁的序列被称为序列模式。数据集成:把不同的来源,格式,特点性质的数据在逻辑上或物理上有机地集中,从而提供更加全面的数据共享。14.数据清洗:数据清洗主要是将原始数据的缺失值,异常值,重复值进行处理,使数据变得干净起来。6.区间标度属性是指相等的数字距离代表测量变量相等的数量差值,例如摄氏温度,日历日期。
2023-06-19 18:44:25
642
原创 层次聚类,最短距离法思路
3.找出除了对角线的最小元素,将对应的列或行进行合并,根据公式,得出其他的簇与合并后的最短距离,其实最短的就是,其他簇与当前合并簇中的,单个距离的最短值,再形成新的矩阵。2.根据欧式距离得到,D(0),为了方便计算对D(0)保持平方,得到D(0)的平方矩阵。1. 欧式距离:即为我们平面坐标的距离求法。4.以此重复,直到最后只剩一个数据。
2023-06-19 16:36:22
482
原创 朴素贝叶斯算法解题流程
如上题职业为运动员,疾病为感冒的概率,本来的概率是:P(Xi|C)=1/3,一共三个感冒,只有一个为运动员。拉铺拉斯修正:P(c)=Dc+1/D+N,N表示训练集上所有的类别数,D表示所有的个数,Dc表示,C类事件的个数。如上题拉普拉斯修正后,感冒的概率:P(c)=(3+1)/(6+3)=4/9。= P(打喷嚏|感冒) x P(建筑工人|感冒) x P(感冒)3 贝叶斯定理:P(A|B) = P(B|A) P(A) / P(B)= P(打喷嚏x建筑工人|感冒) x P(感冒)P(感冒|打喷嚏x建筑工人)
2023-06-18 19:06:25
755
2
原创 数据挖掘的Apriori算法和FP-Growth算法通用语言总结
实现:树的根节点设置为null,先得到一项集,得到支持度计数,将原有的事务数据库中的事务,按照支持度进行排列,除去非频繁项。然后用每个事务作为树的节点进行扫描,每个节点包括他在该路径的计数,每个相同项计数相加等于该项的支持度计数。1.5 Apriori算法实现:先找出所有的一项集,然后将一项集组合形成二项集,以此规律形成三项集,三相集的子集不能是非频繁的,非频繁的除去。1.1 支持度计数:项集在数据库事务中出现的事务个数,2项集就是,两个同时出现的事务个数,以此类推。二.FP-Growth算法。
2023-06-15 11:45:04
718
1
原创 MP第二章,MyBatis-Plus的分页查询,分页拦截器
1.在配置类里面设置分页拦截器,定义MP拦截器类,再添加具体的拦截器,加上@Configuration注解。2.实现MP的分页查询功能,new一个新的page对象,current是当前页数,size为每页显示数据。
2023-05-30 11:15:10
474
1
原创 MP第一章,MyBatis-Plus的简单入门案例,实现数据的增删改查,数据操作实现逻辑与方法
4.创建数据层的接口Userdao,继承BaseMapper,挂上@Mapper注解,基本的查询功能就已经实现,不用写sql语句。1.导入pom依赖,导入mybatis-plus依赖后不需再倒入mybatis的相关依赖。2.修改yml文件配置数据源。
2023-05-30 10:35:20
121
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人