自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XYC的学习经验博客

记录自己技术进步的每一步

  • 博客(106)
  • 收藏
  • 关注

原创 [Java后端面经]-自用牛客大中小厂一面二面三面实习or正式批-

后端开发面经

2024-09-13 22:15:41 6831

原创 【数据库】Mysql从入门到精通-一篇文章养成你的crud能力

储存数据是处理数据的第一步创建数据库->确认字段->创建数据表->插入数据DB名,table名,不得超过30个字符只能包含A-Z a-z 0-9 _ 一共63个字符DB名,table名,field名,对象名中间不能有空格同一个MySQL中,以上各种不能重名尽量保证不与保留字冲突,如果冲突,那么请用``引起来#创建数据库#方式1#展示这个数据库#显式的指明了数据库的字符集 方式2#(推荐的方法)如果要创建的数据库已经存在,则创建不成功但是不会报错 方式3#r。

2024-08-07 20:33:11 977 1

原创 【中间件】Redis从入门到精通-黑马点评综合实战

文章目录一:Redis基础1.Redis是什么2.初识Redis3.Redis的数据结构A.通用命令B.String类型C.Key的层级格式D.Hash类型E.List类型F.Set类型G.SortedSet类型二:Redis的Java客户端1.JedisA.引入依赖B.建立连接C.测试JedisD.释放资源2.Jedis连接池3.SpringDataRedisA.redisTemplateB.redisSerializerC.StringRedisTemplate三:Redis的企业应用1.短信登录(Re

2024-08-07 20:27:19 1180

原创 [Vue]Vue3从入门到精通-综合案例分析

一.Vue是什么:概念:Vue是一个用于构建用户界面的渐进式的框架以下的内容是自里向外的声明式渲染(Vuejs核心包)组件系统(Vuejs核心包)客户端路由VueRouter大规模状态管理Vuex构建工具Webpack/ViteVue的两种使用方式:Vue核心包开发->局部模块改造Vue核心包&Vue插件 工程化开发二.创建Vue实例与初始化渲染构建用户界面创建Vue实例,初始化渲染准备容器引包-开发版本/生产版本创建Vue new Vue();指

2024-08-07 20:24:33 994

原创 【Java】Mybatis从入门到精通-引例分析-项目实战

One用于一对一关联查询,通常用于主表查询从表。@Many用于一对多关联查询,通常用于主表查询多个从表。在实际应用中,单表查询通常不需要使用@One和@Many,因为单表查询不会涉及到关联关系。这两个注解主要用于处理多表关联查询。主查询:首先执行主查询,即查询主表(例如User表)。收集主键:在主查询的结果集中,MyBatis会收集主表记录的主键(或相关联的列)。执行关联查询:对于主查询结果集中的每一条记录,MyBatis会使用收集到的主键作为参数,调用@One注解中指定的方法(例如。

2024-08-07 20:23:08 1004

原创 【Java】NIO-从入门到精通-Netty先修课-全网最全-综合案例分析

Java NIO的零拷贝技术通过减少数据在用户空间和内核空间之间的拷贝次数,以及减少上下文切换,显著提高了数据传输的效率。这对于网络编程和文件处理等需要大量数据传输的场景尤为重要。Java NIO中的Files类提供了一系列静态方法来简化文件操作,包括文件的创建、删除、拷贝等。使用Files类可以轻松实现文件的多级拷贝,即从一个目录拷贝整个目录结构及其文件到另一个位置。在Java NIO中,尽管NIO以其非阻塞特性而闻名,但它也支持阻塞操作。

2024-08-07 20:21:08 807

原创 全网最全-Netty从入门到精通

Netty是一个提供异步事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。在Java领域,Netty被认为是除了Java原生NIO之外的最佳网络编程框架。Netty的核心组件主要包括Bootstrap、Channel、ChannelHandler、ChannelPipeline等。Bootstrap:Netty中的Bootstrap类用于配置和启动网络应用程序。Channel:Netty中的Channel是对网络连接的抽象,可以看作是传入或传出数据的载体。C

2024-08-07 20:19:26 988

原创 MyBatis学习笔记

建议分成两种情况进行处理1. 实体类类型的参数2. 使用@Param标识参数resultMap:设置自定义映射属性:id:表示自定义映射的唯一标识,不能重复type:查询的数据要映射的实体类的类型子标签:id:设置主键的映射关系result:设置普通字段的映射关系子标签属性:property:设置映射关系中实体类中的属性名column:设置映射关系中表中的字段名。

2024-04-14 14:19:13 368

原创 Spring+SpringMVC的知识总结

有人替我们创建组件的对象有人帮我们保存组件的对象有人帮我们自动组成有人替我们管理事务有人协助我们整合其他的框架A.SpringIOC接口接口提供了高级配置机制:可以管理任何类型的对象是子接口,扩展了如下功能:更容易与Spring的AOP功能集成资源消息处理特定于应用程序给予这个接口的实现,例如Web应用程序的WebApplicationContext提供了配置框架和基本功能,而添加更多特定于企业的功能.是的超集B.ApplicationContext实现类类型名简介。

2024-04-14 14:18:24 1041

原创 [Vue入门]Vue的使用:vue对象+data+el+插值表达式

2.root容器中的代码依然符合html规范,只不过混入了一些特殊的Vue语法。1.想让Vue工作,就必须创建一个Vue的实例,而且要传入一个配置对象。3.root容器里的代码被称为Vue模板。

2024-02-01 14:05:30 210 1

原创 [Java][线程][线程的基础认知]创建/使用/定时

public static void yield():yield只是让当前线程暂停一下,让系统的线程调度器重新调度一次,希望优先级与当前线程相同或更高的其他线程能够获得执行机会,但是这个不能保证,完全有可能的情况是,当某个线程调用了yield方法暂停之后,线程调度器又将其调度出来重新执行。1.1当线程内的任务需求很复杂时,我们在一个新的java文件中创建一个新的类 比如当我们需求多线程向服务端通讯的时候 例如MyThread这个新的类中去@override public void run(){}这个方法。

2023-12-26 10:10:05 186

原创 [Java][网络编程]服务端向客户端发送信息

3.现在客户端和服务端已经通过socket链接了,然后就需要创建一个InputStream的输入流来获取socket所对应客户端的流入内容。9.我们得把创建对象 和把对对象赋值的部分都留在try-with-resources结构里面 这样可以避免手动关闭对象对资源的占用。4.然后很关键的一点:需要创建一个ByteArrayOutPutStream这样的 字符数组的输出流来在控制台输出内容。6.现在我们进入循环读取客户端传进流的信息的时候了,因此需要调用接收传入流的ips中的read方法。

2023-12-24 21:20:19 377

原创 [Java][IO][Serializable]序列化+写出读取对象内容+try-with-resources

由此我们得到一个新的知识:当我们在IO流中需要去关闭一个对象对资源的占用时,最好是不要写try-catch这种结构。而是用一个try with resource的结构。这种结构将需要定义的对象放在try的括号中, Java会帮助我们自己去关闭它,不需要手动释放和关闭我们可以看下面的修改例子。资源无法正常关闭:在 try 块中,创建了 FileInputStream、BufferedInputStream 和 ObjectInputStream 等资源,但是在 catch 块中没有对这些资源进行关闭操作。

2023-12-23 20:40:03 108

原创 [Java][IOstream][转化流]以GBK读取数据用UTF-8写出数据的实例分析

编码格式纷繁复杂:我们知晓ascii这种支持256个字符的编码,也了解GB2312这种简体中文编码,以及GBK这种兼容性更加完善的汉字编码格式。同样的,在程序中以字符的形式处理完这些编码后,我们需要将其进行输出为一个新的文件,我们会以字节流这种方式来高效快速输出,我们将这个输出的过程称为OutputStreamWriter。这些编码类型往往集中于字符本身,因此我们想要转化一个含有若干字节的文件编码,就需要先将这些大量的字节变成字符,这个过程就是InputStreamReader。

2023-12-23 17:58:41 344

原创 [Java][IOStream][BufferedReader]的readLine/writeLine方法-游戏储存信息必备

假设我们将数据储存在一个txt文档中,那么使用这个方法就可以实现逐行的读取。在游戏的信息存储里面,我们经常需要保存一些玩家的属性。比如:生命值/魔法值/攻击力。

2023-12-23 10:13:39 232

原创 [Java][IO流]小文件的拷贝/循环读取/第三方变量

/之前就是没引入第三方变量 导致了嵌套调用 导致了数值的缺失。

2023-12-22 10:47:55 81

原创 [Java]FileOutputStream的换行/续写/一次性写出一个字符串的方法

1.续写:FileOutputStream这个io流中的write方法默认情况下是覆盖写入的,如果需要追加写入,需要添加一个参数true。2.虽然write只能一个字符一个字符写入 但是我们可以把想输入的字符串放在str 再将str转化成byte数组。

2023-12-22 10:18:18 360

原创 [Java][IO流]IO流的定义/分类/本地文件的写入写出

2.操作文件的类型:字节流(所有的文件 包含音视频)和字符流(只能操作纯文本 txt)字节流:InputStream 字节输入流 OutputStream 字节输出流。1.可以把程序中的数据保存到文件中(写出数据)output。2.可以把本地文件的数据加载到程序中(读取数据)input。File对文件本身进行操作 IO流可以对文件具体进行操作。FileOutputStream操作本地文件的字节输出流。FileInputStream操作本地文件的字节输入流。1.流的方向:输出流和输入流。

2023-12-21 22:19:31 232

原创 [Java][File]使用mkdir以及CreateNewFile来制作游戏存档的分级目录+异常抛出机制

其实我觉着这样写挺笨的,一种优化的方向是写一个嵌套的for for循环来创建文件夹 比如f[i][k].mkdirs 这样的效率会更高。

2023-12-21 12:56:34 139

原创 [Java][File]listFiles与listRoots&FilenameFilter filter的综合分析

File表示的路径是一个有内容的文件夹时 里面所有文件和文件夹的路径放在数组里返回。File表示的路径是一个有隐藏文件的文件夹 隐藏的文件也会被返回。File表示的路径是需要权限才能访问的文件夹 返回一个null。File表示的路径是一个空文件夹 返回一个长度为0的数组。File表示的路径不存在 返回Null。File表示的路径是文件 返回Null。

2023-12-20 18:32:09 567

原创 [Java][File]文件的创建与删除

4.删除文件、空文件夹 delete 注意:这个方法不会走回收站的。1.创建一个新的空的文件 createNewFile。3.制作多级文件夹 mkdirs。2.制作单级文件夹 mkdir。对一个File类型的对象而言。

2023-12-20 18:08:48 465

原创 [Java][File]判断与获取的方法

4.length只能获取文件的大小,以字节数表示,不能体现文件夹的大小。6.地址往往是在构造File的对象的时候添加的。1.isDirectory 是否为文件夹。5.getName可以获取文件的名字。2.isFile是否为文件。3.exist是否存在。

2023-12-20 15:25:43 235

原创 [Java][File]File的三种构造方法

3.File的三种构造方法->a.字符串变File类型/b.String类型的父级路径变String类型的子级路径。1.File对象表示路径,可以是文件,也可以是一个文件夹,可以是存在的,也可以是不存在的。2.绝对路径是带盘符的,相对路径是不带盘符的,默认到当前项目下去找。c.File类型的父级路径变String类型的子级路径。

2023-12-20 15:24:36 239

原创 [Java][异常]自定义异常的设计逻辑与应用

我们仅仅对其名字进行修改,令这个名字更加见名知意,同时提供一个可以修改的平台。编译时异常作用:提醒程序员去检查本地信息,比如链接本地数据库,检索本地文件。严格来说:我们所自定义的异常实际上大部分功能都源自于其继承的类。1.NameFormat是异常的名字 表示姓名格式化问题。//运行时:继承RuntimeException。2.Exception:表示当前类是一个异常类。我们写自定义异常是为了更加的见名知意。运行时异常:通常是参数错误导致的异常。//编译时:继承Exception。

2023-12-19 19:52:00 58

原创 [Java][异常]异常的对象方法/抛出/捕获

/返回这个throwable的详细消息字符串。throws写在方法处 表示声明一个异常 告诉调用者 使用本方法有哪些异常。//把异常的信息输出在控制台。例如 ArrayIndexOutOfBoundsException e。Throwable的成员方法 比如我现在有了Exception e。2.e.toString //返回此可抛出的简短描述。

2023-12-19 10:52:29 129

原创 [Java][异常]异常的初探与异常的捕获+练习

Exception可以分为两类,RuntimeException 运行时异常 比如数组越界异常。除了RuntimeException之外 都是编译时异常 比如日期解析日常。分为Error和Exception Error是sun公司来处理的严重的异常。后者的Exception就是我们在开发的时候经常遇到的异常。比如内存泄露这种系统级别的异常。

2023-12-18 22:57:10 154

原创 [Java][方法引用]字符大小写转换/数组创建->基于类名引用和数组构造方法

3.被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致 返回值保持一致。格式 数据类型[]::new。例子:int[]::new。2.被引用的方法必须存在。1.需要有函数式接口。

2023-12-17 14:10:04 58

原创 [Java][方法引用]构造方法的引用事例分析

这样做真的便捷吗 我们尝试把map内的代码放到JavaBean Student中去 再考虑问题。/*以上就是我们采用map方法+new Function(有两个形参 一个传入一个传出)+apply方法接受参数并且返回一个Student类型 最后封装成List集合再用。Iterator迭代器进行遍历的一个操作流程 但是我们不禁思考。

2023-12-17 13:40:39 126

原创 [Java][方法引用]综述以及静态/成员中的其他与本类方法讲解

4.1 使用<类名>引用<成员方法>4.2 引用<数组>的<构造方法>2.1 引用<其他类>的成员方法。2.2 引用<本类>的成员方法。2.3 引用<父类>的成员方法。

2023-12-17 12:14:21 61

原创 [Java][方法引用]以数组为例讲解匿名内部类/lambda/方法引用

C:最优化的:我们额外创建一个类Substraction 然后在Substraction中写好我们需要判断的原则。在保证形参 功能一致的前提下将其“方法引用”到Arrays.sort(arr,);B:略微简化的:使用Lambda表达式把变量名 匿名内部类的类名省去。A:最复杂的:new Comparator然后写匿名内部类。思路:使用Arrays工具类中的sort进行快速排序。需求:对一个Integer类型的数组进行倒序排列。对C这种操作逻辑而言:我们来复盘一下需要满足的规则。

2023-12-17 11:08:16 139

原创 [Java][Stream][匿名内部类]一些常见的操作

首先需要了解到对一个stream对象而言.map可以将括号中的函数作用于这个数据 因此我们需要引入匿名内部类来构建这个函数,这里我们涉及到的是Function这个函数 它有两个形参 第一个是传入的参数 第二个是传出的参数。很显然,我们创建了一个整型集合,并且将集合转化为stream借助.map方法 创建一个new Function的匿名内部类 复写 apply这个方法来实现奇偶数的判断 最后forEach输出。我们经常需要在流中去引入函数操作,这里我们讲解几个常见的方法。我们举一个实际的例子来讲解。

2023-12-16 22:24:59 135

原创 [C错题本]

第二个条件:i++ 所以i是原值参与运算 i=2 j=2相等 但是这个考虑完后i++ 所以此时i=3。第三行:i>j++翻译为2>1 这个正确 但是j++需要自增 所以变成了i=2j=2。a[2]+1:运算的结果是”第三行第二列的值的地址->实际上是一个二维数组的地址。*a是取二维数组的第一个数组的地址 在值上和a相等 在值和意义上和a[0]相等。第二行:因为是后自增 因此先把1赋值给j 后i+1 所以此时i=2 j=1。*(a+2)+1指的是第三行第二列的那个地址。a的二进制是(1110 1011)2。

2023-12-16 21:31:10 842

原创 [C错题本]转义字符/指针与首元素/&运算

在for循环中,这个p向后移动了一位,指向了B,我们此时可以把从B开始的字符串部分视作一个新的字符串,因此我们在下面打印%s这个打印字符串时候 打印出的是BCD 因为此时p所指向的B这个地址,就相当于新字符串的首地址。按照这个逻辑继续进行,当循环第二次进行的时候,p指向了s[]中的C 那么*p所表示的地址也就是CD这个字符串的首地址,我们打印p那么必然就是打印p所指向的字符串CD。分析逻辑:这里实际上是让p指向了s的首地址。答案是: BCD CD D。

2023-12-14 23:24:30 219

原创 [Stream]自定义的Collect筛选

然后我们在map(s->{})中的部分完成了筛选 并且返回一个Actor类型的值。这里使用map就是让map中的内容作用到s上去。

2023-12-14 18:34:12 85

原创 [Java][Stream]forEach/toArray/count/collect四种终止方法的讲解

第一部分是forEach/toArray/count这些比较简单的终止方法,方法的含义读英文即可了解,我这里不做过多赘述。第二部分是分析collect储存元素到不同的集合类型中的解决途径。

2023-12-13 15:26:40 305

原创 [Java][Stream]中间方法的应用+筛选年龄练习

提供 李白-12 杜甫-13 李商隐-14 李清照-16 白居易-15 杜牧-16。前者为姓名 后者为年龄 我现在要求抽离出 所有姓氏为李且索引>=2的人。2.只筛选姓李的人-statsWith。3.抽离出年龄 ->spilt。Stream中间方法的练习。1.跳过两个人.skip。

2023-12-12 22:37:09 71

原创 [Java][Stream]单列集合/双列集合/数组/零散数据的处理

Stream这个流的含义就是流水线的含义Stream是Collection的一个方法。我们把要操作的数据放在流水线上,然后进行不断的过滤,最后进行输出。3.过滤 转换 统计 打印 这些方法可以分为中间方法和终结方法。双列集合 转化为keyset来.stream();1.先得到一条stream流,把数据放上流水线。2.利用stream流中的api进行操作。单列集合 直接.stream();4.过滤 转换 是典型的中间方法。5.统计 打印 是典型的终结方法。

2023-12-12 15:58:37 197

原创 [Java][Stream]人名筛选工具->引入stream流简化操作

新的方法存在一个优越性:你不需要写那么多的增强for循环了 二十多行代码所实现的内容被简化成了一行代码,可以有效的提高代码的可读性和便利性。我已经在list集合中存入了若干个名字,现在我希望能够筛选出以张字开头并且名字是三位的,输出打印这些名字。在一二三步中我们均使用了for(元素类型 第三方变量名:需要遍历的集合){}这种增强for的表达形式。第二步:从新的集合中筛选出名字为3个字的,存到另外一个集合中。第一步:从所有名字中筛选出含张的 存储到新的集合中。我们可以来分析一下我们是如何使用stream的。

2023-12-12 10:37:53 182

原创 [Java][Collections运用]学生信息管理系统plus

Collections.shuffle(集合名);这个是随机打乱某个集合中元素的顺序 也就是洗牌。Collections.addAll(集合名,元素1,元素2);这个就是一次性去添加多个元素。

2023-12-11 22:25:40 93

原创 [Java][JDK5]可变参数

在原先,我们考虑到参数只能传入一个数字,因此我们会将需要求和的数字放在一个数组,传入该数组进入方法再拆分计算。我们引入了可变参数,实际上是在数据类型和形参名之间加入三个. 也就是...但是有没有一种办法让我们来避免使用传入数组,直接传入参数呢?比如下面的例子:使用了增强for来对数组进行遍历。我们可以假设一种情况,我们需要进行求和计算。

2023-12-11 21:42:02 53

空空如也

空空如也

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

TA关注的人

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