- 博客(102)
- 收藏
- 关注
原创 linux(centos) 环境部署,安装JDK,docker(mysql, redis,nginx,minio,nacos)
linux(centos) 环境搭建,安装jdk,docker(mysql,redis,nginx,minio,nacos等)
2024-11-29 15:15:53
1222
原创 开发笔记:uniapp+vue+微信小程序 picker +后端 省市区三级联动
例如前端要展示“福建省-厦门市-集美区“直接根据分割截取就行12,1,3:代表选择数据 对应项中的第几个:代表选择省跟市的id这两个数组串 主要是回显数据用 ,如下,点击展开回显。
2024-08-13 16:20:34
956
原创 开发笔记:前端 blob 浏览器内存二进制文件对象 文件上传(vue+springboot)
【代码】开发笔记:前端 blob 浏览器内存二进制文件对象 文件上传(vue+springboot)
2024-06-24 13:28:15
282
原创 JMH:让你的Java程序性能翻倍的神器
为什么拼接大量字符串,StringBuilder 比String 效率高 无论你是想优化现有的Java代码还是开发新的项目,JMH都能够帮助你准确、可靠地测量和分析代码的性能,让我们一起来探索JMH的神奇之处吧!JMH是由OpenJDK团队开发的一款专业的基准测试工具,旨在提供一个可靠的测试框架,帮助Java开发者进行代码性能的评估和优化。JMH是一款功能强大的Java性能测试工具,它能够帮助开发者准确、可靠地评估代码的性能,并为性能优化提供参考。
2023-10-20 09:53:22
818
原创 mybatis-plus 数据字段进行加解密入库,且加密字段支持模糊搜索
需求很简单: 就是将数据存储到数据库,并且将敏感数据字段进行加密处理保存(比如:身份证,手机号,银行卡 等等)需求也很变态:加密的数据要模糊搜素!!如果需求不需要模糊搜素,直接加密入库就完事了,直接看这篇文章mybatis-plus进行数据字段加密解密入库,就可以了!工具类import cn/**/*** iktry {Lexeme le;= null) {} /*** 部分分词} }/**/*** ik。
2023-09-09 15:39:11
2773
3
原创 JVM内存结构—— 程序计数器,虚拟机栈 解析
全称: Java Virtual Machine Stacks (java 虚拟机栈)线程运行时的内存空间,一个线程运行需要一个栈,多个线程运行则需要多个虚拟机栈虚拟机栈的组成: 一个虚拟机栈是由多个栈帧(Frame)组成每个线程只能有一个活动栈帧(对应着当前正在执行的方法)栈帧:每个方法运行时内存空间(方法内的方法参数,局部变量,返回地址等等都需要内存空间)一个栈内一个栈帧一个栈内多个栈帧。
2023-07-15 23:08:18
963
原创 JVM内存结构——前言
1. 一次编写,到处运行的机制 (因为java语言是跨平台的,跨平台就是在jvm这个层面进行实现的,jvm屏蔽了字节码以及底层操作系统的差异,对外提供一致的运行环境)2. 自动内存管理机制,垃圾回收功能(跟C语言对比,c语言需要程序员自己去释放内存)3. 数组下标越界检查 (跟c语言对比,C语言不会进行下标越界检查,需要程序员自己去检查)4. 多态(让程序代码可扩展性有巨大提升,jvm内部使用虚方发表机制实现多态)
2023-07-15 22:54:25
217
原创 mysql —案例复杂查询+索引使用+DBeaver中创建索引
接上章 我们 对一个简单的选课功能进行 设计分析实际上在工作中 拿到一个需求,也是这样的一个分析过程一个份 需求文档+原型 出来,只要是你负责这个模块,就需要你自己建表建库,设计接口文档,也许现在有的公司会有一个带你的大哥会帮你建表建库【甚至接口文档都帮你写好了,你只需要按照接口进行开发】,那也只是初步的【实习生】,到后面还是得靠自己再有的公司是需要开发人员写概要设计(里面就包含数据库设计)的 , 但总的来说是八九不离十,分析步骤还是一样的。
2023-07-07 10:18:47
2042
原创 mysql——数据库设计
之前我们已经了解了 mysql 的基本增删改查现在我们系统的进行一遍数据库的设计来个例子:下面我们将围绕这个例子来进行数据库的设计我们就来简单的模拟 大学教务处的选课 系统 中的 选课功能注意:简单的模拟,功能可能想到的没那么完善。
2023-06-30 10:17:03
1546
原创 mysql ——基本约束以及语法 以及 Dbeaver基本使用
说到约束,就不得不想到命名规范,跟java一样,mysql也有一套自己的命名要求库名尽量与业务名称一致,比如这是一个办公系统,你可以命名 将数据库命名为office, 多个单词组成全小写 例如:officeoa表名 不使用复数MySQL 5.7 Keywords and Reserved Words (官方列出的)
2023-06-29 13:55:32
1925
原创 java进阶—重要概念反射
反射: 它是java中的一个很重要的概念,是框架设计的灵魂框架呢?就是一个半成品软件,我们在这半成品上进行开发,比如我们经常提到spring springmvc springboot spingcloud 等等也许有的小伙伴会说,框架别人都写好了,我只要在上进行CURD就行了,还要学习反射干什么?,话是这么说,但知道反射,对于后续框架的学习与应用会更加得心应手。
2023-06-27 10:17:55
720
原创 java进阶—通俗易懂线程池的概念(底层原理)及使用
首先,我们知道创建一个线程 可以直接 使用这种形式来创建,当线程的run 方法执行结束,线程就终止了,线程对象就会被垃圾回收机制(GC)释放然而在我们 开发工作中,特别是一些大厂,高并发的情况随处可见,就需要很多线程来支撑,在没了解线程池之前,我们创建多个线程是这样的无非就是new多个,你要多少个我给你创造多少个要知道,在高并发的情况下,这样创建多线程是很消耗性能的,不可取,这就需要对线程进行统一管控,就引入了线程池的概念。
2023-06-27 09:57:01
234
原创 java进阶—代码演示多线程的生命周期
回顾一下到现在,我们已经知道了今天,我们一起来看看线程的生命周期,生命周期这个词在后续的javaweb 相关知识点中会经常提起知己知彼,想要用好线程,就得先了解它。
2023-06-26 14:09:14
203
原创 mysql——初步认识
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库说人话 就是 数据库是一个电子仓库,里面存了一些数据我们要学习的mysql就是数据库中的一种,并且是一种关系型数据库,当然有关系型就会有非关系型,这边不再过多赘述,参考这篇文章。
2023-06-26 13:59:54
483
原创 java(SpringBoot)中操作Redis的两种方式
之前我们介绍过了redis的五中基本类型以及在可视化界面进行操作,那么在开发中(在代码中)我们通常使用,jedis进行操作redis,要是springboot 项目,我们通常使用redisTemplte进行操作首先将redis启动。
2023-06-25 19:30:22
2351
原创 redis 的基本介绍以及 五种 数据类型
一句话:redis 是一个开源的、使用C语言编写的、支持网络交互,基于内存也可持久化的 key-value (非关系型)数据库redis作者博客,有兴趣的小伙伴可以去逛一逛:http://github.com/antirez。
2023-06-21 09:36:02
1514
1
原创 redis—安装以及可视化
redis 是一种非关系型数据库,什么是非关系型数据库,之前我们在mysql专栏 也有提到过,这边就不再过多的赘述,忘记了的小伙伴可以再次阅读这篇文章 终于明白了数据库的【关系型】与【非关系型】redis 是一种非关系型数据库,什么是非关系型数据库,之前我们在mysql专栏 也有提到过,这边就不再过多的赘述,忘记了的小伙伴可以再次阅读这篇文章其实这还是挺重要的,上次我们有个初级程序员来面试,我作为旁听,主考官就问了关系型数据库跟非关系型数据库,答的模棱两可,会的不多。
2023-06-21 09:22:35
3760
原创 java8 (jdk 1.8) 新特性——Stream ApI以及具体实例
简单来说就是一个类库,里边有一些方法方便我们对集合数据进行操作,就好像使用 SQL 语句进行操作数据库一样优点就是,使我们代码简洁更高效的处理数据,高效!!一个完成的stream 流操作包含以下内容一个数据源,数据源可以是集合,数组中间链的操作 (比如 过滤, 去重,排序 等等)终止操作,产生一个结果(比如重新收集成集合)userInfoList . add(new UserInfo(1 , "张三" , 23));
2023-06-19 16:24:17
1016
原创 java8 (jdk 1.8) 新特性—— 方法引用+构造器引用
其实就是,之前已经知道 Lambda 是作为一个函数式接口的实例 ,因此,方法引用也就是一个当要将值传给Lambda 体,已经有实现的方法,不用自己在lambda 体里边写多行逻辑代码接口中抽象方法的形参列表 和 返回值类 与 方法引用 的形参列表和返回值类型 相同要是对lambda 体 是什么,跟函数式接口不明白,可以先看看这篇篇文章,循序渐进,很简单,总体概括细分:对象 : : 非静态方法 (适用)类 : : 静态方法 (适用)
2023-06-19 11:56:08
844
原创 java8 (jdk 1.8) 新特性——Lambda 以及函数式接口
目前已知的是,有个箭头 ->说一大段官方话,也没有任何意义我们直接看代码:之前我们创建线程是这样的初次认识可能会觉得有点离谱,看不懂别急,还有更离谱的很常见的一个例子,比较两个整数的大小之前是这样写的甚至还可以这样 (这个是方法引用)第一个数比第二个数大 :返回 1小:返回 -1相等:返回 0刚接触是不是黑人问号,这是什么玩意很好,到这,你认识到了lambda 一个缺点,可阅读性差 ,优点 代码简洁小结:看到 -> lambda 看到 : : 方法引用。
2023-06-16 16:46:50
951
原创 java8 (jdk 1.8) 新特性 ——初步,发现不一样的新特性
用一个例子来说明:有这么24个篮球,编号分别为1-24,需要将篮球分成六组应该怎么分这还不简单 :编号 1 -4 第一组 5-8 第二组 9-12 第三组编号 13-16 第四组 17-20 第五组 21-24 第六组。
2023-06-16 10:58:08
969
原创 IDEA 开发必备神级插件
工欲善其事, 必先利其器” 分享几款 自用好用到起飞的 IDEA插件插件下载方式file->settings->plugins->macketplace—>然后搜索。
2023-06-13 17:32:36
1312
原创 Java 进阶—死锁造成原因及其解决
先举个通俗点的例子 小明跟小红分别同时参加两个会议,这时候办公室刚好只有一台笔记本(在小红手上),一台投影仪(在小明手上),这是两个都想要对方的东西,两人互不相让,开始争执,这样都开不成会议,就形成了死锁。今天我们来了解一下线程死锁,死锁很好理解,从字面上来看就是锁死了,解不开,在大街上看到一对卧龙凤雏的情侣,怎么说,你们给我锁死,不要分开去霍霍别人。把小明跟小红换成两个线程,所以,一句话,死锁就是两个或两个以上的线程争夺彼此的锁,造成阻塞。首先,死锁产生需要两个或者两个以上线程 (例子中的小明跟小红)
2023-06-08 11:31:06
1200
1
原创 Linux tomcat 8 配置访问本地文件,并且配置https
就可以通过 【http:// ip + 端口号+ tomcat配置的代理访问路劲+文件名】 来访问文件。这边注意打开 HTTP/1.1 下的注释配置,并且进行修改。keystorePass: 前边cmd回答问题的秘钥库口令。keystoreFile:生成的证书库文件地址。本地要有jdk 【已经配置好环境变量那些】一步一步回答问题,最后会在F 盘生成文件。端口号为配置的 8443 ,成功访问文件。
2023-06-07 15:53:32
1788
原创 java进阶—线程安全问题
就比如,快五一了,12306 购票,假设从北京到上海的 高铁票 一共只有200 张,现在3个人同时在线抢票,可以把一个人的app理解成一个线下窗口,这样在没有处理线程安全的情况下,就会出现抢到同一张票的可能性。比如,你去上厕所,一个坑位一个人,你刚蹲进去,刚好另一个人也很着急,他刚好也进去了,这就出事了,解决办法,是不是给厕所上了锁,你进去,锁住,别人只能等,等你出来他才能进去。这里先说明一点,这里加了sleep,并不说明 加了才出现 错票的线程问题,为了演示,我们只是把概率提升了,不加也会出现。
2023-03-07 16:18:30
506
原创 java 进阶—线程的常用方法
解析(看的懂得小伙伴可以略过): 我们在主线程中,直接加了 join, 所以得等主线程执行完成再执行主线程,由于我们是在主线程之后加的判断线程 thread-0是否存活,这时候 thread-0 已经执行完任务了,生命周期结束,所以此时的thread-0 已经终止了。举个例子:比如还是前面 thread-0 跟 主线程 抢占cpu执行权,现在我们在主线程中加一个 限制 条件,当主线程 循环到 10 时,让主线程进入阻塞状态,thread-0优先执行完,主线程再开始执行。今天,我们来看看线程的基础操作。
2023-03-02 16:47:12
397
原创 java进阶—多线程
学习线程,我们先来了解了解什么是进程?什么是线程:就是在操作系统中运行的程序:就是进程的一个执行单元,或者一条执行路劲比如:我们打开应用商店,这个应用商店就是一个进程,应用商店里面也可以同时下载很多应用,每个应用的下载就是线程一个进程至少有一个线程,一个进程里面如果有多个线程,我们称这个进程为多线程进程我们先来看看程序没有多线程是怎样运行的现在有一个售票的窗口 Ticket ,里面有可以买票的功能, 模拟两个人进行购票。
2023-03-01 16:54:45
316
原创 java进阶Map 集合
泛型里面,贴的标签是 键值对的类型 , ,括号里面的3 是设置这个Map 容器的大小 ,开发中一定要设置map的初始化大小,具体多少按需求而定。可以说HashMap在开发中最常用,代码中随处可见,创建也很简单,new 一个 ,一样的集合创造出来了,不用就浪费了。创建三个学生,有属性(姓名,年龄),给每个学生定义上整形编号, 保存在map中,并且遍历输出学生编号,姓名,年龄。可以看到,entrySet效率是最高的 forEach 效率是最低的。【最后来一个例子,加深对map集合的使用】
2023-02-23 09:28:58
492
原创 java进阶—一篇文章搞懂set 集合 及其底层实现
linkedHashSet (这个是HashSet的子节点),它是有序且唯一,底层结构为链表加哈希表,链表保证了元素有序(这个有序是顺序,不是排序的大小),有序是因为它在节点处增加了前和后 (属性维护节点的前后添加顺序)那如果我要找 16 号篮球球在哪个组呢?这数据才24, 要找到也方便,要是数据量变大,成百上千,分成多个组,要快速找到想要的编号在哪个组,就显得困难了。这要我们要找一个编号就很方便,比如找16,16%6 =4 16 在第四组 ,这种方式就是高效的散列,我们称之为Hash。
2023-02-03 16:55:03
1369
原创 java进阶—List
上节回顾List 是一个有序的,允许重复的Collection,其下的子类主要有 ArrayList LinkedList,Vector(这个官方不推荐使用)那么同为list的子类,ArrayList 跟 LinkedList 有什么区别呢?数组的角标从0 开始 这个我们之前已经知道了,数组的好处查询快,有角标直接定位就好了,但是增删的效率比较慢当进行删除一个元素操作时,其他元素需要向前或者向后移动。
2022-12-22 14:32:03
1767
原创 一篇文章彻底明白重要概念——注解
好,看不懂没关系一步一步慢慢来先不管注解,注释这个概念应该就很熟悉了,文档注释,单行注释,多行注释注释是对一段程序,一个方法,一个类进行描述,是给我们程序员看的,都知道,注解是不会被编译的,会被忽略注解,同样的道理,其实就是用来说明代码的,但是注解是 给计算机看的,是会被编译的因此: 注解概念:jdk1.5之后出现,是对程序进行说明,并且会被编辑,给计算机看的来看看toString 方法
2022-12-21 14:34:57
738
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人