自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 flink sql TUMBLE 窗口函数的用法

tumble是Flink SQL中用于定义时间窗口的关键字之一。它用于将连续的事件时间流划分为不重叠的固定大小的时间窗口,以便在窗口内进行聚合操作。

2023-08-28 16:13:40 1165

原创 fink sql 和传统sql 的区别

假设我们有一个实时的电商网站日志流,其中包含用户ID、访问时间和购买金额。我们想要计算每小时内每个用户的购买总金额。函数来截断时间到小时,并按照用户ID对数据进行分组,计算了购买总金额。来定义每小时的窗口,并根据用户ID对数据进行分组,计算了购买总金额。在上面的Flink SQL查询中,我们使用了滚动窗口函数。在传统的SQL查询中,我们使用了。

2023-08-28 15:59:43 475

原创 不同join 语法的区别

右外连接与左外连接相似,但是返回右表中的所有数据行,以及满足连接条件的左表中的匹配数据行。如果没有匹配的数据行,左表的列值将为NULL。左外连接返回左表中的所有数据行,以及满足连接条件的右表中的匹配数据行。全外连接返回左表和右表中的所有数据行,并将它们根据连接条件合并。这将返回所有课程,包括选择该课程的学生,以及没有学生选择的课程 History。这将返回所有学生,包括他们所选的课程,以及没有选择课程的学生 Carol。这将返回所有学生和所有课程,包括没有选择课程的学生和没有学生选择的课程。

2023-08-23 17:02:15 191

原创 hive lag() 和lead()函数

Hive 中的LAG和LEAD函数时,通常用于在结果集中获取同一列在前一行(LAG)或后一行(LEAD)的值。这在分析时间序列数据、计算变化率或查找趋势时非常有用。LAG函数用于获取前一行的值。

2023-08-18 15:29:32 2073

原创 spark reducebykey和groupbykey 算子的区别

spark reducebykey和groupbykey 算子的区别

2022-09-19 13:22:34 233 1

原创 mapreduce的流程

MR流程:输入分片 —> map阶段 —> combiner阶段(可选) —> shuffle阶段 —> reduce阶段

2022-08-01 17:14:44 1336

原创 绕过线上SonarLint静态代码检查

上传代码时发现检查不通过提示启用CSRF防护,但启用防护后与代码逻辑不否,服务不能正常访问。解决策略:向报错的代码后面加上注释,绕过静态代码检查 // NOSONARpublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disa

2021-09-15 10:28:11 526

原创 java 木棒拼图

有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形。初始集合是空的,有两种操作,要么给集合添加一个长度为L的木棒,要么删去集合中已经有的某个木棒。每次操作结束后你都需要告知是否能用集合中的这些木棒构成一个简单多边形。*//输入51 11 11 12 11 2输出NoNoYesNoNo/*/*判断几条棍子能否组成面积大于0的简单多边形只需满足一个条件:

2021-08-04 15:02:10 135

转载 impala和hive的对比。

1.HiveHive: hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。Hive支持HSQL,是一种类SQL。也正是是由于这种机制导致Hive最大的缺点是慢。Map/reduce调度本身只适合批量,长周期任务,类似查询这种要求短平快的业务,代价太高。Map/reduce为什么只适合批量任务,这里不解释,建议大家看下相关原理,业界对这快的分析比较多,由此也诞生了spark等一系列解决方

2021-08-04 14:58:50 2210 1

原创 JAVA实现CSV文件转JSON。

