自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

光辉岁月

只要肯期待,希望不会幻灭,迎接你的光辉岁月...

  • 博客(70)
  • 资源 (8)
  • 收藏
  • 关注

原创 javaSE8-新特性-Stream&Option

Stream是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。“集合本质是的数据存储,Stream本质的是数据的计算!stream自己不会存储元素。stream不会改变源对象。相反,他们会返回一个持有结果的新Stream。stream操作是延迟执行的。与stream操作有关,因为只有终止操作,才会执行中间联操作,并产生结果(如果没有终止操作,中间的filtermap根本不会执行), 类似于链式调用。

2026-10-22 18:37:56 23

原创 javaSE8-新特性-方法引用&构造器引用

换句话说,方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法,可以认为是Lambda表达式的一个语法糖。和方法引用类似,函数式接口的抽象方法的形参列表和构造器的形参列表一致。抽象方法的返回值类型即为构造器返回的对象。情况3:接口抽象方法的第一个参数作为方法调用者,第二个及后续参数作为方法的实参。情况1和情况2:要求接口抽象方法的形参列表和返回值类型,与引用的方法完全一致。当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!

2026-10-22 08:51:18 41

原创 1.javaSE8-新特性- Lambda表达式与函数式接口

Java从诞生日起就是一直倡导“一切皆对象”,在Java里面面向对象(OOP)编程是一切。但是随着python、scala等语言的兴起和新技术的挑战,Java不得不做出调整以便支持更加广泛的技术要求,也即java不但可以支持OOP还可以支持FP / 函数式编程。如果一个接口中,只声明了一个抽象方法,则此接口就称为函数式接口。比如上边例子中的RunnableComparatorConsumer我们可以在一个接口上使用注解,这样做可以检查它是否是一个函数式接口。

2026-10-22 07:29:02 209

原创 9.日期时间类

此外,它们也不是线程安全的;不能处理闰秒等(什么是瑞年?每隔2天,多出1s)。SimpleDateFormat类定义了以下模式字母(所有其他字符。偏移性:Date中的年份是从1900开始的,而月份都从0开始。格式化:格式化只对Date有用,Calendar则不行。类似于Date类,并且提供了一系列与Date转换的方式。可变性:像日期和时间这样的类应该是不可变的。

2026-10-21 18:42:29 131

原创 8.大的数据保存类

如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。遗憾的是,不能使用人们熟悉的算术运算符(如:+和*)处理大数值。而需要使用大数值类中的add和multiply方法。

2026-10-21 18:28:00 127

原创 7.system类

【代码】7.system类。

2026-10-21 17:34:49 112

原创 6.数组工具类

java.util.Arrays 是 Java 提供的数组工具类,里面全是静态方法,用来方便地操作数组。

2026-10-20 23:29:12 197

原创 5.math类

是“只能生成[0,1)double 的便捷方法”;Random是“功能更完整、可控制种子的伪随机数类”。普通简单场景用,需要更多随机类型和范围控制时用Random。

2026-10-20 23:24:49 145

原创 4.String类

1)一个可变的字符序列。此类提供一个与StringBuffer兼容的API,但不保证同步(StringBuilder不是线程安全)。该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比StringBuffer要快。2)在StringBuiIder上的主要操作是append和insert方法,可重载这些方法,以接受任意类型的数据。

2026-10-20 23:18:18 1134

原创 3.包装类

装箱和拆箱是编译器认可的,而不是虚拟机。编译器在生成类的字节码时,插入必要的方法调用。虚拟机只是执行这些字节码。2)jdk5 以后(含jdk5)的自动装箱和拆箱方式。自动装箱底层调用的是。1)jdk5 前的手动装箱和拆箱方式,:基本类型—>包装类型,反之,,所以自动装箱有可能会抛出一个。由于包装器类引用可以为。

2026-10-19 18:17:55 153

原创 2.异常类

当程序运行过程中抛出异常后,程序就自动退出,下面的代码就不执行了。如果抛出异常的问题是个致命的问题,就会导致系统崩溃。所以java设计提出了一个异常处理机制来解决这个问题。异常处理机制:如果程序员认为某段程序可能会出现异常,可以使用来捕获异常。捕获到的异常可以自己需要的方式进行处理。当程序中出现了某些"错误",但该错误信息并没有在Throwable子类中描述处理,这个时候可以自己设计异常类,用于描述该错误信息。

2026-10-19 01:20:09 130

原创 1.Object类

java.lang包是Java中最基础和最核心的包,它包含了Java编程中最基本的类,如StringObjectSystem等。这个包非常特殊,JVM会自动加载它,不需要使用import语句显式导入。Object 是 Java 中所有类的根类:除了基本类型,任何引用类型都直接或间接继承 Object。所以一个 Object 引用可以指向任意对象。

