- 博客(26)
- 收藏
- 关注
原创 Kafka报JAAS config entry not terminated by semi-colon信息
Kafka报JAAS config entry not terminated by semi-colon信息的解决方案
2024-11-14 08:56:12
387
1
原创 MultipartFile 对象
在这个示例中,我们使用 CommonsMultipartFile 类(或者 StandardMultipartFile 类)来创建 MultipartFile 对象,它接受一个 File 参数作为构造函数的输入,并自动处理文件内容的读取和上传。通常情况下,在 Spring 框架中处理文件上传时,我们会使用 StandardMultipartFile 类的实例来表示文件。
2023-11-16 15:57:49
2342
原创 函数式编程-Stream流
Lambda是JDK8中一个语法糖。可以看成是一种语法糖,他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。Java8的Stream使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合或数组进行链状流式的操作。可以更方便的让我们对集合和数组操作。函数式编程-Stream流1、概述1.1为什么学?1.2函数式编程1.2.1概念1.2.2优点2.Lambda表达式2.1概述2.2基本格式2.3Lambda省略规则。..
2022-07-19 15:10:41
933
转载 Mybatis的SQL注入
Mybatis的SQL注入在编写xml文件时,MyBatis支持两种参数符号,一种是#,另一种是$。比如:<select id="selectAll" resultMap="resultMap"> SELECT * FROM NEWS WHERE ID = #{id}</select>#使用预编译(防止SQL注入),$使用拼接SQL(后面拼接,会存在注入的问题)。Mybatis框架下易产生SQL注入漏洞的情况主要分为以下三种:1、模糊查询Select * fro
2021-09-20 10:10:04
215
原创 MybatisPlus --- 技术学习
对Mybatis做增强,简化开发1、创建数据库,创建数据库表#特性 无侵入 损耗小 强大的CRUD操作 支持Lambda形式调用 mybatis实现增删查改 查:selectList() 增:insert() #主键是MybatisPlus自动生成(19位) 主键上面加上注解: @TableId(type = IdType.AUTO)//自动增长 @TableId(type = IdType.ID_WORKER)//MybatisPlus自带策略,生成19位值,
2021-08-20 21:43:19
140
原创 Java数据类型
强类型语言要求变量的使用严格符合规定,所有变量都必须先定义后才能使用弱类型语言Java的数据类型分为两大类基本类型(primitive type)数值类型整数类型byte占1个字节,范围: -128~124short占2个字节,范围: -32768~32767int占4个字节,范围: -2147483648~2147483647long占8个字节,范围: -9223372036854775808~9223372036854775807long num = 30L;
2021-08-18 16:58:06
114
原创 标识符注意点
所有的标识符都应该以字母(A~Z 或者 a~z),美元符($),或者下划线(_)开始首字符之后可以是字母(A~Z 或者 a~z),美元符($)或下划线(_)的任何字符组合不能使用关键字作为变量名或方法名(***)标识符是大小写敏感的#合法标识符举例: age、$salary、#abc#非法标识符举例: 123abc、-salary、#abc可以使用中文命名,但是一般不建议这样去使用public static void main(String[] args) { ..
2021-08-18 08:08:54
107
原创 常用的dos命令
基本DOS命令#盘符切换 盘的目录:#查看当前目录下的所有文件 dir#切换目录 cd change directory cd ..返回上一级 cd /d C:\Users#清理屏幕 cls#退出终端 exit#查看电脑的ip地址:ipconfig#打开计算器 :calc#记事本:notepad#画图 :mspaint#ping 命令:可以得到IP地址#创建文件: md 目录名 rd 目录名#打开文件 cd> 文件名#删除文件
2021-08-17 19:57:51
77
原创 MarkDown学习
1、标题几个#号代表几级标题,中间用空格隔开2、字体粗体:前后各放两个**斜体:前后各方一个*斜体加粗:前后三个*删除线:前后波浪线~3、引用> :大于号加空格分割线:---4、图片本地地址: 5、超链接[连接名字](连接地址)6、列表有序排序:1.无效列表:减号空格7、表格快捷键8、代码代码块:```javapublic```一行代码:`代码`...
2021-08-17 19:36:42
88
原创 JavaScript学习记录
1、初始JavaScriptJavaScript是一种运行在客户端的脚本语言(Script是脚本的意思)脚本语言,不需要编译1.1 浏览器执行Js简介 渲染引擎:用来解析HTML和CSS,俗称内核,谷歌浏览器的内核是Blink,老版本的webkit JS引擎:也称为Js引擎。用来读取网页中的JavaScript代码,对其处理后运行 浏览器本身并不会执行JS代码,而是通过内置JavaScript引擎(解释器)来执行JS代码。JS引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算
2021-06-17 14:09:04
112
原创 SpringBoot中邮件的使用
1.导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> &
2021-04-27 16:25:45
895
原创 IOC 和 DI的详细介绍
1、IOC是什么? IOC-Inversion of Control,即"控制反转",不是反转,而是一种设计思想。在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你对象的内部直接控制。 理解ICO的关键是明确"谁控制谁,控制什么,为何是反转(有反转就应该有正传了),哪些方面反转了?"。 谁控制谁,控制什么:传统JavaSE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IOC是有专门一个容器来创建这些对象,即由IOC容器来控制对象的创建而不在显
2021-04-18 22:05:03
264
原创 后端的数据传到前端
后端的数据传到前端接受的方式/** * 1、后端使用HttpServletRequest 使用request.setAttribute的方式,将数据传到前端,前端在requestScope中获取参数 * 2、后端设置HttpSession 使用session.setAttribute的方式,将数据传到前端,前端在sessionScope中获取参数 * @param session * @param request * @return */@RequestMapping("/testRet
2021-04-14 16:53:41
8885
2
原创 List去除重复数据的五种方式
List去除重复数据的五种方式a)使用LinkedHashSet删除arraylist中的重复数据 LinkedHashSet是一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事: 删除重复数据 保持添加到其中的数据的顺序 import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashSet; public class ArrayLis
2021-04-14 08:47:45
3227
原创 Properties属性集合类的遍历的方式、序列化和反序列化?UDP和TCP协议的区别、UDP发送端和接收端的步骤、BUfferedReader和BufferedWrite针对文本文
1、Properties属性集合类的遍历的方式 1)可以使用Map接口相关的功能 keySet()--->获取所有键的集合 entrySet()--->获取键值对对象 2)Properties特有功能 添加元素:setProperty(String key,String value) 获取所有键的集合:stringPropertyNames()--->Set<String> 通过键获取值:getProperty(String key)---->St
2021-03-02 10:16:31
162
原创 IO流的分类、针对文本文件的读写复制操作有几种方式、校验多线程安全问题的标准、TreeSet集合如何实现自然排序和选择器排序、线程的状态
1、IO流的分类按照数据流向 输入流 读入数据 输出流 写出数据按照数据类型 字节流 InputStream:字节输入流 FileInputStream:操作文件的字节输入流---读取数据 BufferedInputStream:字节缓冲输入流 只是提供缓冲区:针对文件的读的操作依旧使用的是上面的基本的字节输入流 OutputStream:字节输出流 FileOutputStream:操作文件的字节输出流---写入数据 BufferedO
2021-03-01 09:27:56
326
2
原创 同步机制、等待唤醒机制、sleep()和wait()、线程的状态、创建线程的方式
1、什么是同步机制?为了解决线程安全问题,多个线程并发执行,出现了字段访问冲突。synchronized基于jvm实现的------多个线程持有”锁标志“,通过同步代码块控制访问的字段。每一个线程持有的锁必须是同一个,当某个线程如果执行了并且进入到同步代码块中,其他线程在当前线程执行期间,不能持有该锁,,当前这个线程执行完毕,会释放”锁标志“,其他线程如果进入到同步代码块中,持有该同一个”锁“。 synchronized和Lock都属于可重入锁,Lock锁更灵活:lock()/unlock(),通用方
2021-02-25 09:40:16
455
1
原创 线程的生命周期---六种状态
NEW 初始状态,线程被构建,但是还没有调用start方法RUNNABLE 运行状态,java线程将操作系统中的就绪和运行两种状态笼统地称作“运行中”BLOCKED 阻塞状态,表示线程阻塞于锁WAITING 等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程 线程做出一些特定动作(或通知中断)TIME_WAITING 超时等待状态,该状态不
2021-02-24 09:37:23
115
原创 进程线程,创建线程的方式
1、进程和线程的概念进程:正在运行的程序,是系统进行资源分配和调用的独立单位,会创建系统资源(Process)线程:是进程中的单个顺序控制流,是一条执行路径,是进程的子集,有很多个线程组成2、创建线程实现方式有几种,请列举步骤两种: 1)继承关系 自定义一个类,继承自Thread类 重写Thread类中的run方法 在main线程中,创建该类对象,启动线程(start()) 2)实现Runnable接口的方式 自定义类实现Runnable接口 重写RUnnable接口中的r
2021-02-24 09:26:50
164
原创 List集合遍历方式,Map集合遍历方式
1、List集合遍历方式有几种,请举例1)Collection的toArray()------Object[] 将集合转换成数组2)Collection的通用迭代器的方式:Iterator it() boolean hasNext() Object next()3)size() 和get(int index):普通for循环的方式 4)列表迭代器:ListIterator listIterator() 5)增强for:替代迭代器的 for(c存储的数据类型 变量名 :集合对象
2021-02-24 09:19:18
161
原创 Map集合-TreeSet集合
Map集合:将键映射到值得一个对象,Map集合的键K不能重复Map集合针对键有效,跟值无关Map<K,V>和Collection的区别Map<K,V>存储键值对元素,通过键获取值,或者可以获取键值对对象Collection单例集合,存储的一些重复的元素/不重复的元素List/SetTreeSet/HashSet间接依赖于Map里面的TreeMap和HashMapMap集合的功能:添加元素V put(K key,V value) :添加键值对删除void clea
2021-02-22 19:19:08
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人