- 博客(34)
- 收藏
- 关注

原创 遍历map的几种方法
#先往map加入几个数据 Map<Integer,String> map=new HashMap<>(); map.put(1,"美好的周一"); map.put(2,"美好的周二"); map.put(3,"美好的周三");方法一:普通的foreach循环,使用keySet()方法,遍历keyfor(Integer key:map.keySet()){ System.out.println("key:"+key+
2020-08-02 14:28:34
127643
4
原创 idea解决中文乱码(包括tomcat)
解决Intellij IDEA控制台,logger.info(),system.out.println()等中文乱码问题(最完美篇)
2022-10-09 12:47:27
810
原创 synchronized锁和ConcurrentHashMap
synchronized锁的基本使用和ConcurrentHashMap的一些分析
2022-02-22 18:22:06
1483
原创 自定义注解
自定义注解的基础概念,通过自定义注解aop拦截业务实现日志加强,通过实现ConstraintValidator实现自定义注解来进行用户名重复校验
2021-11-16 20:02:16
338
1
原创 延时队列的使用及应用场景
一、 应用场景常见的打车软件都会有匹配司机,这个可以用延迟队列来实现;处理已提交订单超过30分钟未付款失效的订单,延迟队列可以很好的解决;又或者注册了超过30天的用户,发短信撩动等。二、技术选型(如何实现延时队列)1.通过实现Delayed接口2.redis,用数据结构为zset的来实现。给每个键都添加了一个score的元素,就是分数。我们可以拿时间戳当作score给这个key,然后通过zrevrange获取key的时候指定score范围即可。最简单的延迟队列,而且,吞吐量也不算特别小3.rabb
2021-11-13 15:10:34
5121
1
原创 java反射的三种方式以及一些常用方法
1.获取类的三种方式第一种:使用Class.forName(String classPath) //ClassPath:写需要反射的类名,一般是以包名.类名注意事项:这里会产生一个ClassNotFoundException异常,我们需要将异常处理或者抛出返回值:Class对象try { Class clz = Class.forName("com.entity.Book"); } catch (ClassNotFoundException e) { e.printSta
2021-09-24 14:53:11
10013
原创 解决tomcat日志乱码问题
1.首先打开tomcat的conf目录下的logging.properties根据编译码去切换,例如你的编译器是utf-8的话,你就可以不用改(里面默认的是utf-8),如果你的编译器是GBK的话,那就把utf-8全部替换成GBK。2.idea设置-Dfile.encoding=UTF-8接着打开help的VM Options最后重启idea就可以啦!...
2021-07-15 16:50:57
992
原创 SpirngCloud Alibaba Seata下载里面conf 的db_store.sql和db_undo_log.sql数据库文件
Seata里面conf 的db_store.sql和db_undo_log.sql数据库文件
2021-06-19 19:09:37
679
原创 java基础
1.java八大基本数据类型byte,short,char,int,float,double,long,boolean2.容器2.1 Set 无序的、不包含重复的HashSet:以哈希表的形式存放元素,插入删除速度很快TreeSet:在集中以升序对对象排序的集的实现,这意味着从一个TreeSet对象获得第一个迭代器将按照升序来提供对象,TreeSet类使用了一个TreeMap。当需要从一个Set集合中以有序的方式抽取元素时,TreeSet实现会有用处,为了能顺利进行,添加到TreeSet的元素必
2021-06-03 14:55:32
53
原创 zookeeper下载安装使用
先准备安装包,这里我推荐在Apache官网下载(地址:https://zookeeper.apache.org/releases.html)因此下载3.6.3第二步(开始安装)1.解压到常用的安装目录2.将conf目录下的zoo_sample.cfg文件,复制一份,重命名为zoo.cfg3.修改zoo.cfg配置文件,将dataDir=/tmp/zookeeper修改成zookeeper安装4.目录所在的data文件夹(需要在安装目录下面新建一个空的data文件夹和log文件夹),再添加一条添加
2021-05-20 16:20:53
480
转载 SQL优化-索引
1.注意事项1.创建索引时会将数据重新进行排序2.创建索引会占用磁盘空间,所以索引不是越多越好3.在同一列上避免创建多种索引4.避免在数据很长的字段上创建索引,如果要创建就创建前缀索引2.前缀索引根据前四个字符创建前缀索引mysql> alter table test add index index_key(name(4))3.联合索引mysql> create database xiangqing;mysql> create table xiangqin(id int
2021-05-11 17:48:09
424
原创 idea提交项目到git
最简单粗暴的方法在项目目录下 :右键 输入命令:git push -u origin master -f上面是第一次提交的,往后提交,需要先add,commit directory先保存到本地,然后需要先查看pull,最后再push,避免覆盖他人代码...
2021-04-20 09:28:43
361
原创 springCloud各组件的安装配置
nacos下载地址:https://nacos.io/zh-cn/docs/quick-start.html 页面点击 ‘最新稳定版本’ 下载,进去后选则nacos-server-2.0.0.zip,版本任意即可配置:1.首先在数据库执行nacos的sql2.修改它的配置文件连接数据库3.运行nacos服务,在此之前,如果你的服务不是集群,则需要去更改bin目录下的startup.cmd,默认以集群方式启动可以配置单击模式启动的,更改启动配置,以单击模式启动启动服务...
2021-04-13 15:35:15
161
原创 MySQL优化总结
MySQL逻辑架构说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型… 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。MySQL逻辑架构如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图
2021-03-04 16:17:40
125
1
原创 spring-security整理
AuthenticationFilter:认证过滤器每当容器支持一种登录方式的时候,就需要在主链中添加一种该组件Authentication:实际上就是个pojo只不过,每一种登录方式,会实现一种该组件ExceptionTranslationFilter:处理由最终过滤器抛出的异常,一般情况下,当异常之后,将用户本次访问路径记录在securityContext中,并将用户准发到loginpageFilterSecurityInterceptor: 守门员检查是否有authentication对象,并且
2021-03-02 16:43:33
97
原创 mybatis
mybatis模板SqlSessionFactory sessionFactory=new SqlSessionFactoryBuild .build(Resource.getResourceAsStream("mybatis-config.xml");SqlSession session=sessionFactory.openSession();主配置文件 mybatis-config.xml主文件的头部约束:<?xml version="1.0" encoding="
2021-01-22 10:04:42
68
转载 uni-app 生命周期
应用生命周期onLaunch 当uni-app初始化完成时触发(全局只触发一次)onShow 当uni-app启动,或从后台进入前台显示onHide 当uni-app从前台进入后台onUniNViewMessage 对nvue页面发送的数据进行监听页面生命周期onLoad() {22 console.log(‘页面加载‘)23 },24 onShow() {25 console.log(‘页面
2020-10-27 15:04:26
489
原创 正则表达式叠字,过滤重复字
简单的过滤叠字 String str=s.replaceAll("(.)\\1+","$1"); //这里(.)代表一个字重复,$1表示第一组 System.out.println(str); String s2="中国中国,我我我我爱你"; String regex="(..)\\1+"; String str2=s2.replaceAll(regex,"$1"); str2=str2.replaceAll("(.)\\1","$1
2020-07-30 15:47:19
2483
原创 浅谈String类和StringBuffer类的区别
浅谈String类和StringBuffer类的区别简单来说就是一个常量和变量的关系,StringBuffer的内容可以修改;而String对象一旦产生后便不可以被修改,如果重新赋值,那就是两个对象。StringBuffer内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存上优于String类。StringBuffer是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象它只能通过构造函数来建立,StringBuffer sb = ne
2020-07-28 20:06:07
380
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人