自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 AOP代理

动态:相对于静态来说的,静态代理在编译时确定代理类,而动态代理在程序运行时JVM来帮助我们生成,我们需要借助java.lang.reflect.Proxy类实现动态代理。例如 eat(),play(),sleep()方法中各自独立行为执行之前和之后。1.无需自定义代理类实现和被代理类相同的接口,实现接口中的大量方法,由JVM来帮我们创建代理类。eat() play() sleep()代表不同方法 独立行为执行之前和执行之后代表同一层面。静态代理在编译时已经确定了代理的类,并且实现了相同的接口。

2025-03-13 15:25:43 358

原创 字节流相关操作

OutputStream:字节输出流,抽象类,包含FileOutPutStream和BufferedOutput Stream,即字节文件输出流和字节输出缓冲流。Writter:字符输出流,FileWritter字符文件输出流,BufferedWritter字符缓冲输出流,OutputStreamWriter输出转换流。Reader:字符输入流,FileReader字符文件输入流,BufferedReader。字节流可以操作任意文件,但是我们一般用字节流操作不需要编码表的文件(图片,视频,音频);

2025-03-08 16:04:42 353

原创 泛型的使用和增强for循环(for-each)

​ for(要求遍历的容器中含有的元素 变量名 :数组/集合){当类上定义泛型以及实现的接口也定义泛型,此时泛型确定的时机是创建该类对象的时候。不指定泛型,集合中可以存入各种数据类型,类型转换的时候会发生类型转换异常。使用泛型后,增强for上面的元素类型也会直接确定,可以避免强转。2.一定程度上比卖你强制类型转换,可以直接使用集合中的元素。指定泛型,如果数据错误,会直接编译报错,而不是运行报错。2.类上的泛型通过创建该类的对象指定具体类型。1.类上的对象可以在类中直接使用。

2025-02-26 17:00:46 298

原创 用Java写一个简单的石头剪刀布小游戏

【代码】用Java写一个简单的石头剪刀布小游戏。

2025-02-25 13:26:27 329

原创 Java中的正则表达式

正则表达式是一个字符串,使用单个字符来描述,用来定义匹配规则,匹配一系列符合某个语法规则的字符串。正则表达式是单独的概念,每种编程语言都可以使用,但是每个语言里面的使用方式可能不同。这里用if-else略显复杂,这里我们引入。

2025-02-24 20:02:38 328

原创 StringBuilder,StringBuffer,编码表,拼接思想,链式编程

可变的字符序列,StringBuilder是个字符串的缓冲区,即一个容器,容器中可以装很多字符串,并且对其中的字符串进行各种操作。美国信息标准代码,基于拉丁字母,标准将每个字符定义为一个7位的二进制数字,一共定义128个字符,ACSII只占用一个字节的空间。包含全部的中文字符及其少数民族字符,双字节编码,占用1~2个字节,也扩展了ACSII码表。UTF-8 1~4个字节,不同的语言占用不同的字节,中日韩语言3个字节。大部分西欧语言,扩展了ACSII码表,也只占用1个字节的空间。

2025-02-23 18:29:46 421

原创 String类常用方法及其注意事项

2.如果常量池内已经存在该常量,那么不会创建新的常量,直接使用原来的,节约内存;如果没有,那么就创建该常量。1.常量池:位于方法区内,包含各种基本常量(整形,小数)等等和字符串常量(用双引号括起来)toString(): String中重写了toString(),转换结果就是字符串的值。equals(): 比较两个字符串的值,只看字符串的内容。3.equals():如果没有重写,就默认比较内存地址。字符串是恒定的,他们的值在创建后无法修改。如果有重写,按照子类重写的规则使用。

2025-02-23 08:45:00 613

原创 Object类,toString()和equals()

​ JDK的API概述(Application(应用) Programing(程序) Interface(接口))​ Jdk API就是将一些底层的代码封装起来,提供给我们使用的类只需要我们会使用即可。

2025-02-22 18:59:51 409

原创 手撕排序算法代码

通过构建一个最大堆或最小堆,使得堆顶元素是整个堆中的最大(或最小)元素,然后不断将堆顶元素与堆的最后一个元素交换,减小堆的有效大小,重新调整堆,直到排序完成。通过一个“分区”操作,将数组分成两部分,其中一部分所有元素都小于基准元素,另一部分所有元素都大于基准元素,然后再分别对这两部分继续递归地进行快速排序。通过重复地交换相邻的元素,使得较大的元素逐渐“浮”到数组的右端,而较小的元素“沉”到数组的左端。将数据分到有限数量的桶中,然后每个桶内的数据再单独进行排序,最后将各个桶中的数据合并得到最终结果。

2025-02-09 21:00:54 180

原创 排序算法总结

对于特殊数据可以使用计数排序,例如针对员工年龄进行排序,假设员工年龄范围为0-100岁,那么准备一个0-100的数组,遍历一遍原数组,在计数数组中按顺序记录年龄出现的频次,再将词频还原成有序的数组,本质上是一种特殊的桶排序。一个几乎有序的数组,几乎有序是指,如果把数组排好序,每个元素移动的距离不超过k,并且k相对数组来说较小,选择一个合适的排序算法。一般会选择使用快速排序,因为经过实验的结果,快排的常数项最低,实在是有空间的限制可以用堆排,或者对稳定性有要求的用归并排序。每棵子树最大值是头结点的值。

2025-02-08 12:09:17 394

原创 1.19递归,归并排序和快速排序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2025-01-22 11:23:35 313

原创 1.18异或,部分排序算法·

b 一定在某一位上不为0。性质 :1. 0 ^ N = N N ^ N = 0。不用申请额外的空间 ,交换的两个数的值不能相等!一种数奇数次出现 ,剩下的数偶数次出现。两种数奇数次出现,剩下的数偶数次出现。用于测试跑代码,在没有oj的情况下。2.寻找>=某个数最左侧的位置。1.有序数组找某个数是否存在。arr无序数组寻找局部最小值。

2025-01-19 10:16:42 135

空空如也

空空如也

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

TA关注的人

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