2026-10-18 21:54:48 179

原创 16.JavaSE-反射

使用现有技术,你能做的吗?反射机制反射机制允许程序在执行期借助于ReflectionAPI取得任何类的内部信息(比如成员变量,构造器,成员方法等等),并能操作对象的属性及方法。反射在设计模式和框架底层都会用到。加载完类之后,在堆中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象包含了类的完整结构信息。通过这个对象得到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,形象的称之为:反射。这张图清晰地展示了Java类从编写到运行的完整生命周期以及反射机制的底层内存

2026-10-16 00:08:40 192

原创 15.JavaSE-网络

类DatagramSocket和DatagramPacket【数据包/数据报】实现了基于UDP协议网络程序。UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号。UDP协议中每个数据报都给出了完整的地址信息,因此无须建立发送方和接收方的连接。

2026-10-16 00:04:47 243

原创 14.JavaSE-IOStream

store:将Properties中的键值对存储到配置文件,在idea中,保存信息到配置文件,如果含有中文,文件中会存储为unicode码。创建一个使用文件描述符 fdObj FileInputStream,代表一个现有的连接到一个实际的文件在文件系统。如果文件不存在,创建该文件。创建一个 FileInputStream通过打开一个连接到一个实际的文件,文件路径名name命名的文件系统。如果用一个不存在的文件构造一个Scanner,或者用一个不能被创建的文件名构造一个PrintWriter,

2026-10-15 00:45:16 228

原创 13.javaSE-多线程

