- 博客(62)
- 资源 (5)
- 收藏
- 关注
原创 在tomcat启动时启动定时任务ServletContextListener
package com.zzht.cctv.defect.calculate.schedule;import java.util.Calendar;import java.util.Date;import java.util.Timer;import javax.annotation.Resource;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import jav.
2021-07-29 09:38:43
613
原创 Collections.sort 排序
1.针对基本数据类型的list集合进行排序这种相对来说比较简单,主要用于List<Integer> sortList 、List<Double> sortList等等Collections.sort(sortList);该方法为默认升序如果要降序,可改为:Collections.sort(testList,Collections.reverseOrder());2.针对实体类bean集合进行排序一种方式是该bean需要实现Comparable接口public
2021-03-19 10:41:47
2406
转载 redis使用实践
你的项目或许已经使用 Redis 很长时间了,但在使用过程中,你可能还会或多或少地遇到以下问题: 我的 Redis 内存为什么增长这么快? 为什么我的 Redis 操作延迟变大了? 如何降低 Redis 故障发生的频率? 日常运维 Redis 需要注意什么? 部署 Redis 时,如何做好资源规划? Redis 监控重点要关注哪些指标? 尤其是当你的项目越来越依赖 Redis 时,这些问题就变得尤为重要。此时,你迫切需要一份「最佳实践指南」。
2021-03-09 14:06:06
271
原创 java 8中利用stream()对list进行遍历、过滤、排序
1.获取list中id的集合List<Integer> lstVideoID = listVideoLine.stream().map(x -> x.getVideoId()).collect(Collectors.toList());2.list通过过滤条件遍历List<VideoGis> selectList = lstVideoGis.stream().filter(x-> x.getLineID().equals(d.getLineId())).col
2021-01-15 16:50:59
5202
2
原创 通过smb jcifs共享文件的方式操作文件
1.引入maven依赖 <dependency> <groupId>jcifs</groupId> <artifactId>jcifs</artifactId> <version>1.3.17</version> </dependency>2.smb工具类import java.io.File...
2021-01-14 15:19:30
1060
原创 java修改excel图表数据源,导出excel图表文件
1.首先需要引进poi相关依赖,需要注意的是,如果没有ooxml-schemas,代码是会报错的<dependency> <groupId>org.apache.poi</groupId> <artifactId>ooxml-schemas</artifactId> <version>1.0</version></dependency>2.java导出带柱状图或饼状图的excel其实有两种方式,
2020-12-08 17:55:34
2025
2
转载 字符串以逗号分隔的转换为List或数组方法
一:字符串以逗号分隔的转换为List方法1.利用JDK的Arrays类StringString str ="a,b,c";List<String> split= Arrays.asList(str.split(","));2.利用Guava的SplitterStringString str ="a, b, c";List<String> splitToList= Splitter.on(",").trimResults().splitToList(str);
2020-12-07 16:25:54
28613
原创 java实现数据库配置yml文件用户名密码加密
1.pom文件中加入依赖,注意这里版本不能太高,我之前用的3.0.2,一直报错(Failed to bind properties under ‘spring.datasource.password‘ to java.lang.String),踩坑记录下 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-
2020-11-18 16:29:48
3099
原创 Java判断字符串是不是时间日期格式,字符串转时间格式,UTC时间格式化
##引入包:import org.apache.commons.lang3.time.DateUtils;private static String[] parsePatterns = {"yyyy-MM-dd","yyyy年MM月dd日", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyyMMdd"};.
2020-10-30 15:44:44
1320
原创 java结合elaticsearch实现添加距离返回字段(按经纬度)
目的:通过经纬度查询获取距离前言:在之前讲过通过排序在es的sort域中可以获取距离返回值,这次说一下如果不排序怎么获取距离的返回值实现方式:采用es脚本实现1.dsl语言实现:可在kibana插件查询GET process/_doc/_search{ "_source":[], "script_fields": { "distance": { "script": { "source": "doc['location'].arcDistanc
2020-10-23 14:02:04
1925
1
原创 java8根据条件快速筛选list中的集合,不用for循环
1、创建个Student对象public class Student { private String name;//姓名 private Integer age;//年龄 private int sex;//性别 private String professional;//专业 public String getName() { return name; } public void setName(String name
2020-09-22 11:22:54
2157
转载 ElasticSearch中的路由(_routing)机制
ES中的路由(routing)机制决定一个document存储到索引的哪个shard上面去,即文档到shard的路由。计算公式为:shard_num = hash(_routing) % num_shardsnum_shards就是定义的分片数量其中_routing是路由字段的值,默认使用文档的ID字段:_id。如果我们想自己控制数据的路由规则的话,那可以修改这个默认值。修改的方式非常简单,只需要在插入数据的时候指定路由的key即可。虽然使用简单,但有许多的细节需要注意。我们从一个例子看起(注
2020-09-11 14:52:15
3902
3
原创 java拼接字符串构造in查询参数
代码如下: private String getInParm(String string) { String[] strs = string.split(","); StringBuilder sb = new StringBuilder(); sb.append("("); for (int i = 0; i < strs.length; i++) { sb.append("'").append(s
2020-09-11 10:35:27
1730
原创 ElasticSearch如何使用以及java代码如何查询并排序ES中的数据(距离排序)
1.环境准备elasticsearch压缩包、kibana插件、head-master插件,具体怎么安装配置,小伙伴们可以自行百度网上很多案例可参考:https://blog.youkuaiyun.com/sinat_42338962/article/details/85227902这里说一下,国内下载一般都很慢,可以参考这篇文章,博主都放在百度云,下载很方便文章链接:https://blog.youkuaiyun.com/weixin_37281289/article/details/1014834342.h
2020-09-10 18:03:26
7201
转载 Spring中Bean的作用域
作用域的种类Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域。Spring3 为 Bean 定义了五种作用域,具体如下。1)singleton单例模式,使用 singleton 定义的 Bean 在 Spring 容器中只有一个实例,这也是 Bean 默认的作用域。2)prototype原型模式,每次通过 Spring 容器获取 prototype 定义的 Bean 时,容器都将创建一个新的 Bean 实例。3)request在一次 HTTP 请求中,
2020-08-06 11:34:32
219
原创 怎么样防止sql注入
1.(简单又有效的方法)PreparedStatement采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。使用好处:(1).代码的可读性和可维护性.(2).PreparedStatement尽最大可能提高性能.(3).最重要的一点是极大地提高了安全性.原理:sql注入只对sql语句的准备(编译)过程有破坏作用而PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理,而不再对sql语句进行解析,准备,因此也就避
2020-07-31 17:09:27
129
原创 常用请求返回状态码
1.301:代表永久性转移(Permanently Moved)使用301跳转的场景:1)域名到期不想续费(或者发现了更适合网站的域名),想换个域名。2)在搜索引擎的搜索结果中出现了不带www的域名,而带www的域名却没有收录,这个时候可以用301重定向来告诉搜索引擎我们目标的域名是哪一个。3)空间服务器不稳定,换空间的时候。2.302:代表暂时性转移(Temporarily Moved )操作时发现没有登录跳转到登录界面3.400:Bad Request服务器遇到了一个未曾预料的
2020-07-30 20:57:21
205
原创 事务在什么情况下会失效
1.spring声明式事务管理默认对非检查型异常和运行时异常进行事务回滚代码中try……catch抛出的Exception异常,属于检查型异常,Spring的框架默认是不会进行回滚的。所以必须在service捕获异常,然后再次手动 throw 一个非检查型异常,这样事务方才起效。方法名前面有:@Transactionaltry{ …………} catch (Exception e) { ………… throw new RuntimeException(e)...
2020-07-29 18:36:50
3449
原创 单向链表和双向链表有什么区别?各自有什么优缺点?
1、指向不bai同:单向链表只有du一个指向下一结点的指针,zhi双向链表除了有一个指dao向下一结点的指针外,还有一个指向前一结点的指针。2、功能不同:单向链表只能next ,双向链表可以return。3、单双向不同:单链表只能单向读取,双向链表可以通过prev()快速找到前一结点。单向链表优缺点:1、优点:单向链表增加删除节点简单。遍历时候不会死循环;2、缺点:只能从头到尾遍历。只能找到后继,无法找到前驱,也就是只能前进。双向链表优缺点:1、优点:可以找到前驱和后继,可进可退
2020-07-28 20:33:00
17639
原创 mybatis实现原理和mysql的索引存储结构
通过resource加载mapper.xml,生成一个inputStream的输入流,创建sqlsessionfactorybuilder对象,调用该对象的builder方法,返回一个sqlsessionfactory对象,由sqlsessionfactory对象生成sqlsession,通过statement id找到对应的statement,通过传入的参数进行一系列复杂判断来生成执行的sql,再通过jdbc执行sql,然后把结果封装成map或list返回...
2020-07-26 15:29:37
398
原创 SpringCloud面试题整理
Springcloud解决那些问题:配置管理、(注册中心eureka、zk)、服务发现、服务注册、断路器、路由策略、全局锁、分布式会话、客户端调用、接口网关(zuul)、服务管理系统SpringBoot与Springcloud:1>、SpringBoot简化了xml配置,快速整合框架2>、Springcloud是一套微服务解决方案—RPC远程调用3>、关系Springcloud依赖与SpringBoot(web组件用的SpringMVC),为什么Springcloud会依赖与Sp
2020-07-26 12:12:30
449
原创 HashMap和concurrenthashmap和hashtable的比较
hashmap底层是数组和单项链表的结合体。当添加元素时,先把K,V封装到node对象中,底层调用hashcode方法算出hash值,得到数组下标。1.如果数组下标没有任何元素,则添加成功2.如果数组下标位置有链表,则调用equals方法,若返回true,则覆盖;返回false,则把该元素添加到链表的末端查找元素同理,先通过K的hashcode得到数组下标,再调用K的equals方法与链表上的节点比对,若返回true,则该元素就是要查找的元素...
2020-07-26 11:17:22
134
原创 set的实现原理
set的去重是通过两个函数__hash__和__eq__结合实现的。1、当两个变量的哈希值不相同时,就认为这两个变量是不同的2、当两个变量哈希值一样时,调用__eq__方法,当返回值为True时认为这两个变量是同一个,应该去除一个。返回FALSE时,不去重...
2020-07-24 16:01:22
2408
原创 java对字符串进行MD5加密
public static String createMD5(String str) { StringBuffer stringBuffer = null; String hexString = null; try { //1.指定加密算法类型 MessageDigest digest = MessageDigest.getInstance("M...
2020-07-15 16:37:52
277
原创 java利用poi读取excel文件内容
package com.tdx.tdxoatd.service;import com.tdx.annotation.InitConst;import com.tdx.tdxoatd.util.ConstUtil;import com.tdx.tdxoatd.util.UuidUtil;import com.tdx.util.MapUtil;import com.tdx.util.XmlUtil;import org.apache.logging.log4j.LogManager;import.
2020-07-15 14:19:20
627
原创 java调用soap接口协议
package com.tdx.smg.service;import com.tdx.annotation.Param;import com.tdx.model.TDataResult;import com.tdx.smg.utils.SendUtils;import com.tdx.tdxUtils.TdxComUtils;import com.tdx.web.annotation.Comment;import com.tdx.web.annotation.Service;import .
2020-07-15 14:12:21
3537
原创 java随机生成指定长度的字符串
1、生成的字符串每个位置都有可能是str中的一个字母或数字,需要导入的包是import java.util.Random;//length用户要求产生字符串的长度publicstaticString getRandomString(intlength){String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";Random random=newRandom();...
2020-07-09 10:23:28
2847
转载 java获取指定文件夹下的所有文件
public static void readfile(String filepath) throws FileNotFoundException, IOException { try { File file = new File(filepath); if (!file.isDirectory()) { Syst...
2020-07-09 08:25:56
472
原创 idea和eclipse 中利用快捷键转大小写
idea:快捷键为ctr+shift+u,转大写小写都可以eclipse:ctrl+shift+x 将代码字母转换成大写 ctrl+shift+y 将代码字母转换成小写
2020-06-30 11:03:23
207
转载 【Java面试题】List 如何一边遍历,一边删除?
方法1:使用Iterator的remove()方法publicstaticvoidmain(String[]args){List<String>platformList=newArrayList<>();platformList.add("博客园");platformList.add("优快云");platformList.add("掘金");Iterator<String>iterator=...
2020-06-11 14:16:33
157
原创 @Autowired注解与@Resource注解的区别
Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解。如:@Resource、@PostConstruct及@PreDestroy1、@Autowired由Spring提供,只按照byType注入2、@Resource由J2EE提供,默认按照byName自动注入@Resource有两个重要的属性:name和typeSpring将@Resource注解的name属性解析为bean的名字,type属性则解析为bean的类型。所以如果使用name
2020-06-10 09:25:50
217
原创 数据库实现多个字段的唯一约束
一、联合唯一索引项目中需要用到联合唯一索引:例如:有以下需求:每个人每一天只有可能产生一条记录:处了程序约定之外,数据库本身也可以设定:例如:t_aa 表中有aa,bb两个字段,如果不希望有2条一模一样的记录(即:aa字段的值可以重复; bb字段的值也可以重复,但是一条记录(aa,bb)组合值不允许重复),需要给 t_aa 表添加多个字段的联合唯一索引:alter table t_aa add unique index(aa,bb);还有一种情况就是,我们需要为以前的表 创建这个索引,
2020-06-10 09:16:44
4511
原创 list集合和数组之间的转换
1.数组转Listpackage listtoArray;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.stream.Collectors;import java.util.stream.Stream;public class ArrayToList { public stati...
2020-06-10 08:43:32
290
转载 java中一个对象从创建到销毁的过程和 JVM类加载过程
Student stu = new Student(“zhangsan”);1、用户创建了一个Student对象,运行时JVM首先会去方法区寻找该对象的类型信息,没有则使用类加载器classloader将Student.class字节码文件加载至内存中的方法区,并将Student类的类型信息存放至方法区。2、接着JVM在堆中为新的Student实例分配内存空间,这个实例持有着指向方法区的Student类型信息的引用,引用指的是类型信息在方法区中的内存地址。3、在此运行的JVM进程中,会首先起一个线程
2020-05-30 15:15:59
2412
原创 sql性能调优有哪些方法
1、在表中建立索引,优先考虑where、group by使用到的字段2、尽量避免使用select *,返回无用的字段会降低查询效率3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描如果是连续数值,可以用between代替;如果是子查询,可以用exists代替4、尽量避免使用or,会导致数据库引擎放弃索引进行全表扫描优化方式:可以用union代替or5、尽量避免在字段开头模糊查询或进行null值的判断,会导致数据库引擎放弃索引进行全表扫描6、使用分段查询.
2020-05-28 21:05:16
1882
转载 消息队列的相关知识
1.为什么要使用消息队列消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削峰等问题。实现高性能,高可用,可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。流量如果非常之巨大,消息队列必不可少的。2.如何保证消息队列高可用RabbitMQ的高可用性rabbitmq有三种模式:单机模式,普通集群模式,镜像集群模式镜像集群模式才具备高可用性的特点,跟普通集群模式不一样的是,你创建的queue,无论元数据还是queue里的消息都会存在于多个实例上,然后每次你写消息
2020-05-15 10:55:56
151
转载 JDK1.8新特性简单总结
1.default关键字在java里面,我们通常都是认为接口里面是只能有抽象方法,不能有任何方法的实现的,那么在jdk1.8里面打破了这个规定,引入了新的关键字default,通过使用default修饰方法,可以让我们在接口里面定义具体的方法实现public interface NewCharacter { public void test1(); public default void test2(){ System.out.println("我...
2020-05-15 10:14:41
185
转载 SpringCloud简单认知
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署springcloud核心组件简介1.Spring Cloud核心组件:Eureka微服务架构中的注册中心,专门负责服务的注册与发现Eureka Client:负责将这个服务的信息注册到Eureka Server中Eureka Server:注
2020-05-11 16:34:45
137
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人