Java
带着希望活下去
这个作者很懒,什么都没留下…
展开
-
Gradle报错Could not resolve all dependencies for configuration ‘:detachedConfiguration7‘.
将gradle.build仓库更换为阿里云仓库后报错。第二种将阿里云的连接http换成https。转载 2023-03-22 14:58:52 · 2491 阅读 · 0 评论 -
lombok报错Ambiguous method call. Both
IntelliJIDEA2018默认是开启了HriseyPlugins插件的原创 2022-07-26 19:18:12 · 648 阅读 · 0 评论 -
Idea设置自定义快捷方式代码段
IDEA自定义代码模板1. 进入setting界面2. 搜索框输入live即可,选择Live templates3. 先定义一个模板的组,选择+号然后选择Template Group最好自己定义一个组防止和其他原有的模板组搞混4. 输入模板组的名字5. 选中创建好的模板组,这里我之前创建了CustomDefine的组,偷懒就不重新创建了,选择自定义的模板组CustomDefine,然后点击加号,选择Live Template,这个就是自定义代码模板了,也就是在这里进行自己...原创 2022-04-05 17:06:19 · 1307 阅读 · 0 评论 -
Java 中Pair的认识
实习期间 在做一个比较复杂的数据抽取,抽取的结果我总是用Map进行封装,这时候leader说你可以用pair进行封装,因为在进行抽取的过程中,因为业务抽取原因,会出现key值重复但是value不重复;(傻着用value前两个字符和key拼接),最终才知道还有Pair的存在;重点:Pair 可以存储key-value 但是使用List<Pair<String,String>> 就是一个可以重复key的MapMap可以存储多个Key-value,但是会覆盖相同的key.原创 2022-01-14 17:56:27 · 1397 阅读 · 0 评论 -
Synchronized同步静态方法和非静态方法总结
1.Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”。 Java中每个对象都有一个锁,并且是唯一的。假设分配的一个对象空间,里面有多个方法,相当于空间里面有多个小房间,如果我们把所有的小房间都加锁,因为这个对象只有一把钥匙,因此同一时间只能有一个人打开一个小房间,然后用完了还回去,再由JVM 去分配下一个获得钥匙的人。情况1:同一个对象在两个线程中分别访问该对象的两个同步方法结果:会产生互斥。解释:因为锁针对的是对象,当对象调用一个synch...转载 2021-11-16 11:27:54 · 1875 阅读 · 0 评论 -
for循环结构表达式的条件省略
do-while循环结构结束条件是while后的判断语句不成立for循环结构中的3个表达式都可以为空的.for循环语句括号中的各表达式可以省略,但表达式之间的间隔符 ( 分号 )不能缺省。分析:for语句的语法是:for(表达式1;表达式2;表达式3)实际使用中,三个表达式可任意省略,但两个分号一个也不能少,所以,最简单的for循环语句是:for(;;) ,这含义跟while(1) 一样啦。...原创 2021-11-07 18:27:53 · 6608 阅读 · 2 评论 -
java里面 &、&&、|、||区别
逻辑&和逻辑&&(短路与)的主要区别:当用单&时,表示在判断if表达式时,&两边的表达式都会执行。当用双&时,程序在判断&&前面的表达式时,str!=null是false,由于是与运算,就肯定是false,就不判断后面的表达式了。逻辑|和逻辑||(短路或)其实这个和前面的基本上没什么区别,就是当写一个 | 时,程序在执行的时候会把 | 两边的表达式都进行判断,而当写两个 || 时,此时,如果第一个表达式判断为真,那么接下来..转载 2021-10-31 23:15:11 · 362 阅读 · 0 评论 -
统计字符串内的中文、数字、字符和空格
public static void main(String[] args) { Scanner sc = new Scanner(System.in); String next = sc.nextLine(); int[] count = new int[4]; for (int i = 0; i < next.length(); i++) { char c = next.charAt(i); ...原创 2021-10-31 22:00:14 · 143 阅读 · 0 评论 -
线程池的理解阐述
面试的时候被问到了线程池的一些相关知识点,回答的不是太多,实际工作中用到的线程池先看一下我们所知道的线程池的继承关系首先我们列出Java中的六种线程池如下线程池名称 描述 FixedThreadPool 核心线程数与最大线程数相同 SingleThreadExecutor 一个线程的线程池 CachedThreadPool 核心线程为0,最大线程数为Integer. MAX_VALUE ScheduledThreadPool 指定核心线...原创 2021-10-16 15:45:51 · 100 阅读 · 0 评论 -
Hash算法解决冲突的四种方法
Hash算法解决冲突的方法一般有以下几种常用的解决方法1.开放定址法:所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入公式为:fi(key) = (f(key)+di) MOD m (di=1,2,3,……,m-1)※ 用开放定址法解决冲突的做法是:当冲突发生时,使用某种探测技术在散列表中形成一个探测序列。沿此序列逐个单元地查找,直到找到给定的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,...转载 2021-09-27 14:03:31 · 6841 阅读 · 0 评论 -
Java-ArrayList扩容机制
一.ArrayList继承了AbstractList,实现了List接口,底层实现基于数组,因此可以认为是一个可变长度的数组。二.在讲扩容机制之前,我们需要了解一下ArrayList中最主要的几个变量://定义一个空数组以供使用private static final Object[] EMPTY_ELEMENTDATA = {};//也是一个空数组,跟上边的空数组不同之处在于,这个是在默认构造器时返回的,扩容时需要用到这个作判断,后面会讲到private static final Objec转载 2021-09-27 12:56:20 · 350 阅读 · 0 评论 -
java多线程多线程
看一下Thread运行的源码:首先看看run方法是如何做的,点击run方法会跳进Thread.java源码中:@Overridepublic void run() { if (target != null) { target.run(); }}好理解吧?target不为空,就执行run方法,target是啥?/* What will be run. */private Runnable target;可以看到target就是我们的Runnable原创 2021-09-16 22:09:00 · 77 阅读 · 0 评论 -
fastjson进行转换String字符串时,会将Date类型转换为long
fastjson把map里的一个实例的Date类型属性的值转换成一长串数字fastjson默认把Date类型转换成long(一长串数字)做法:修改实体的属性@JSONField (format="yyyy-MM-dd")private Date date;@JSONField (format="yyyy-MM-dd HH:mm:ss")private Date date2;...原创 2021-09-16 15:23:09 · 1731 阅读 · 0 评论 -
java导入导出百万级数据--解决方案
导出程序实现有以下技术难点1. 一次读取这么大的数据量,肯定会导致服务器内存溢出;2. 调用接口保存一次传输数据量太大,网络传输压力会很大;3. 最终通过SQL一次批量插入,对数据库压力也比较大,如果业务同时操作这个表数据,很容易造成死锁。解决思路根据列举的技术难点我的解决思路是:1. 既然一次读取整个导入文件,那就先将文件流上传到服务器磁盘,然后分批从磁盘读取(支持多线程读取),这样就防止内存溢出;2. 调用插入数据库接口也是根据分批读取的内容进行调用;3. 分批插入数原创 2021-09-05 11:42:10 · 4182 阅读 · 0 评论 -
Java8 Stream进行groupby不会打乱顺序
问题背景:需求分析 ,对查询出来的数据,进行按类型,名称,开始时间进行排序,排序完之后需要进行分组,但是在groupBy分组的时候,顺序却是乱的?并没有按照自己进行排序的list进行返回。带问题排查sort排序没问题,问题出在groupBy身上,看看groupby问什么会无序。查看源码/** * Returns a {@code Collector} implementing a "group by" operation on * input elements of t原创 2021-07-20 18:26:58 · 5377 阅读 · 0 评论 -
MQ问题汇总
1、配置了Jackson2JsonMessageConverter但是报java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper1.1、原因:依赖缺失1.2、解决方案:在POM文件里面增加如下依赖:<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>原创 2021-04-08 15:42:38 · 285 阅读 · 0 评论 -
Java泛型中的标记符含义--记录
我们又是经常再看java源码的时候,会出现不同的类型,我们要明白这些类型代表什么含义:Java泛型中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型)? - 表示不确定的java类型 S、U、V - 2nd、3rd、4th typesObject跟这些标记符代表的java类型有啥区别呢?Object是所有类的根类,任何类的对象都可以原创 2021-02-08 14:14:41 · 198 阅读 · 0 评论 -
Java代码优化方式--详细记录
代码优化方式1. java内联 --使用JITWatch进行查看参考链接: 更好的被JVM JIT Inlining代码JITWatch 的参考链接: JITWatch原创 2021-02-02 15:44:49 · 92 阅读 · 0 评论 -
IDEA优化内存配置,提高启动和运行速度
1.参考文章idea优化配置转载 2021-01-11 10:57:18 · 755 阅读 · 0 评论 -
根据WSDL文件进行生成WebService文件
坑点:之前用eclipse进行根据wsdl生成webservice,在使用idea的时候也用idea进行生成webservice文件,发现自己不论用哪种方式生成出来的webservice文件,总会少点文件程序。转而使用eclipse生成的webservice是自己需要的,所以wsdl文件推荐使用eclipse进行生成。1. 进行生成WebService的文件进行生成完成,其中产生的这些java文件,就是我们需要用到的webservice文件。...原创 2020-11-24 13:29:52 · 407 阅读 · 0 评论 -
对象在进行转换为json是解决null值不显示和null转为空值得方法
最近在进行接口对接的时候,总会出现使用fastJson在进行转换json对象的时候,出现null值字段消失和null值转空值的频繁问题。使用以下的fastjson的序列化属性可以轻松解决这个问题。Fastjson的SerializerFeature序列化属性-QuoteFieldNames———-输出key时是否使用双引号,默认为trueWriteMapNullValue——–是否输出值为null的字段,默认为falseWriteNullNumberAsZero—-...原创 2020-11-12 16:13:22 · 4428 阅读 · 0 评论 -
List类型数据的Copy操作--0924
1、所需要的实体和结果类字段相同获取结果使用的实体类是和数据库字段一一对应的,但是不想把该实体类的所有属性都返回给前端,于是新建一个实体类,其中只有前端需要的属性,然后想把List中的对象全部拷贝到List中,其中UserA属性多,UserB属性少,字段名是一样的。方法1:使用Spring的BeanUtils.copyProperties()或者PropertyUtils.copyProperties()将List1循环,将UserA中需要的属性Set到UserB中。这个方法略麻烦,因为还需要循环,并原创 2020-09-24 11:04:18 · 1682 阅读 · 0 评论 -
java反射机制浅显理解---记录0923
参考知乎文章:参考文章一个方法区,一个栈,一个堆。假如你写了一段代码:Object o=new Object();运行了起来!首先JVM会启动,你的代码会编译成一个.class文件,然后被类加载器加载进jvm的内存中,你的类Object加载到方法区中,创建了Object类的class对象到堆中,注意这个不是new出来的对象,而是类的类型对象,每个类只有一个class对象,作为方法区类的数据结构的接口。jvm创建对象前,会先检查类是否加载,寻找类对应的class对象,若加载好,则为你的对象分配内存原创 2020-09-23 17:49:10 · 66 阅读 · 0 评论 -
java中 static的理解
参考文章static理解首先,描述了static关键字去修饰java类、方法、变量、代码块的方法然后,从底层分析static关键字,接下来,给出static的一些使用场景和案例最后,对static进行一个总结,包括和普通变量的区分。OK,开始今天的文章。一、static关键字的基本用法1、static关键字基本概念我们可以一句话来概括:方便在没有创建对象的情况下来进行调用。也就是说:被static关键字修饰的不需要创建对象去调用,直接根据类名就可以去访问。对于这个概念,下面根据static关键字转载 2020-09-18 16:43:59 · 973 阅读 · 0 评论 -
Java数据量分组操作
1、java进行数据量分组 //获取所有的数据进行操作物料号 //数据量过大进行分批处理 按1000条数据进行处理 //按每50个一组分割 List<List<MaterialControlHisDTO>> parts = Lists.partition(endInfoList, 1000); parts.forEach(infoList -> { //getData(infoList, startDate,原创 2020-08-10 13:16:40 · 1092 阅读 · 0 评论 -
LocalDate的日期比较---自带的简单方法
1.进行操作LocalDate的日期比较/** * 比较第一个日期是否小于第二个日期 * @param firstDate 第一个日期 * @param secondDate 第二个日期 * @return true-小于;false-大于 */public boolean localDateIsBefore(LocalDate firstDate, LocalDate secondDate) { return firstDate.isBefore(secondDate);} /*转载 2020-07-23 16:29:54 · 6594 阅读 · 0 评论 -
java自定义注解--学习demo
前言:java注解,也叫元数据,下面我向大家介绍一下java注解 掌握后大家也可以自定义一些注解来使用,下面写了一个简单例子给大家参考。@Target : Target翻译中文为目标,即该注解可以声明在哪些目标元素之前,也可理解为注释类型的程序元素的种类。ElementType.PACKAGE:该注解只能声明在一个包名前。ElementType.ANNOTATION_TYPE:该注解只能声明在一个注解类型前。ElementType.TYPE:该注解只能声明在一个类前。Element转载 2020-07-08 20:40:05 · 207 阅读 · 0 评论 -
LocalDateTime的简单使用
LocalDateTime的使用一开始老是忘记怎么使用LocalDateTiem的具体用法,接下来做一下简单的总结。public static void main(String[] args) { //设置时间格式 DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime time = LocalDateTime.now();原创 2020-07-08 19:46:19 · 364 阅读 · 0 评论 -
java进制处理------16进制字符串 与普通字符串 与 byte数组 之间的转化
方法依赖commons-codec包 maven的引入方式如下<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.12</version></dependency>普通字符串转换为16进制字符串/** * 将普通字符串转换为1转载 2020-06-10 15:00:21 · 412 阅读 · 0 评论 -
Map类型的排序操作--详细操作
进行的Map的排序操作Map<String, String> map = new HashMap<String, String>(); map.put("b", "b"); map.put("a", "c"); map.put("c", "a"); // 通过ArrayList构造函数把map.entrySet()转换成list List<Map.Entry<String, String&g原创 2020-05-18 17:13:28 · 694 阅读 · 0 评论 -
TreeSet自定义的Comparator比较器
//TreeSet 可以有序且可以去除重复 //从大到小 TreeSet treeSet = new TreeSet(new Comparator() { @Override public int compare(Object o1, Object o2) { int s1=(int)o1; int s2=(int)o原创 2020-05-18 15:47:42 · 820 阅读 · 0 评论 -
java中使用Optional类处理NPE问题-----知识点学习
Optional 类为了更好的解决和避免常见的 NPE 问题,Java 8 中引入了一个新的类 java.util.Optional,Optional 值可以为 null,如果值存在,调用 isPresent() 方法返回 true,调用 get() 方法可以获取值。创建 Optional 对象Optional 类提供类三个方法用于实例化一个 Optional 对象,它们分别为 empty()、of()、ofNullable(),这三个方法都是静态方法,可以直接调用。empty() 方法用于创建一个原创 2020-05-18 14:24:50 · 301 阅读 · 0 评论 -
Map函数 中的compute简单使用-----记录
Map函数 中的compute简单使用参考文章:参考1. Map.compiter使用是将最新的map存储的键值返回example://获取一个字符串中的字符出现频率 String str = "hello java, i am vary happy! nice to meet you"; // jdk1.8之前的写前 HashMap<Character, Integer> result1 = new HashMap<>(32);原创 2020-05-18 14:01:24 · 2962 阅读 · 2 评论 -
PageHelper进行的物理分页-----自定义数据集的分页
使用PageHelper进行的物理分页出现场景:我需要查询出来A,B表查询数据集listA,然后在从C,D表查询出来listC,最后在从E表查询出来listD。将listD 减掉listA和listC得到最后的结果集 listZ。 而在最后结果集之前我是不希望进行分页处理的,因此我做的只是针对指定数据集进行分页处理。在使用PageHelper插件分页时候处理查询的数据进行特定数据集进行分页出现了处理不了的情况。解决方案:在进行的查询操作中,如果带有pagesize和pageNum则会进行直接分页原创 2020-05-13 15:38:18 · 577 阅读 · 0 评论 -
Java8的知识点----学习记录
@PathVariable 映射 URL 绑定的占位符带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。主要是根据请求方法进行类的区别例子://@PathVariable可以用来映射URL中的占位符到目标方法的参数中原创 2020-05-11 14:38:50 · 114 阅读 · 0 评论 -
java并发处理---乐观锁和悲观锁
java并发处理—乐观锁和悲观锁乐观锁和悲观锁参考文章乐观锁和悲观锁原创 2020-05-09 13:55:12 · 154 阅读 · 0 评论 -
java的Collection使用
1、java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。Collection├List│├LinkedList│├ArrayList│└Vect...转载 2020-05-08 15:21:16 · 2554 阅读 · 0 评论 -
Map集合的entrySet和keySet
List<Student> ls=new ArrayList<>(); Student s1 = new Student("小龙女", 23); Student s2 = new Student("任盈盈", 24); //Student s3 = new Student("小龙女", 23); Studen...原创 2020-05-08 13:48:15 · 363 阅读 · 0 评论 -
Java中的Set集合的中的HashSet TreeSet理解
推荐文章原创 2020-05-07 14:35:48 · 124 阅读 · 0 评论 -
Java开发规范-----泰山版的java开发规范
最近在看阿里的java开发规范,一次记录自己工作中犯的错误案例:1.POJO类中的任何布尔类型的变量,都不要加is前缀,否则部分框架解析会引起序列化错误。(****)说明:在本文MySQL规约中的建表约定第一条,表达是与否的值采用is_xxx的命名方式,所以,需要在设置从is_xxx到xxx的映射关系反例:定义为基本数据类型Boolean isDeleted的属性,它的方法也是isDelet...原创 2020-05-07 09:29:40 · 664 阅读 · 0 评论