- 博客(44)
- 资源 (2)
- 收藏
- 关注
原创 2024java面试题
1、互斥条件:至少有一个资源是被独占的,即在一段时间内只能被一个线程使用。2、持有并等待条件:一个线程在持有至少一个资源的同时,又申请获取其他资源,并且该资源已被其他线程持有。3、不可抢占条件:资源不能被强制性地从持有它的线程中抢占,只能由持有它的线程显式地释放。4、循环等待条件:存在一个线程链,每个线程都在等待下一个线程所持有的资源。一定时间内将内存数据以快照形式保存到硬盘中优点:恢复大的数据集时,比AOF快缺点:不安全,数据会丢失。
2024-09-02 17:27:14
422
原创 java面试八股文
基本数据类型,如int,float,double,boolean,char,byte,不具备对象的特征,不能调用方法。装箱:将基本类型转换成包装类对象拆箱:将包装类对象转换成基本类型的值java为什么要引入自动装箱和拆箱的功能?主要是用于java集合中,List list=new ArrayList();list集合如果要放整数的话,只能放对象,不能放基本类型,因此需要将整数自动装箱成对象。
2024-04-26 15:30:56
703
原创 java中BigDecimal的介绍及使用
BigDecimal是Java在java.math包中提供的线程安全的API类。BigDecimal是Java中用于表示任意精度数字的类,它可以表示无限长度的小数,BigDecimal 通常支持任意位数的小数部分,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。
2023-11-28 13:35:56
130
原创 java.lang.ArrayIndexOutOfBoundsException: (数组越界异常)
当我们访问数组中不存在的索引位置时,就会触发这个异常。数组基础知识回顾:首先,我们需要了解一些数组的基础知识。在Java中,数组是一种用于存储多个相同类型数据的数据结构。我们可以通过定义、声明和初始化来创建一个数组。数组的长度表示其中元素的个数,而数组的索引表示元素在数组中的位置。需要注意的是,Java中的数组索引是从0开始计数的。
2023-11-22 15:13:20
947
原创 Java异常处理机制
在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常(开发过程中的语法错误和逻辑错误不是异常)。Java程序在执行过程中所发生的异常事件可分为两类:Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。
2023-11-22 15:08:04
261
原创 JSP的学习
JSP(全称 Java Server Pages)Java 服务端页面技术,是 JavaEE 平台下的技术规范。它允许使用特定的标签在 HTML 网页中插入 Java 代码,实现动态页面处理,所以 JSP 就是 HTML 与Java 代码的复合体。JSP 技术可以快速的实现一个页面的开发,相比在 Servlet 中实现页面开发将变得更加容易。3、请求转发案例需求:在 Servlet 中获取客户端浏览器所支持的语言,并通过 JSP 页面将客户端浏览器所支持的语言响应给客户端浏览器。
2023-10-23 14:38:40
160
原创 MySQL事务隔离级别
在关系型数据库中,事务隔离级别是指多个并发事务之间的隔离程度MySQL 中事务的隔离级别一共分为四种,分别如下READ-UNCOMMITTED(读取未提交) : 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。READ-COMMITTED(读取已提交) : 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。
2023-09-14 10:32:59
457
原创 如何写好代码
那种领域特定语言的一个部分,就是描述在系统中发生的各种行为的函数层级。在一种获猾的递归操作中,这些行为使用它们定义的与领域紧密相关的语言讲述自己那个小故事。这并非是要退回到最初设想的那种认为需求文档中的名词和动词就是系统中类和函数的可怕的旧观念。如果你遵循这些规则,函数就会短小、有个好名字,而且被很好地归置,不过永远别忘记,真正的目标在于讲述系统的故事,而你编写的函数必须干净利落地拼装到起,形成一种精确而清晰的语言,帮助你讲故事.能告诉你,只是展示好程序员的思维过程,还有他们使用的技巧、技术和工具。
2023-09-07 13:47:12
206
原创 JAVA的异常处理
程序开发中,一定会有一些错误是和具体的业务相关的,这种错误JDK是不可能提供相应的异常类,此时就需要继承已有异常类,产生自定义异常类自定义异常类需要继承Exception父类-受查异常下面展示得是若以框架的异常处理/*** 业务异常*//*** 错误码*//*** 错误提示*//*** 错误明细,内部调试错误* 和 {@link CommonResult#getDetailMessage()} 一致的设计*//*** 空构造方法,避免反序列化问题*/
2023-09-06 17:24:43
198
原创 SpringBoot拦截器
拦截器(Interceptor):是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行(类似有保安拦截检查,正常才通过)假设controller层抛了异常,在这里是可以拿到异常对象的,但是我们有异常处理机制,所以这里就没有那么大的需求了。封装了SpringMVC进行页面跳转的相关数据,但是我们现在都是反JSON,一般不会这么搞了。afterCompletion: 与配置顺序相反,可能不运行。通过这个ex可以拿到原始的程序执行过程中出现的异常的。response:响应对象。
2023-09-01 17:16:52
65
原创 springboot测试实践
编写测试的时候,我们必须保证外部依赖行为一致,也需要模拟一些边界条件,所以我们需要使用 Mock 来模拟对象的行为。SpringBoot 提供了 @MockBean 和 @SpyBean 注解,可以方便地将模拟对象与 Spring 测试相结合,简化测试代码的编写。
2023-08-24 10:07:51
70
1
原创 websocket
ServerEndpoint(“/im/{id}”)这个是websocket的注解。因为不是正式的就没有出现用户添加好友的部分就只有发送消息的,所以就需要获取用户列表。未在线的是发不过去的,所以将未发送的消息存储起来。用户这是为了区分发送的消息是给谁的和谁发的。当用户上线后进行发送未发送的消息。
2023-07-20 15:23:57
263
1
原创 SpringBoot的自定义拦截器接口加密
因为要保证接口的安全性,使用接口加密可以预防系统攻击,导致数据破环。是因为可以在进入接口前进行拦截。市面上有很多种数据加密的方式。
2023-07-05 11:39:59
193
1
原创 从学习Stream流到出家
使用distinct()方法对流中的元素进行去重操作,返回一个新的不包含重复元素的Stream流collect。具体来说,它使用了 noneMatch() 方法匹配列表中的所有元素,并依次对每个元素执行指定的谓词操作(这里是以 “E” 开头),只有当所有元素都不符合条件时,才返回 true,否则返回 false。具体来说,它使用了 anyMatch() 方法匹配列表中的所有元素,并依次对每个元素执行指定的谓词操作(这里是以 “B” 开头),只要有一个元素符合条件,就返回 true,否则返回 false。
2023-06-27 10:36:10
65
1
原创 有用的技术
注:appid和secret要求对应,code是对应的小程序。注:手机号破解要求数据请求回来的数据是一起的,不然破解失败。注:token有失效时间。
2023-06-20 16:40:50
64
原创 前端入门到转行
Ajax(Asynchronous JavaScript and XML),可以理解为JavaScript执行异步网络请求。通俗的理解的话就是,如果没有Ajax技术,改变网页的一小部分(哪怕是一行文字、一张图片)都需要重新加载一次整个页面,而有了Ajax之后,就可以实现在网页不跳转不刷新的情况下,在网页后台提交数据,部分更新页面内容。
2023-05-30 17:26:57
360
原创 PPT、PDF转图片
dpi越大占用内存越大,转换时间越长,显示效果越来好,dpi越小内存占用越小,转换时间越短,显示效果越小。会出现效果文字缺失掉的情况。坑点这个方法会使一部分的字体变成乱码和样式发生改变这个技术是没有办法避免的,可以将ppt转成pdf在进行转图片。如果使用源文件的文件大小做为长度和宽度的话就会使文件模糊,可以将长和宽*一个整数将她扩大。
2023-05-22 22:00:00
75
原创 若依框架后端
生产了一个分页参数,但是没有被消费,这个参数就会一直保留在这个线程上。当这个线程再次被使用时,就可能导致不该分页的方法去消费这个分页参数,这就产生了莫名其妙的分页。在实际开发中经常需要使用导入导出功能来加快数据的操作。在项目中可以使用注解来完成此项功能。在需要导出实体类属性添加@Excel注解。原因分析:只对该语句以后的第一个查询。但是会出现一些问题使分页失效。原因分析:这种情况下由于。语句得到的数据进行分页。
2023-02-19 15:47:52
419
原创 java面试题
控制反转 ,是一种设计思想,DI是实现Ioc的一种方式,它是传统上程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的控制反转概念就是对组件对象控制权的移交,从程序代码本身移交给外部容器。一般称为面向切面编程,作为面向对象的一种补充,用于将那些于业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”,减少了系统中的重复代码,减低了模块间的耦合度,同时提高了系统的可维护性。
2022-11-30 22:07:54
364
原创 alibaba的重点
一个简易于构建云原生应用的动态服务发现、服务注册和服务管理平台ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer 获取到服务提供的所有机器实例,Ribbon 会自动基于某种规则去调用这些服务,Ribbon也可以实现我们的负载均衡算法。Feign 是Netflix开发的声明式、模块化的HTTP客户端seate是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。
2022-11-28 17:41:06
843
原创 spring cloud alibaba
随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构—>垂直应用架构—>分布式架构—>SOA架构—>微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。接下来我们就来了解一下每种系统架构是什么样子的, 以及各有什么优缺点。Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发微服务架构的必需组件,方便开发者。
2022-11-15 23:26:08
128
原创 redis秒杀
三步:判断库存、判断是否已经秒杀到了、减库存下订单(事务)。出现的问题在同一时间多个请求,请求同一个接口,接口同时运行同时去范围同一个商品出现的原因:因为在同一时间访问的用户的库存都是一个,都去购买了同一件商品库存没有减少库存(1)减库存SQL,加上库存是否小于零的条件。(2)订单表结构增加唯一索引(用户id和秒杀商品id),防止一个用户下多次单。(3)减库存这个操作的返回值为1的时候才继续后面的下订单,否则会出现生成的订单数量远远多于卖出商品的数量。synchronized中文意思是同步,
2022-11-02 21:59:23
275
原创 redis
Nosql是一个概念,泛指非关系型数据库。有时称为“Not only SQL”不仅仅是sql,包括但不限于键值存储数据库、文档型数据库、搜索引擎数据库、列存储数据库、图形数据库易扩展、大数据量,高性能、灵活的数据模型、高可用redis键值存储数据库MongoDB文档型数据库Elasticsearch搜索引擎数据库HBase 搜索引擎数据库Neo4J图形数据库中文文档使用场景自增自减设置过期时间mset mget操作添加获取对象、getset操作List使用场景lpop (左移除
2022-08-29 17:35:11
389
原创 spring
2002,首次推出了Spring框架的雏形:interface21框架!Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日发布了1.0正式版。spring:理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架!spring中文官网ioc不是一种技术,而是一种设计思想,DI是实现IoC的一种方法。它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。.........
2022-08-18 08:41:34
136
原创 C语言学习
LXY一、 C语言的特点二、 基本数据类型a) 基本数据类型:基本数据类型最主要的特点是,其值不可分解为其他类型。也就是说,基本数据类型是自我说明的。c) 指针类型:指针是特殊的,同时又是具有重要作用的数据类型。其值用来表示某个变量在内存存储器中的地址。虽然指针变量的取值类似于整型量,但这两个类型完全不同的量,因此不能混为一谈。d) 空类型:在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明,例如在例题中给出max函数定义中,函数头为:in
2022-03-30 20:04:00
603
原创 分布式数据库
HBase,非关系型数据库,NoSQL非关系型和关系型数据库最大的区别就是sql语句能不能用关系型数据库的瓶颈:当我们的数据达到几千万甚至几亿级别的时候,对于数据的单条查询的检索就会花费很多时间,查询的速度会受到以下两个因素影响:高并发的更新、插入、修改……多表关联后的复杂查询,性能实际上是下降的CAP定理C:一致性A:高可用性P:高容错性HBase遵循的就是CAHBase支持海量的数据的实时读写分布式K键V值列示储存索引,lSM树很吃内存布隆过滤器(查询)总结:
2022-02-24 09:43:09
1243
原创 Flink学习笔记
@pocFlink学习笔记转换算子1.map一进一出 消费一个数据产生一个数据`val value = env.addSource(new FlinkKafkaConsumer("test", new SimpleStringSchema(), properties)).map(word => (word, 1))`2.flatMap消费一个数据经过处理可能产生零个或多个数据3.filter过滤算子 满足条件的数据保留不满足的舍弃4.KeyBy逻辑地将一个流拆分成不相交的分
2021-11-20 14:58:38
103
原创 hive数据仓库
hive数据仓库1.启动hadoopstart-all.sh2.开启mysql服务service mysqld start3.启动hivehive4.hive的操作(1)创建数据库create database 库名 comment '备注';(2)查找hive数据库show databases; //列出所有数据库show databases link 'f.*'; //查询f开头的数据库(3)设置属性信息使用WITH DBPROPERTIES参数创建一个
2021-11-20 11:44:01
1504
原创 Flink
Flink学习笔记转换算子1.map2.flatMap3.filter4.KeyBy5.滚动聚合算子(Rolling Aggregation)sum()min()max() (只替代对应的字段)minBy()maxBy() (对应的一条数据都取出来)6.Reduce7.split和selectsplitselect8.Connect和CoMapConnectCoMapflink的window机制窗口描述窗口的分类1.基于时间的窗口滚动窗口滑动窗口会话窗口全局窗口2.基于元素个数的3Window F
2021-11-08 19:47:14
671
1
原创 vue_echarts可视化
vue-echarts始准备环境:1.安装 node2.vuecli:vue 脚手架安装查看:3.创建vue项目4.vscode编译器打开项目,必须是上面那个项目名程所对应得文件夹5.查看vue项目结构6.vue项目支持库7.vue项目的运行开始编写代码一、html和css始准备环境:1.安装 nodenode下载链接在cmd中去敲查看: node --versionnpm --version升级:npm i -g npm2.vuecli:vue 脚手架安装vue install -
2021-10-18 13:43:44
801
2
原创 Flume的相关配置项
Flume的相关配置项配置项配置项说明agent.sources=r1输入端,名称为r1agent.channels=c1传输通道,名称为c1agent.sinks=s1输出端,名称为s1小面是source配置部分agent.sources.r1.type=netcat设置输入端r1的类型为netcat,接受命令输入...
2021-10-17 20:02:16
115
原创 MYSQL
创建数据库Create database 数据库名称再创建一个同名的数据库Create database if not exists 数据库名称查看数据库Show database查看指定数据库的创建信息Show create database 数据库名称选择数据库Use 数据库名称删除数据库Drop database 数据库名称创建数据表Create table 表名查看数据表Show table 查看数据表相关信息Sh
2021-10-15 15:44:16
93
原创 ECharts的图表
ECharts的图表折线图和柱形图left 的配置top的配置xAxis.type的配置饼图left的配置tooltip.trigger的配置legend. orient的配置series:[{name}]配置series:[{redius}]配置series:[{data[]}]的数据seriespie.emphasis.itemStyle.shadowBlur的配置series-pie.emphasis.itemStyle. shadowBlur、shadowColor、shadowOffsetX的配置
2021-10-10 14:30:00
174
原创 Flak可视化
Flak可视化工具:Python Flask——后台html+css——前台页面js(ajax)——前后台数据通信mysql——存放数据echart实现各种图形绘制
2021-09-26 14:39:25
161
原创 java常用类
JAVA 常用类常异常A:异常处理的两种方法a:try catch finallyB:try catch处理异常的基本格式C:案例演示A:案例演示A:编译期异常和运行期异常的区别Throwable的几个常见方法a:getMessage()b:toString()c:printStackTrace()A:throw的方式处理异常B:案例演示A:finally的特点B:finally的利用C:案例演示题1.题2A:异堂注意事项a:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了儿子不
2021-08-20 20:17:29
78
原创 spark练习
Spark练习任务一:任务二:任务三:任务四:任务五:任务六:综合案例任务一:val rdd= sc.parallelize(List("dog","an","cat","an","cat"))第一步:通过获取rdd中每个元素的长度创建新的rdd1val rdd1 =rdd.map(x=>x.length())rdd1.collect第二步:通过zip把rdd1和rdd组合创建rdd2val rdd2 =rdd.zip(rdd1)rdd2.collect第三步:去重val
2021-08-10 16:36:05
2448
原创 python数据采集
这次的爬虫是需要账户的所以h是使用的Request Headers中的数据keyword = input("请输入查询的职务")# 数据采集h = {q=0.01',q=0.9,en;login=true;A Brand";# 定义post方式参数'pn': num,# 向服务器发送请求# 下载数据# 解析数据# 建立链接# sql# 创建游标并执行try:except:# 设置时间延迟。
2021-08-08 15:11:19
6415
redis秒杀源码用到了mq+redis+springcloud alibaba+jpa
2022-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人