是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码。线程由进程创建的,是进程的一个实体。一个进程至少得要有一个线程,也称之为单线程。一个进程有多个线程怎么理解?比如迅雷同时可以下载多个任务,qq可以和多个人同时聊天,这种在同一时刻可以执行多个线程称为多线程。同一时间段内,多个任务交替执行,造成一种“貌似同时”的错觉。同一个时刻,多个任务同时执行。多核cpu可以实现并行。在java中线程来使用有两种方法。Thread类图:上面代码执行示意图:从上图可以看出主线程[main

2026-10-14 00:20:47 180

原创 12.javaSE-泛型

使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。自定义泛型就是我们自己定义的类,然后使用泛型。class 类名 <T, R..>{ //T,R就是自定义泛型//成员interface 接口名 <T, R..>{ //T,R就是自定义泛型//成员修饰符 <T,R..> 返回类型 方法名(参数列表) {...

2026-10-12 01:33:32 185

原创 11.javaSE-集合

使用EntrySet方法可以得到Map的视图映射的set对象,因为EntrySet的泛型是Map.Entry<K,V>,这里的 k 就是 set, v 就是 collection,然后 Entry<K,V>是一个数据类型, EntrySet是一个集合,Entry就会作为一个数据放进这个集合里面。当创对象时,如果使用的是无参构造器,则初始elementData容量为0,第1次添加,则扩容elementData为10,如需要再次扩容,则扩容eIementData为1.5倍。value为null,可以多个。

2026-10-09 09:24:39 149

原创 10.枚举和注解

“枚举”字面意思可以理解为一一例举。枚举是一组常量的组合,是一种特殊的类,里面只包含有限的特定的对象。实现方式有两种:自定义类实现枚举自定义枚举类特点:使用关键字实现枚举enum关键字实现枚举特点:当我们使用关键字开发一个枚举类时,隐式地会继承Enum类,而且是个final类。使用javap工具反编译clss类可以看出。枚举不能再继承类,是因为它已经隐式继承了 ;但它可以实现多个接口,所以仍然具备接口多态能力。使用创建出来的对象其实和自定义创建出来的对象都是使用 修饰的。如果使用无参构造器创建

2026-10-08 06:57:38 176

原创 9.面向对象高级特征

interface 接口名 {//属性 字段默认 public static final //方法 }注意:jdk1.7以前接口里面所有的方法都是抽象方法(没有方法体),jdk8后接口可以有静态方法,默认方法(需要使用static、default关键字修饰)。接口名.属性实现接口的类的对象.属性(接口属性)实现接口的类名.属性(接口属性)接口名.方法名。

2026-10-08 06:16:53 495

原创 8.面向对象基础特征

如果父类没有无参构造器,并且在子类的构造器中又没有显式地调用父类的其他构造器,则Java编译器将报告错误,那么这种情况就必须在子类的构造器中显式地调用super去指定使用父类的那个构造器完成父类的初始化工作。)将类组织起来,使用包的主要原因是确保类名的唯一性。类A1和类A2在同一包中,类A2有个protected的方法testA2,类A1不是类A2的子类(或子类的子类),类A1可以访问类A2的方法testA2。在继承关系中,父类中的方法已经无法满足子类中的业务需求,这时需要将父类的方法在子类中进行重写。

2026-10-06 17:32:24 225

原创 7.javase-面向对象

类是对一个集合的抽象、是对事物分析结构后抽象出来的模板。现实世界中,事物A和事物B之间具有共同的特征,进行抽象总结出的一个模板,这个模板被称为类。[修饰符列表] class 类名{//属性(对事物状态信息的抽象) 属性的类型为java所有的数据类型[属性修饰符] 数据类型 变量名;//这里也可以直接赋值初始化//方法[属性修饰符] 返回值类型 方法名(参数列表){//方法体java中所有的类都是引用类型识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词。商品(Item)

2026-10-05 17:40:22 190

原创 6-java方法

递归回溯现象:从问题的某一种可能出发, 搜索从这种情况出发所能达到的所有可能, 当这一条路走到” 尽头 “的时候, 再倒回出发点, 从另一个可能出发, 继续搜索. 这种不断” 回溯 “寻找解的方法, 称作回溯法。java 允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。方法就是完成某个特定的功能的一段代码片段,并且可以被重复调用这段代码。new一个新的提姆对象改变了h变量的指向,并不会改变teemo变量的hp。业务的层次决定了递归自身的调用层次,层次多的话会很耗费栈内存的。

2026-10-05 17:40:02 209

原创 5.java-数组

数据类型 数组名[] = new 数据类型[数组长度];数据类型[] 数组名= new 数据类型[数组长度]也是可以的。这样定义数组中的元素是默认值。数据类型 默认值引用数据类型 null(空值)也可以先声明,再分配空间数据类型[] 数组名;数组名 = new 数据类型[数组长度];数据类型[] 数组名 = {n1, n2, n3 ... }数据类型[] 数组名 = new 数据类型[]{n1, n2, n3 ... }

2026-10-04 16:49:48 181

原创 4.java结构控制

6.case中也可以不写 语句块和break,这样表达式与当前case常量和表达式与下一个case常量之间是或的关系;语句,用于跳出多重嵌套的循环语句。break 语句出现在多层嵌套语句块中时,可以通过标签指定要终止的是那一层语句块。多重循环嵌套使用,一般不建议超过3层。如果学业务需要真的需要很多循环,可以使用递归方法。因为输入是可见的,所以Scanner类不适用于从控制台读取密码。为了安全起见,返回的密码存放在一维字符数组中,而不是字符串中。3.case 子句中的变量必须是常量,而不是变量。

2026-10-04 08:21:11 172

原创 3.java运算符

java 中有7个位运算分为两组(&、|、^、~、>>、<< 和 >>>),位运算是对二进制的操作。逻辑与: 不管第一个条件是否为false, 都会去判断后边的条件,结果为flase。短路与: 如果第一个条件为false, 后边的条件不在去判断,结果为flase。逻辑或: 不管第一个条件是否为true, 都会去判断后边的条件,结果为true。**使用细节:**表达式1 和 表达式2 的类型要和赋值的变量类型一致或可以自动转换。短路或: 如果第一个条件为true, 后边的条件不在去判断,结果为true。

2026-10-04 08:01:11 239

原创 2.java变量

程序可以万物。

2026-10-04 06:56:26 225

原创 java 概述

java 程序为什么具有跨平台性当把java程序编译成Test.class时候,Test.class就可以在Linuxwindowsmac上运行。就是因为每个平台上都安装了相应的JVM。JVM包含在jdk的软件中,可以一起安装。所以说,java之所以能够做到一次编译,到处运行这么横, 其实功劳归功于JVM。

2026-10-04 05:24:57 241

原创 6.mybatisplus学习-BaseMapper、Service、常用注解

由于mybatis-plus特性是只做增强不做改变,所以之前mybatis如何做,现在也一样。...# 设置mapper文件的路径 默认路径是 classpath*:/mapper/**/*.xml。

2026-09-29 18:14:43 197

原创 7.mybatisplus学习-条件构造器、插件、通用枚举、多数据源环境、MybatisX

是一个开源的 Spring Boot 多数据源启动器,提供了丰富的功能,包括数据源分组、敏感信息加密、独立初始化表结构等。MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。MyBatisPlus自带分页插件,只要简单的配置即可实现分页功能。乐观锁是一种并发控制机制,用于确保在更新记录时,该记录未被其他事务修改。类,实现了简单分页模型。如果你需要实现自己的分页模型,可以继承。类型的集合,用于存储所有要应用的内部拦截器。插件,使得在应用中实现乐观锁变得简单。

2026-09-29 18:14:11 805

原创 5.MyBatisPlus学习

mybatisplus要求实体类类名和数据库表名一致,要求更严格。否则运行测试用例的时候会有WARN信息。

2026-09-26 11:34:28 161

原创 4.Mybatis学习-动态sql、缓存

缓存虽然能帮助提高查询速度,但是有时候我们在一个方法执行好任务之后,再次相同条件查询,此时我们是想查询最新的数据。此后,若再次执行相同的查询语句,结果就会从缓存中获取。默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句(增、删、改语句)时刷新。会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问。Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了解决。eviction属性:缓存回收策略,默认的是LRU。一级缓存),再去查找。

2026-09-26 11:24:28 156

原创 3.Mybatis学习-ResultMap、延迟加载

此时就可以实现按需加载,获取的数据是什么,就只会执行相应的sql.全局配置必须关闭,因为如果它开启表示任何方法的调用都会。, 所有需要关闭这个属性。3.5版本是默认关闭的。当开启时,所有关联对象都会延迟加载.分步查询可以实现延迟加载,默认是关闭的。属性设置当前的分步查询是否使用延迟加载,实体类之间一对多和多对一关系如何映射?需要在核心配置文件中设置全局配置信息。如果有些功能需要立即加载,可以通过。属性才可以配置,否则就算配置了。属性只有开启了全局配置。,也是立即加载效果。

2026-09-26 11:17:32 157

原创 2.mybatis学习-核心功能

mapper接口的参数,使用@Param注解命名(list,map,数组类型都可以加上注解进行访问)。此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储。若想给mapper接口传递多个参数时,可以手动将这些参数放在一个map中存储,然后作为参数传递。虽然有5种情况,其实可以分为两种情况:一种是参数是对象类型,其他的直接加@Param访问就好。(其实只要有get和set方法就可以)的方式访问即可,但是需要注意。获取参数的核心主要是为了拼接sql语句。以键的方式访问值即可,但是需要注意。

2026-09-26 11:14:29 35

原创 1.mybatis学习-基础

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。他封装的JDBC,更方便、简洁的操作数据库。他的原名叫“iBatis”,提供了持久层框架包括SqlMaps和Data access objects(DAO)

2026-09-26 11:09:50 143

原创 maven详细教程

Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具。基于项目对象模型(POM-project object model),可以通过一段描述来管理项目构建的软件项目管理工具。

2026-09-25 10:41:29 270

原创 Axios基本使用

Axios 是一个基于promise网络请求库,作用于node.js和浏览器中特性从浏览器创建从 node.js 创建http请求支持PromiseAPI拦截请求和响应转换请求和响应数据取消请求自动转换JSON数据客户端支持防御XSRF。

2025-07-25 23:16:05 817

原创 promise深入理解和使用

/保存Promise对象到this中//只能修改一次//更改状态和值//如果有保存then方法的参数回调,就执行})//只能修改一次//更改状态和值//如果有保存then方法的参数回调,就执行//如果有保存then方法的参数回调,就执行})try {//同步调用『执行器函数』//如果沒有传递onReject参数//如果沒有传递onResovle参数//返回一个Promise对象try {resolve(v)}, r=>{reject(r)})}else{

2025-06-29 16:28:31 1240

原创 es9-10-11特性

接受的参数为promise对象集合,并且返回一个promise对象。返回的这个对象始终是一个成功Promise对象,值为传入的promise对象生成的数组。一般的静态import在app.js里面把所有的需要的模块都import进来。假如需求变化,需要提取a标签的某些属性,对应的结果的下标也会发生变化。方法传入的promise对象有一个错误,那么函数返回的promise对象就是一个失败的Promise对象。promise成功的值就是加载的模块暴露出来的那个对象。trimStart 清除左侧空格。

2025-06-29 16:25:36 969

原创 es7-8特性

函数体内部返回的结果如果是一个非Promise类型的对象,调用函数后返回的结果就是成功Promise对象,promise对象的值为返回的值。该方法返回指定对象所有自身属性的描述对象,这些描述对象在创建对象时候设置的。如果函数体内抛出错误, 调用函数后返回的结果是一个失败的 Promise。promise对象的结果由async函数执行的返回值决定。async函数的返回值为promise对象。方法返回一个给定对象的所有可枚举属性值的数组。如果函数体内返回是一个Promise对象。这样的结果可以创建Map。

2025-06-29 16:23:11 501

nginx优化的一些参数

MicrosoftWord-nginx优化doc1关于nginx的一些优化(突破十万并发)一般来说nginx配置文件中对优化比较有作用的为以下几项worker_processes8;nginx进程数建

2017-05-03

上亿级日志数据分析

2016-11-14

kafka:一个分布式消息系统

2016-11-14

上亿级别记录等大数据场景的MySQL优化和运维之道

2016-11-14

mysql高可用架构

2016-11-14

linux的系统优化

2016-11-14

Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节

2017-05-03

mysql主从复制延迟问题

2017-05-03

linux下高cpu解决方案

2016-11-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除