Java进阶学习汇总
文章平均质量分 71
java学习
棋_Rachel
自从厌倦于追寻,我已学会一命即中。自从一股逆风袭来,我已能抗拒八面来风驾舟而行。
展开
-
Java String类 常用 API 总结及Demo
下面是 String 类支持的方法,更多详细,参看Java String API文档:SN(序号) 方法描述1 char charAt(int index)返回指定索引处的 char 值。2 int compareTo(Object o)把这个字符串和另一个对象比较。3 int compareTo(String anotherString)按字典顺序比较两个字符串。4 int compareToIgnoreCase(String str)按字典顺序比较两个字符串,不考虑大小写。.....原创 2022-07-27 16:37:40 · 483 阅读 · 0 评论 -
List集合删除元素方式:避免java.util.ConcurrentModificationException异常
方式一,使用Iterator,顺序向下,如果找到元素,则使用remove方法进行移除。方式二,倒序遍历List,如果找到元素,则使用remove方法进行移除。方式三,正序遍历List,如果找到元素,则使用remove方法进行移除,然后进行索引“自减”。方式四,使用jdk1.8新增的Stream流操作。...原创 2022-07-22 16:36:39 · 2002 阅读 · 0 评论 -
springboot整合knife4j,从此告别手写接口文档
Knife4j的前身是swagger-bootstrap-ui,前身swagger-bootstrap-ui是一个纯swagger-ui的ui皮肤项目一开始项目初衷是为了写一个增强版本的swagger的前端ui,但是随着项目的发展,面对越来越多的个性化需求,不得不编写后端Java代码以满足新的需求,在swagger-bootstrap-ui的1.8.5~1.9.6版本之间,采用的是后端Java代码和Ui都混合在一个Jar包里面的方式提供给开发者使用.这种方式虽说对于集成swagger来说很方便,只需要引入j原创 2022-06-28 23:28:17 · 8686 阅读 · 4 评论 -
Java基础学习系列--彻底搞懂java枚举enum的用法
枚举的概述和作用枚举是Java中的一种特殊类型。枚举的作用:是为了做信息的标志和信息的分类。常量做信息分类和信息标志:虽然可以实现可读性,但是入参不受限制!!!Java建议做信息标志和信息分类应该使用枚举实现:最优雅的方式。可以实现可读性,而且入参受限制,不能乱输入!!!定义枚举的格式:修饰符 enum 枚举名称{ 第一行都是罗列枚举实例的名称。}枚举类的编译以后源代码: public final class Season extends java.la原创 2022-03-28 07:30:00 · 687 阅读 · 0 评论 -
Java基础学习系列--彻底搞懂Java中抽象类(abstract)的概念
抽象类的概述引入: 父类知道子类一定要完成某个功能,但是每个子类实现的情况都不一样而且子类都会用自己的功能了,父类的该功能就可以定义成抽象的方法。拥有抽象方法的类必须定义成抽象类。什么是抽象方法?没有方法体,只有方法签名,必须用abstract修饰的方法就是抽象方法。什么是抽象类?拥有抽象方法的类必须定义成抽象类。抽象类必须用abstract关键字修饰。public class AbstractDemo { public static void main(String[]原创 2022-03-28 07:45:00 · 484 阅读 · 0 评论 -
Java进阶学习---单例模式(面试重点,常考)
什么是单例?单例的意思是一个类永远只存在一个对象,不能创建多个对象。单例模式,是一种常用的软件设计模式。通过单例模式可以保证系统中, 应用该模式的这个类永远只有一个实例。即一个类永远只有一个对象实例。为什么要用单例?在实际开发中,有很多业务对象永远只需要一个,无论启动多少次 我们只需要一个对象,例如任务管理对象,只需要一个对象。节约内存和性能。 因为对象越多内存占用越大,极有可能出现内存溢出!如何实现单例?(一共八种)其中基础的有两种(单线程)这里介绍两种方原创 2022-03-28 07:00:00 · 233 阅读 · 0 评论 -
DTO,PO,BO,VO和POJO的区别
PO:persistent object 持久对象1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。2 .在hibernate持久化框架中与insert/delet操作密切相关。3 .PO中不应该包含任何对数据库的操作。POJO :plain ordinary java object 无规则简单java对象一个中间对象,可以转化为PO、DTO、VO。1 .POJO持久化之后==〉PO(在运行期,由Hibernate中的cg..原创 2022-03-27 22:45:27 · 464 阅读 · 0 评论 -
Java基础学习系列--(八)彻底搞懂java多线程概念【线程状态、volatile关键字、原子性、并发包、死锁、线程池】
第一章 线程状态1.1 线程状态概述线程由生到死的完整过程:当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,有几种状态呢?在API中java.lang.Thread.State这个枚举中给出了六种线程状态:这里先列出各个线程状态发生的条件,下面将会对每种状态进行详细解析线程状态导致状态发生条件NEW(新建)线程刚被创建,但是并未启动。还没调用start方法。MyThread t = new MyThread只有线程对象,没有原创 2022-03-27 21:31:03 · 267 阅读 · 0 评论 -
Java基础学习系列--(七)彻底搞懂java中的【异常、线程】的使用
第一章 异常1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.1.2 异常体系异常机制其实原创 2022-03-27 21:06:07 · 146 阅读 · 0 评论 -
Java基础学习系列--(六)【Map集合,HashMapTreeMap,斗地主、图书管理系统,排序算法】
day06【Map】第一章 Map集合1.1 概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。M原创 2022-03-27 20:50:30 · 843 阅读 · 0 评论 -
Java基础学习系列--(五)【迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类】
第一章 Iterator迭代器1.1 Iterator接口在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,下面介绍一下获取迭代器的方法:public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合中的元素的。下面介绍一下迭代的概念:迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素原创 2022-03-27 20:21:48 · 184 阅读 · 0 评论 -
Java基础学习系列--(四)【常用API、正则表达式,泛型、Collection集合API】
第一章 DateFormat类java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。格式化:按照指定的格式,把Date对象转换为String对象。解析:按照指定的格式,把String对象转换为Date对象。1.1 构造方法由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式(格式)原创 2022-03-27 19:55:11 · 810 阅读 · 0 评论 -
Java基础学习系列--(三)【多态、包、权限修饰符、内部类,Object类,Date类】
第一章 多态[重点]1.1 多态的形式多态是继封装、继承之后,面向对象的第三大特性。多态是出现在继承或者实现关系中的。多态体现的格式:父类类型 变量名 = new 子类/实现类构造器;变量名.方法名();多态的前提:有继承关系,子类对象是可以赋值给父类类型的变量。例如Animal是一个动物类型,而Cat是一个猫类型。Cat继承了Animal,Cat对象也是Animal类型,自然可以赋值给父类类型的变量。1.2 多态的案例演示当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,原创 2022-03-27 19:47:53 · 97 阅读 · 0 评论 -
Java基础学习系列--(一)【this,super,静态static、继承、引用类型使用】
第一章 复习回顾1.1 如何定义类类的定义格式如下:修饰符 class 类名{ // 类中的五大成分。 // 1.成员变量(属性) // 2.成员方法 (行为) // 3.构造器 (初始化类的对象数据的) // 4.内部类 // 5.代码块}例如:public class Student { // 1.成员变量 public String name ; public char sex ; // '男' '女'原创 2022-03-27 19:37:16 · 199 阅读 · 0 评论 -
Java基础学习系列--(二)【抽象类,接口、代码块、final、单例、枚举】
第一章 抽象类1.1 概述1.1.1 抽象类引入父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了(因为子类对象会调用自己重写的方法)。换句话说,父类可能知道子类应该有哪个功能,但是功能具体怎么实现父类是不清楚的(由子类自己决定),父类完全只需要提供一个没有方法体的方法签名即可,具体实现交给子类自己去实现。我们把没有方法体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。抽象方法 : 没有方法体的方原创 2022-03-27 19:34:01 · 168 阅读 · 0 评论 -
Java基础学习系列--(二)static关键字概述
2.1 概述以前我们定义过如下类:publicclassStudent {// 成员变量public String name;publicchar sex;// '男' '女'publicint age;// 无参数构造器publicStudent() { }// 有参数构造器publicStudent(String a) { }}我们已经知道面向对象中,存在类...原创 2022-03-29 22:30:46 · 244 阅读 · 0 评论 -
Java基础学习系列--彻底搞懂static关键字
Java基础学习系列--static关键字目标:static关键字的概述。(重点)引入: 我们定义了很多的成员变量(name,age,sex) 其实我们只写了一份,但是发现每个对象都可以用,就说明 Java中这些成员变量或者方法是存在所属性的Java通过成员变量是否有static修饰来区分是类的,还是对象的。static ==静态 == 修饰的成员(方法和成员变量)属于类本身的按照有无static修饰,成员变量和方法可以分为: 成员变量: (1...原创 2022-03-26 06:02:18 · 488 阅读 · 0 评论 -
Java基础学习系列--(三)彻底搞懂JAVA的继承概念(extends)
目标:封装的概念回顾面向对象的三大特征:封装,继承,多态。 特征:就是特点 是Java语言的风格,是我们在开发中必须遵循的,即使毫无意义,代码还是要按照这个风格写!!! 封装的作用: 1.可以提高安全性 2.可以实现代码的组件化 封装的规范: 1.建议成员变量私有化,用private 修饰 private修饰的方法,成员变量,构造器等只能在本类直接访问。 2.提供成套的getter+setter..原创 2022-03-26 05:49:44 · 916 阅读 · 0 评论 -
Java基础学习系列--彻底搞懂this关键字
/** * 目标:this关键字知识回顾 * * this关键字作用: * this代表当前对象的引用。 地址称为引用 * this关键字可以用在实例方法和构造器中 * this用在方法中,谁在调用这个方法,this就代表谁 * this用在构造器中,代表了构造器正在初始化的那个对象的引用。 * */public class ThisDemo02 { public static void main(String[] args) {.原创 2022-03-26 05:45:56 · 457 阅读 · 0 评论 -
Java基础学习系列--(一)知识回顾篇
* 目标:知识回顾 * * 面向对象: * 用代码去高度模拟现实世界,以便为人类的业务服务。 * Java是一种面对对象的高级编程语言。 * 高级编程语言:代码风格很像人类的自然语言 * zhubajie.eat("西瓜"); * 面对对象最重要的两个概念:类和对象 * * 类:是描述相同事物的共同特征的抽象。人类 * 对象:是具体存在的实例,是真实的。 实例==..原创 2022-03-26 05:39:16 · 183 阅读 · 0 评论 -
Java使用SpringTask实现定时任务
简单介绍SpringTaskSpringTask是Spring自主研发的轻量级定时任务工具,相比于Quartz更加简单方便,且不需要引入其他依赖即可使用。Cron表达式Cron表达式是一个字符串,包括6~7个时间元素,在SpringTask中可以用于指定任务的执行时间。Cron的语法格式Seconds Minutes Hours DayofMonth Month DayofWeekCron格式中每个时间元素的...原创 2020-09-24 14:25:13 · 346 阅读 · 0 评论 -
SpringBoot yml配置文件的加载顺序
SpringBoot 多环境配置及切换,本质就是通过预先设定好多个运行环境名称及相应的配置文件;应用启动时通过指定运行环境名称,进而加载对应名称的配置文件实现的。实际使用时,我们还可以充分利用配置属性加载的优先级合理地规划应用的配置属性,比如:通用配置(与运行环境无关的)属性可以放到 application.yml 中; 运行环境(profile)相关的配置属性可以放到相应的 application-{profile}.yml 中; 启动时需要临时指定的配置属性可以通过命令行参数设置; 2 和原创 2022-03-24 10:53:15 · 283 阅读 · 0 评论 -
java8两个List集合取交集、并集、差集、去重并集
public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("1"); list1.add("2"); list1.add("3"); list1.add("5"); list1.add("6"); List<String>..原创 2021-06-28 16:47:29 · 366 阅读 · 0 评论 -
Idea 不显示services窗口问题 解决办法
Idea 不显示services窗口问题 解决办法第一步:第二步:第三步:添加上springboot选项,然后点ok就完成了原创 2021-05-24 18:00:31 · 1920 阅读 · 0 评论 -
java获取今天,昨天的日期
public static void main(String[] args) { /** * 获取前一天日期 */ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); System.out.println(sdf.format(calendar....原创 2021-03-04 15:32:22 · 357 阅读 · 4 评论 -
lock锁demo(测试可行)
/** * projectName: mall * fileName: Threads.java * packageName: com.msic.mall.search * date: 2021-02-06 上午 11:30 * copyright(c) 2017-2020 恩斯迈电子 */package com.msic.mall.search;import java.util.concurrent.locks.Lock;import java.util.concurrent.loc.原创 2021-02-06 17:01:29 · 334 阅读 · 0 评论 -
Spring Data Redis 最佳实践!
Spring Data Redis 是Spring 框架提供的用于操作Redis的方式,最近整理了下它的用法,解决了使用过程中遇到的一些难点与坑点,希望对大家有所帮助。本文涵盖了Redis的安装、Spring Cache结合Redis的使用、Redis连接池的使用和RedisTemplate的使用等内容。Redis安装这里提供Linux和Windows两种安装方式,由于Windows下的版本最高只有3.2版本,所以推荐使用Linux下的版本,目前最新稳定版本为5.0,也是本文中使用的版本。.原创 2020-11-03 13:40:38 · 287 阅读 · 0 评论 -
java中pom.xml中常用标签含义
<?xml version="1.0" encoding="UTF-8"?><!--xml版本和编码方式 --><!-- 根元素 --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.原创 2020-10-23 16:21:55 · 263 阅读 · 0 评论 -
Spring Boot 项目 pom.xml 配置文件 标签注释
<?xml version="1.0" encoding="UTF-8"?><!--xml版本和编码方式 --><!-- 根元素 --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.原创 2020-10-15 11:55:09 · 362 阅读 · 0 评论 -
将数据库查出来app版本号排序遇到的问题
List<AppVersion> appVersionList = appVersionMapper.selectVersionDownload(appType.trim(), status.trim());appVersionList.sort(new Comparator<AppVersion>() { @Override public int compare(AppVersion v1, AppVersion v2) { String[] .原创 2020-10-13 08:37:25 · 293 阅读 · 0 评论 -
java实现简繁体转换demo
第一步:引入jar包 <!--字符繁体简体转换--> <dependency> <groupId>com.github.houbb</groupId> <artifactId>opencc4j</artifactId> <version>1.1.0</version> </depen原创 2020-09-17 10:11:18 · 639 阅读 · 0 评论 -
手机号工具类:PhoneUtils
package com.msic.mall.common.util;import io.micrometer.core.instrument.util.StringUtils;import java.util.regex.Pattern;public class PhoneNoUtils { //电话号码工具类 //2019最新手机号码正则表达式 private static final String CELL_PHONE_NO_REGX="^((\\+?86)|(.原创 2020-07-21 17:09:49 · 371 阅读 · 0 评论 -
java实现特殊词过滤功能-----------DFA算法
实现过程:先自己准备要一个敏感词词库.txt文件,放到resource根目录下工具类:package com.msis.micro.gp.business.app.mgr.utils;import java.util.*;/** * @Author Amy Tang * @Description: TODO * @Date 2020/5/28 上午 11:22 */public class SensitivewordFilter { private Map<原创 2020-06-04 10:28:48 · 389 阅读 · 0 评论 -
使用ORM全自动框架insert成之后,对象立刻获取主键自增id的方法
自己日常开发中用到的方法,两种都可行,个人喜欢全自动框架,简单方便!!!方法一:自己写sql时是这样获取的,添加属性:useGeneratedKeys="true" keyProperty="feedbackRole.id" <insert id="create" parameterType="com.msis.micro.gp.business.app.mgr.domain.FeedbackRole" useGeneratedKeys="true" keyP.原创 2020-07-10 10:19:38 · 1316 阅读 · 2 评论 -
docker运行spring boot 包镜像出现 no main manifest attribute问题
问题:在进行docker部署的时候,开始对项目进行打包,在启动该镜像时运行命令docker logs 【容器ID】,查看运行日志提示:no main manifest attribute, in app.jar提示没有入口类信息解决项目基于maven pom多模块的开发的,然后镜像内没有可以运行的程序文件如下: <build> <plugins> <plugin> .原创 2020-07-09 14:40:47 · 1303 阅读 · 0 评论 -
非常方便的,超实用的,常用idea快捷键!!!!!(持续更新)
IDEA快捷键黄色为常用搜索类快捷键快捷键 描述Ctrl + F 文件内查找字符串Ctrl + Shift + F ...原创 2020-02-27 10:45:42 · 1903 阅读 · 0 评论 -
参数检验之--------BindingResult总结
记一个简单哟好用的API:BindingResult今天在看项目是看到了一个很有意思的技术点!!!!!!!!!!!BindingResult使用起来很简单,一般在controller中使用作用:用于对前端穿进来的参数进行校验,省去了大量的逻辑判断操作!!!!!!!!!!!相关的校验API:空检查@NotEmpty:用在集合类上面;不能为null,而且长度必须大于0@NotBlank:...原创 2019-11-18 17:52:48 · 8416 阅读 · 8 评论