javaSE基础
Java基础知识及重点知识分享
梧桐南呀
这个作者很懒,什么都没留下…
展开
-
IDEA中的debug断点调试技巧(基本篇)
ideaDebug技巧(基本篇)原创 2022-01-23 21:40:50 · 4216 阅读 · 0 评论 -
java开发-map给list赋值写法(list赋予null踩坑记录)
参数解释:Map<Integer, CommonFileVO> commonFilesMap:总map数据Set fileIds 要取的key值合集List commonFileVOList要得到的list合集写法: Set<Integer> fileIds = new HashSet<>(JSON.parseArray(reportPicFiles, Integer.TYPE)); List<CommonFileVO> comm原创 2022-01-19 13:55:58 · 1009 阅读 · 0 评论 -
Java8新特性-CompletableFuture异步回调
简介Java8提供了一个新的,具备异步回调能力的工具类**-CompletableFuture**,该类实现了Future接口,同时具备函数式编程的能力。该类实现了Future接口和CompletionStage两个接口。该类的实例是作为一个异步任务,可以在自己异步执行完成之后触发一些其他的异步任务,从而达到异步回调的效果。Future接口Future在java里面,通常用来表示一个异步任务的引用,比如我们将任务提交到线程池里面,会得到一个Future,在Future里面有isDone方法来判断任务原创 2021-10-29 16:04:55 · 1059 阅读 · 0 评论 -
jdk8下的查询单条判空操作,防止NPE问题
jdk8下的查询单条判空操作 Optional<Question> question = questionDao.getQuestionById(questionId); if (!question.isPresent()) { return; } String status = question.get().getStatus();原创 2021-07-27 10:33:02 · 86 阅读 · 0 评论 -
Java参数值,对象,list,Map判空的规范写法
参数值判空question.getQuestionTemplateId() == null 对象判空## Objects.isNull(templateById)对象不为空Objects.nonNull(curPrev)list判空CollectionUtils.isEmpty(questionList)public static boolean isNotEmpty(Collection<?> collection) { return (collection !原创 2021-07-17 15:53:59 · 254 阅读 · 0 评论 -
快速进阶Map的构建及使用
1.## map的原型由list而来第一步得到;List List<DepartmentPersonVO> personList = organizationFeignClient.getPersonByIds(Lists.newArrayList(personIds)).getData();构建方法一:选取对象中的某一元素和对象本身形成Map Map<Integer, DepartmentPersonVO> personMap = personList.stream().原创 2021-07-17 15:13:38 · 361 阅读 · 0 评论 -
枚举类的使用方法
package com.sippr.contract.base.enums;import org.springframework.lang.NonNull;/** * @Author:liangchangjian * @Date:2021/6/29 */public enum EntContractStatus { /** * 草稿. draft */ DRAFT("draft", 1), /** * 执行中.execution原创 2021-07-12 11:15:44 · 114 阅读 · 0 评论 -
Java8新特性-streamAPI优化Java代码
流和lambda表达式结合起来使用流声明式处理数据集合的特点,使代码简洁易读定个需求:针对数据库中的一张表-记录着一堆食物,需要对数据库查询到的菜肴进行处理,处理要求如下:1.筛选出卡路里小于400的菜肴2.对筛选出来的菜肴进行排序3.获取排序后菜肴的名字public class Dish { private String name; private boolean vegetarian; private int calories; private Type原创 2021-07-07 17:15:32 · 65 阅读 · 0 评论 -
两种数据结构:LinkedList VS ArrayList效率对比
LinkedList VS ArrayList纯粹的增删改是不存在的,必然伴随着遍历,这也是实际开发的常态.查询对比LinkedList无特殊情况都推荐使用for循环增强。ArrayList也要使用for循环增强,倘若不使用下标index的话结论:做好都使用for循环增强插入对比尾插法:ArrayList的效率高于LinkedList头插法:LinkedList的效率更高随机位置插入:ArrayList效率高删除比较尾删法:ArrayList效率高,无需扩容,无需拷贝头删法:Li原创 2021-05-19 15:19:58 · 632 阅读 · 0 评论 -
数据结构两种线性结构之数组篇
数组的遍历数组再结构上要求连续,遍历时不关心具体元素的地址,只要知道起始元素的地址以及目标元素的下标,即可快速找到目标元素。总结:数组结构的遍历会优于链表结构的遍历,它不需要频繁寻找地址。ArrayList#get(i):很快数组的插入与删除数组的插入和删除,离不开数组的拷贝和扩容。ArrayList被称为动态数组,原因是他会自动扩容扩容的具体步骤是:ArrayList申请新的长度的数组把原数组的元素拷贝到新数组把新元素插入到新数组ArrayList#set(index, elem原创 2021-05-19 14:51:36 · 147 阅读 · 0 评论 -
数据结构中的两种线性结构之一链表操作
1.链表的遍历链表结构的查询比数组结构要慢在Java中,LinkedList底层是链表结构。链表的遍历对应LinkedList的get方法。LinkedList的get(index)较慢,因为要通过node(inedx)方法遍历到i元素再取出,而链表是不连续的。2.链表的插入与删除插入操作:解开A与B结点的联系,再让他们同时跟C节点重新建立联系即可。删除:需求:在第i个元素和第i+1个元素之间插入一个新元素,你觉得这个需求包含几个操作?先遍历找到第i个元素再把第i个元素与第i+1个原创 2021-05-19 14:27:30 · 70 阅读 · 0 评论 -
运用注解+反射,模拟Junit
只要用到注解必然由三角关系:定义注解使用注解读取注解模拟Junit框架:代码结构:定义注解:/** * 定义注解 * * @Author:liangchangjian * @Date:2021/5/18 */@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface MyAfter {}定义注解:/** * 定义注解 */@Retention(Retenti原创 2021-05-19 09:48:37 · 95 阅读 · 0 评论 -
JavaSE-上层框架如Spring全家桶和Mybaties的实现的底层原理(反射篇)
反射机制Java.Reflectionjava是静态语言,因为有了反射机制。java有了动态特性。动态语言:运行时可以改变其结构的语言:新的函数被引进,已有的函数被删除或是其他结构上的变化,就是运行代码时可以根据某些条件改变自身结构。主要动态语言:js.PHP,Python,C#等静态语言:运行时解耦给不可变的语言就是静态语言,如Java,C,C++java不是动态语言,但Java可以称之为“准动态语言”,即Java有一定的动态性,我们可以利用反射机制获得类似动态语言的特性。java的动态性让编程原创 2021-05-18 14:52:04 · 114 阅读 · 0 评论 -
JavaSE-上层框架如Spring全家桶和Mybaties的实现的底层原理(注解篇)
注解和反射是Spring全家桶和Mybaties等框架实现的底层原理1.什么是注解java.Annotationjdk5.0引入的新技术。1.1注解入门Annotation的作用:不是程序本身,可以对程序作出解释。可以被其他程序(编译器等)读取Annotation的格式:注解是以”@注释名在代码中存在,还可以添加一些参数值例:@SuppressWarnings(value=“unchecked”).Annotation在哪里使用?可以附加在package,class,method原创 2021-05-18 10:45:46 · 115 阅读 · 0 评论