JAVA实现CSV文件转JSON。CSV文件一般是以逗号为分隔值的文件(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。示例如下{"name": "John Doe", "age": 18, "address": { "country" : "china", "zip

2021-07-29 19:43:41 3215 1

原创 数据库事务问题

1. 数据库事务正确执行的四个基本要素(事务的四个属性)。事务是由一组 SQL 语句组成的逻辑处理单元。     ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、 持久性(Durability)。     原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成, 不会结束在中间某个环节。事务在执行过程中发生错误,会被 回滚 (Rollback)到事务开 始前的状态,就像这个事务从来没有执行过一样。     一致性:

2020-09-05 12:02:20 289 1

原创 DNS寻址流程?

DNS 域名系统维护了,域名和IP的映射关系。1、在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域

2020-08-25 22:36:49 874

原创 Java内存模型 JVM内存结构

Java内存模型起因我们写程序,为什么要考虑内存模型呢,缓存一致性问题、内存一致问题是硬件的不断升级导致的。解决问题,最简单直接的做法就是废除CPU缓存,让CPU直接和主存交互。但是,这么做虽然可以保证多线程下的并发问题。但是,这就有点时代倒退了。所以,为了保证并发编程中可以满足原子性、可见性及有序性。有一个重要的概念,那就是——内存模型。即为了保证共享内存的正确性(可见性、有序性、原子性),需要内存模型来定义了共享内存系统中多线程程序读写操作行为的相应规范~JMMJava内存模型是根据英文Ja

2020-08-23 00:58:50 193

原创 理解springMVC

springmvc是什么?在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错。还是为了组内开发人员之间的配合。总之就是一种分层工作的办法springmvc是spring框架的一个模块。springmvc是一个基于mvc的web框架。springmvc的流程?用户向服务器发送请求,请求被前端控制器Servelt DispatcherServlet捕获;DispatcherServl

2020-08-20 00:14:57 124

原创 使用IDEA插件Alibaba Cloud Toolkit部署本地项目到阿里云服务器

使用IDEA安装和配置Cloud Toolkit1在idea上安装Alibaba Cloud Toolkit插件file-> seting -> plugins,找到阿里云插件下载重启idea应用2.配置Cloud Toolkit插件中的Accout信息在阿里云中获取用户AccessKey相关信息(AccessKey ID、 Access Key Secret)部署项目...

2020-08-15 22:02:27 322

原创 常见排序算法java实现及时间空间复杂度。

//升序public class Sort { //1.插入排序 //时间复杂度 N^2 空间复杂度 O(1) 稳定排序(相等数据排序前跟排序后,相对位置是不变的) public static void insertSort(int[] array) { for (int bound = 1;bound < array.length;bound++) { //已排序区间为[0,bound) //

2020-08-13 13:31:23 286

原创 非递归实现先序遍历二叉树。

使用栈进行非递归先序遍历public List<Integer> preorderTraversal(Node root) { List<Integer> result = new ArrayList<>(); Stack<Node> stack = new Stack<>(); if(root == null) { return result; }

2020-08-10 00:01:46 193

原创 理解JVM和GC

JVMJVM内存划分?程序计数器,虚拟机栈,本地方法栈,堆,和方法区。其中堆和方法区线程共享。Java运行时的数据区包括:(其中前两个是线程共享的)1.方法区(Method Area) 存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据2.堆(Heap) 存放对象实例,几乎所有对象实例都在这里分配内存3.虚拟机栈(VM Stack) 描述的是Java方法执行的内存模型:每个方法在执行的同时会创建一个Stack Frame(方法运行时的基础数据结构)用于存储局部变量表、操

2020-08-03 18:00:44 300

原创 idea 快速生成代码块 快速构造get set方法

快速生成代码块选定代码块 Ctrl + Alt + T快速构造 get set 方法Alt + Insert

2020-07-28 15:40:04 963

原创 java DBUtil 数据库连接

package util;import java.sql.Connection;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;// 管理数据库连接// 1) 建立连接// 2) 断开连接//

2020-07-27 23:47:44 308

原创 centOS 7(linux)通过yum 命令安装 MariaDB(mysql)

以下操作都以 root 用户进行操作!!!安装安装 mariadb 服务 yum install -y mariadb-server安装 mariadb 命令行客户端 yum install -y mariadb安装 mariadb C library yum install -y mariadb-libs安装 mariadb 开发包 yum install -y mariadb-devel更改配置更改 /etc/my.cnf.d/client.cnf 文件(可以使用 vim

2020-07-27 01:13:58 189

原创 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。

开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如:A10;S20;W10;D30;X;A1A;B10A11;;A10;处理过程:起点(0,0)A10 = (-10,0)S

2020-07-19 22:18:02 366

原创 IP地址192.168.48.10,掩码为255 255.255.128,其所在的子网为(),广播地址为),有效的主机IP地址范围从()到().

某IP地址192 168 48.10,掩码为255 255 255.128,其所在的子网为(),广播地址为(),有效的主机IP地址范围从()到().子网掩码255.255.255.128就是255.255.255.10000000,即/25。所以网络位是25,主机位是32-25=7 。(1)求子网,就用IP地址"按位与"子网掩码。子网地址=192.168.48.00001010 & 255.255.255.10000000 = 192.168.48.0(2)求广播地址,就只将主机位全部置为

2020-07-18 21:26:11 5051

原创 java 使用 map 进行计数

1.使用containsKey()Map<String, Integer> map = new HashMap<>();for (String word : words) { if (map.containsKey(word)) { map.put(word, map.get(word) + 1); } else { map.put(word, 1); }}2.使用get() / getOrD

2020-07-18 00:07:55 2467

原创 cookie是什么,cookie和session有什么区别?

什么是cookie?cookie实际上就是一串文本信息(字符串).cookie是从哪来的?从服务器来的,浏览器访问服务器时服务器会在header中引入 set-cookie字段,对应的值保存在浏览器中.cookie存在哪里?浏览器上,按照域名和地址分别储存(同一网页不同浏览器的cookie不会共享)cookie如何使用?当浏览器后续访问相同域名或地址是会在http请求中自动带上cookie字段,供浏览器进行相应解析处理.cookie被用来保留访问者信息,实现一些操作等比如免密登录.cook

2020-07-16 00:31:57 241

原创 TCP协议和UDP协议的区别

TCP(Transmission Control Protocol,传输控制协议)UDP(User Data Protocol,用户数据报协议)1.TCP协议是面向字节流,而UDP是面向数据报2.TCP是有连接,通过三次握手建立连接,四次挥手断开连接,而UDP是无连接的.3.TCP是可靠传输,有应答确认,超时重传机制,UDP是不可靠传输,有可能会丢包,而且发送端和接收端无法感知.4.但UDP的传输速率高和系统开销少,在某些对高速传输和实时性要求较高的通信领域也有应用, 例如, 早期的QQ, 视频传

2020-07-14 00:47:11 238

原创 某公司申请到一个C类IP地址,但要连接6个的子公司,最大的一个子公司有 26台计算机,每个子公司在一个网段中,则子网掩码应设为?

因为一个子网中有26台机器,那么子网的主机地址数量必须大于等于26,由于16=24<26<25=32,最少使用5位表示主机号,那么其它各位表示网络号,全1,即(11111111 11111111 11111111 111 00000)b,转换成点分10进制:255.255.255.224...

2020-07-13 23:56:10 44794

原创 当我们在局域网内使用ping www.nowcoder.com时,哪种协议没有被使用?

A. ICMPB. ARPC. DNSD. TCP1、因为ping的话 后面跟的是地址,所以要先将域名转换为ip地址,即用到了DNS2、获取到ip地址后,在数据链路层是根据MAC地址传输的,所以要用到ARP解析服务,获取到MAC地址3、ping功能是测试另一台主机是否可达,程序发送一份ICMP回显请求给目标主机,并等待返回ICMP回显应答,(ICMP主要是用于ip主机、路由器之间传递控制信息,控制信息是指网络通不通,主机是否科大)4、TCP的话,不涉及数据传输,不会用到...

2020-07-13 23:22:25 4230 1

原创 主机甲和乙已建立了 TCP 连接,甲始终以 MSS=1KB 大小的段发送数据,并一直有数据 发送;乙每收到一个数据段都会发出一个接收窗口为 10KB 的确认段。若甲在 t 时刻发生超 时时拥塞窗口为

**1、把慢开始的门限值设为当前窗口的一半,即ssthresh=1/2 *8KB=4KB,2、把拥塞窗口cwnd设置为1个最大报文段MSS大小,3、再次从慢启动阶段开始。发生拥塞后开始慢启动 cwnd=1KB,之后呈指数增长。经过1个RTT cwnd=2^1=2KB经过2个RTT cwnd=2^2=4KB, 此时到达门限值ssthresh,之后 进入拥塞避免 阶段经过3个RTT cwnd=4+1=5KB , 由于题目说之后.

2020-07-11 23:04:02 14043 11

原创 主机的IP地址为180.80.77.55,子网掩码为255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是

由子网掩码255.255.252.0(11111111.11111111.11111100.00000000)可知网络为连续的1,那么主机位为连续的0,也就是10位,然后题目要发送广播分组,所以求的是广播地址,广播地址的主机位也是全为1,所以主机180.80.77.55所在的广播地址就是 180.80.010011(11.11111111),括号里面的是主机号,主机号全为1就是广播地址,即180.80.79.255...

2020-07-11 22:41:27 30599 1

原创 java 锤子剪刀布(20)

import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Question1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); Model mA = new Mo.

2020-07-10 16:44:33 123

原创 IDEA 使用maven 将maven源改为国内阿里云镜像

由于众所周知的原因,maven的库在中国大陆非常慢当我们把maven库改成了阿里云库速度将会上升一个台阶首先找到settings.xml的路径 ,创建时候就会有修改文件,如果没有自己在路径上创建一个(无脑复制替换就行)<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http

2020-07-10 14:24:39 1943

原创 java 使用http协议实现登录及免密登录(使用cookie)

http服务器主类import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;import java.util.HashMap;import java.util.UUID;import java.util.concu

2020-07-03 22:50:50 2224

原创 java实现单例模型(懒汉模式,饿汉模式)

单例模式确保一个类只有一个实例饿汉模式public class TestThread1 { //单例模式 - 只允许类被实例化一次 //饿汉模式 static class Singleton { private Singleton () { } //private关键字修饰使得其他类中只能通过 getInstance方法得到一相同的 Singleton实例 private static Singleton inst

2020-06-16 00:07:09 173

原创 java实现生产者消费者模型

生产者消费者模型生产者消费者模型,是通过一个容器来解决生产者和消费者的强耦合问题。通俗的讲,就是生产者在不断的生产,消费者也在不断的消费,可是消费者消费的产品是生产者生产的,这就必然存在一个中间容器,我们可以把这个容器想象成是一个货架,当货架空的时候,生产者要生产产品,此时消费者在等待生产者往货架上生产产品,而当货架满的时候,消费者可以从货架上拿走商品,生产者此时等待货架的空位,这样不断的循环。那么在这个过程中,生产者和消费者是不直接接触的,所谓的‘货架’其实就是一个阻塞队列,生产者生产的产品不直接给消费

2020-06-15 23:57:08 156

原创 java线程池实现练习

线程池创建线程还是比较简单的,但是由于线程的创建和销毁需要耗费一定的开销,过多的使用线程反而会造成内存资源的浪费,从而影响性能,出于对性能的考虑,于是引入了线程池的概念。线程池并不是在 CLR 初始化的时候立刻创建线程的,而是在应用程序要创建线程来执行任务的时候,线程池才会初始化一个线程,初始化的线程和其他线程一样,但是在线程完成任务之后不会自行销毁,而是以挂起的状态回到线程池。当应用程序再次向线程池发出请求的时候,线程池里挂起的线程会再度激活执行任务。这样做可以减少线程创建和销毁所带来的开销。简单说:

2020-06-15 23:47:41 373

原创 java 加锁使用 synchronized 关键字解决线程不安全问题

public class TestThread5 { static class Counter2 { public int count = 0; public int count2 = 0; //synchronized 关键字进行加锁操作 //synchronized可以对某个对象进行加锁 //进入increase方法会尝试加锁 方法执行完毕会解锁

2020-06-07 23:33:06 246

原创 java线程不安全原因分析

public class TestThread4 {//创建两个线程都把变量值自加50000次 static class Counter { public int count = 0; //没有加锁 线程不安全 (多线程并发执行时产生了逻辑上的错误) //不安全原因 //1.线程是抢占式执行的 //2.自增操作 不是原子性的 // 每次++都可分为 三步 // 1)load 把数据加载到

2020-06-07 22:41:28 439

原创 java实现 左右括号是否匹配 —牛客网

public static boolean chkParenthesis(String A, int n) { //运用一个栈来进行操作 Stack<String> stack = new Stack<>(); for (int i = 0; i < n; i++) { if(("" + A.charAt(i)).equals("(")) { stack.push("" + A.char.

2020-06-05 15:49:04 346

原创 java实现 读入一个字符串输出最长的数字串 —牛客网

public static void main(String[] args) { //读入一个字符串输出最长的数字串 Scanner scanner = new Scanner(System.in); while(scanner.hasNext()) { String s = ""; int size = 0; int length = 0; String str

2020-06-05 15:46:33 423

空空如也

空空如也

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

TA关注的人

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