
java基础
文章平均质量分 71
1
九离⠂
月亮很亮,亮也没用,没用也亮
展开
-
AQS详解
AQS的全称是AbStractQueueSynchronizer,翻译过来的意思就是抽象队列同步器。这个类在java.util.concurrent.locks包下边。AQS就是一个抽象类,主要用来构建锁和同步器。}.}.}原创 2022-10-21 18:12:14 · 927 阅读 · 0 评论 -
Java基础知识之Integer和Int的区别
而java API中对Integer类型的valueOf的定义如下,对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127这个Integer对象进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了。Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)原创 2022-08-22 16:44:02 · 360 阅读 · 0 评论 -
Mybatis源码解析
mybatis源码解析原创 2022-07-18 15:42:13 · 395 阅读 · 0 评论 -
Spring Boot面试必问:启动流程(自动装配)
Spring Boot 自动装配原创 2022-07-18 09:59:37 · 1254 阅读 · 1 评论 -
【java技巧】Java四舍五入保留小数点后两位
【java技巧】Java四舍五入保留小数点后两位文章目录【java技巧】Java四舍五入保留小数点后两位方法1:方法2:方法3:方法4:方法5:在日常开发中,我们会遇到很多数字处理,最常见的其实就是数值的四舍五入和保留两位小数,在此,我总结5中方法以供参考。觉得有用记得点赞哦~~方法1:String format = new DecimalFormat("#.0000").format(3.1415926);System.out.println(format);输出结果为 3.1416原创 2022-04-18 15:13:04 · 10673 阅读 · 0 评论 -
【jvm内存占用过高分析】
【jvm内存占用过高分析】1、首先进入服务容器内//获取服务容器名称kubectl get pods |grep <服务名称>// 进入容器内部kubectl -it exec <上一步获取的服务对应的容器名称> bash2、使用top命令top观察占用CPU或者MEN(内存)使用情况最高的进程,记录PID;3、使用top -p PID 命令top -p PID 观察该PID对应进程的占用情况shift + h然后使用shift + h原创 2022-04-13 09:26:46 · 4014 阅读 · 0 评论 -
【项目经验】求集合交集,并集,差集
【项目经验】求集合交集,并集,差集文章目录【项目经验】求集合交集,并集,差集一、两个set集合元素初始化二、求交集三、求差集3.1 获取在set1而不在set2中的元素3.2 获取在set2而不在set1中的元素四、求并集一、两个set集合元素初始化Set<String> set1 = new HashSet<String>() { { add("王者荣耀"); add("英雄联盟");原创 2022-04-11 16:34:44 · 208 阅读 · 0 评论 -
最全Spring MVC面试题总结
最全Spring MVC面试题总结一、Spring MVC概述1.1 spring MVC了解Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。1.2 Spring MVC 主要组件(1)前端控制器 DispatcherServlet(不需要程序员开发)作用:接收请求、响应结果,相当于转发器,有了Dispa原创 2022-04-06 15:19:23 · 656 阅读 · 0 评论 -
最全Spring面试题总结
最全Spring面试题总结一、Spring概述1.1 spring简介Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。Spring可原创 2022-04-06 15:07:41 · 272 阅读 · 0 评论 -
Java并发编程最全面试题(三万字推荐)
java并发编程面试题,线程,线程池,同步原创 2022-04-06 13:52:54 · 600 阅读 · 0 评论 -
Java虚拟机(JVM)最全面试题
最全java面试题之JVM面试题总结原创 2022-04-06 10:39:56 · 2435 阅读 · 0 评论 -
【java面试】6万字最全Java知识体系梳理,还在找面试题?看这篇就够啦
一、基础1.1JVM1、JVM五大内存区域1、程序计数器(PC),一块较小的内存空间,可以看做当前线程所执行字节码的行号指示器。在JVM规范中,每个线程都有它自己的程序计数器,并且任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的java方法的JVM指令地址;2、java虚拟机栈,线程私有,每个方法在执行的同时都会创建一个栈帧,每个栈帧对应一个被调用的方法,栈帧中用于存储局部变量表、操作数栈、动态链表、方法出口等信息。每一个方法从开始执行到结束都对应一个原创 2022-03-31 00:00:07 · 2705 阅读 · 3 评论 -
【项目经验】开发必备技能Git以及Git的基本使用
Git是一个开源的分布式版本控制系统,是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件,Git可以使用本地创建仓库与网络仓库,解决了集中管理型版本控制软件存在的一些问题...原创 2022-04-01 00:11:54 · 1020 阅读 · 0 评论 -
【java初学】分支结构和循环
文章目录分支结构和循环1. 分支结构1.1 switch - case1.2 switch - case使用注意事项2. 循环结构2.1 为什么要用循环结构2.2 while 循环结构2.3 do while 循环结构2.4 while 和 do while结构对比2.5 for 循环结构2.6 break关键字2.7 continue关键字[鸡肋]分支结构和循环1. 分支结构1.1 switch - caseswitch (/* 选择变量 */) { case 常量1: 处原创 2022-03-30 00:04:24 · 206 阅读 · 0 评论 -
【java初学】变量定义,运算符和分支结构
文章目录变量定义,运算符和分支结构1. 变量定义1.1 代码演示1.2 变量定义错误总结和分析1.2.1 float变量赋值操作问题1.2.2 long类型变量数据类型一致化要求1.2.3 字符类型变量操作赋值,必须使用字符本身,不得使用编码值1.2.4 Java中规定变量未赋值,不得使用,避免没有必要的野值问题1.2.5 Java中规定,变量未定义不得使用【常见拼写错误】2. 运算符2.1 算术运算符2.2 偷懒专用算术运算符2.3 自增自减运算符 [逐步淘汰中...]2.4 自增自减运算符常见面试题原创 2022-03-30 00:04:00 · 498 阅读 · 0 评论 -
【java初学】Java第一个程序,常量和变量
文章目录Java第一个程序,常量和变量1. Java第一个程序1.1 Notepad++准备1.2 Java第一个代码1.3 编译执行Java程序1.4 第一个代码问题2. 计算机存储单位和方式2.1 计算机存储单位2.2 进制关系和转换[了解]2.3 原码,反码和补码 [听懂了赚,听不懂不赔 仅做了解]3. 常量【伪重点】3.1 生活中的常量3.2 开发中的常量3.3 字符3.3.1 字符集3.3.2 转义字符3.3.3 面试巨坑题4. 变量【伪重点】4.1 生活中的变量4.2 开发中的数据类型【重点】4原创 2022-03-30 00:03:40 · 232 阅读 · 0 评论 -
【java基础】最全quartz详解使用
文章目录一、引言1.1 简介二、Quartz使用2.1 导入依赖2.2 定义Job2.3 API测试2.4 默认配置2.5 核心类说明三、Trigger3.1 SimpleTrigger3.2 CronTrigger 【`重点`】3.2.1 Cron表达式组成3.2.2 Cron表达式符号3.2.3 Cron表达式示例四、Spring整合Quartz 【`重点`】4.1 依赖4.2 定义Job4.3 配置applicationContext.xml4.4 操作4.4.1 启动任务4.4.2 任务操作4.4.原创 2022-03-30 00:02:06 · 2304 阅读 · 0 评论 -
【maven】最全Maven详解,看这一篇就够啦
文章目录一、引言1.1 项目管理问题1.1.1 繁琐1.1.2 复杂1.1.3 冗余1.2 项目管理方案二、介绍三、Maven安装3.1 下载Maven3.2 Maven安装3.2.1 解压3.2.2 环境变量3.2.3 测试四、Maven配置4.1 本地仓库4.2 JDK配置五、仓库5.1 概念5.2 仓库分类5.3 本地仓库5.4 远程仓库5.4.1 中央仓库5.4.2 公共仓库【`重点`】5.4.3 私服【了解】六、Idea-Maven6.1 在Idea中关联Maven6.2 创建Maven项目6..原创 2022-03-29 09:42:43 · 28515 阅读 · 0 评论 -
【项目经验】Log日志操作
文章目录一、引言1.1 日志介绍1.2 日志级别1.3 日志作用二、解决方案12.1 Log4j+Commons-Logging2.1.1 导入依赖2.1.2 基本使用2.1.3 配置信息三、解决方案23.1 Logback+SLF4j3.1.1 导入依赖3.1.2 基本使用3.1.3 配置信息一、引言1.1 日志介绍用于记录系统中发生的各种事件。记录的位置常见的有 :控制台、磁盘文件等1.2 日志级别日志级别从低到高:TRACE(堆栈)、DEBUG(调试期)、INFO(运行期)、WA.原创 2022-03-29 09:27:49 · 590 阅读 · 0 评论 -
【项目经验】springBoot在拦截器获取PathVariable中的值
【项目经验】springBoot在拦截器获取PathVariable中的值(替换url内的参数)1、controller层方法如下: /** * 查询节点元数据信息 * @param request * @param clusterId * @param * @param * @return */ @GetMapping("/api/{clusterId}/{name}/metadata") public String getNode原创 2022-03-29 00:05:42 · 3385 阅读 · 0 评论 -
【项目经验】java中获取map的key和value
【项目经验】java中获取map的key和value获取map的key和value的方法分为两种形式:map.keySet():先获取map的key,然后根据key获取对应的value;map…entrySet():同时查询map的key和value,只需要查询一次;两者的性能比较可以查看map.keySet()和map.EntrySet()的比较。以下是获取map的key和value,以及map里面的元素通过key或者value来比较大小并排序;注意:当map的value值相等时,根据key原创 2022-03-29 00:05:28 · 1850 阅读 · 0 评论 -
【java并发】Executor框架详解
Java并发——Executor框架详解一、Executor框架概念我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1.5开始,为了把工作单元与执行机制分离开,Executor框架诞生了,他是一个用于统一创建与运行的接口。Executor框架实现的就是线程池的功能。二、Executor框架结构详解2.1 Executor框架(1)任务。也就是工作单元,包括被执行任务需要实现的接原创 2022-03-26 01:01:15 · 938 阅读 · 0 评论 -
【java并发】ScheduledThreadPoolExecutor详解
ScheduledThreadPoolExecutor详解一、ScheduledThreadPoolExecutor简介ScheduledThreadPoolExecutor继承自ThreadPoolExecutor。它主要用来在给定的延迟之后运 行任务,或者定期执行任务。ScheduledThreadPoolExecutor的功能与Timer类似,但 ScheduledThreadPoolExecutor功能更强大、更灵活。Timer对应的是单个后台线程,而 ScheduledThreadPoolE原创 2022-03-26 01:00:55 · 7784 阅读 · 0 评论 -
【java实战】异步任务使用
【java实战】异步任务使用一、线程配置类进行异步任务线程池的配置下边两种方法定义线程池1.1 使用Executorpackage com.awifi.cloudnative.container.manage.provider.config;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context.annotation.Bean;import org.sprin原创 2022-03-26 01:00:21 · 1478 阅读 · 0 评论 -
【Java基础】吃透Java IO:字节流、字符流、缓冲流
【Java基础-3】吃透Java IO:字节流、字符流、缓冲流IO流是Java中的一个重要构成部分,也是我们经常打交道的。下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握得很好,可以立即关闭文章。反之,你可以在后面得文章中寻找答案。Java IO流有什么特点?Java IO流分为几种类型?字节流和字符流的关系与区别?字符流是否使用了缓冲?缓冲流的效率一定高吗?为什么?缓冲流体现了Java中的哪种设计模式思想?为什么要实现序列化?如何实现序列化?序列化数据原创 2022-03-25 09:47:21 · 696 阅读 · 1 评论 -
【项目经验】拦截器拦截入参出参
拦截器拦截入参出参入参 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { logger.info("开始拦截........."); String business = request.getRequestURI(); business.replaceAll("cloud-nati原创 2022-03-25 09:35:31 · 1057 阅读 · 0 评论 -
【java基础】泛型使用详解
文章目录泛型1. 泛型1.1 为什么要使用泛型1.2 泛型的基本格式1.3 泛型在类内的使用1.4 泛型在接口中使用泛型1. 泛型1.1 为什么要使用泛型1. 泛型能够让代码更加具有普适性!!! 例如昨天的排序算法,目前支持的有且只有Worker数据类型 后期开发中,一定会涉及到很多种数据类型的排序,排序算法是一致的,不同的是排序规则,和排序处理的数据类型 可以使用泛型来对数据类型进行更高层级的处理2. 泛型可以减少没有必要的强制类型转换!!!3. 泛型可以在满足数据类型多样化的情况下,原创 2022-03-25 09:25:48 · 385 阅读 · 0 评论 -
【java基础】接口和多态详解
接口1. 接口1.1 接口使用骚操作1. 接口可以通过extends关键字,继承其他接口 相当于电子设备的协议兼容 USB3.1 ==> USB32.存在继承联系的接口,如果出现了相同的方法,实现类继承当前接口时,只需要完成一个。 相当于电子设备的协议相同。 Type-C接口3.接口中可以使用default关键字来描述默认方法。当前默认方法可以有方法体,实现类非强制要求完成。 JDK1.8特征interface A { void test();}interface B {原创 2022-03-25 09:24:39 · 462 阅读 · 0 评论 -
【java基础】吐血总结Stream流操作
Stream流操作讲解1 Stream概述java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利。那么什么是Stream?Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。Stream可以由数组或集合创建,对流的操作分为两种:中间操作,每次返回一个新的流,可以有多个。(遍历foreach、匹配find–match、原创 2022-03-25 09:00:11 · 53722 阅读 · 17 评论 -
【java基础】Java 8 Optional 类
Java 8 Optional 类Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。类声明以下是一个 java.util.Optional 类的声明:public final class Optional<T>原创 2022-03-25 09:00:44 · 112 阅读 · 0 评论 -
【java基础】java集合学习
java集合1、概述List,Set,Map都是接口,前两个继承至Collection接口,Map为独立接口Set下有HashSet,LinkedHashSet,TreeSetList下有ArrayList,Vector,LinkedListMap下有HashTable,LinkedHashMap,HashMap,TreeMapCollection接口下还有个Queue接口,有PriorityQueue类2、使用规律唯一吗? 是: Set 排序吗? 是: TreeSet或原创 2022-03-23 20:40:31 · 778 阅读 · 1 评论 -
【java基础】java异常,捕获与抛出
java异常,捕获与抛出1、概念:在java里,所有的异常都有一个共同的祖先Throwable(可抛出)。Throwable:有两个重要的子类:Exception(异常)和Error(错误)。Error:是程序无法处理的错误,表示运行应用程序中较严重的问题。Exception:是程序本身可以处理的异常。2、处理异常机制在java中,异常处理机制为:抛出异常,捕捉异常。抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状原创 2022-03-23 20:40:48 · 4776 阅读 · 0 评论 -
【java线程】线程池学习
线程池1、线程池的优势1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁操作的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调控和监控。2、线程池参数corePoolSize(必须):核心线程数。默认情况下,核心线程会一直存活,但是当将AllowCoreThreadTimeout设置为true时,核心线程也会超时回收。原创 2022-03-24 16:58:28 · 358 阅读 · 0 评论 -
【java线程】线程、多线程学习
线程、多线程一个线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。进程: 一个进程包括由操作系统分配的内存空间,包含一个或多个线程。对于计算机而言就是一个独立的程序。线程是进程的一部分,使用的是程序内部资源,每一个线程都要向进程申请资源,并且当前资源很多都是共享资源。1、线程生命周期新建状态--(执行start()方法)---》就绪状态----(获取CPU资源,执行run方法)-----》运行状态---(run方法执行完成)---》死亡状态原创 2022-03-23 20:41:05 · 150 阅读 · 0 评论