Java
文章平均质量分 64
清辞sweet
这个作者很懒,什么都没留下…
展开
-
Java常用API
1.问题描述:我们操作数据,将来的数据有可能非常大,大到比long还要大,这种数据我们一般称之为"对象"2.作用:处理超大整数3.构造:BigInteger(String val) -> 参数的格式必须是数字形式4.方法:BigInteger add(BigInteger val) 返回其值为 (this + val) 的 BigIntegerBigInteger subtract(BigInteger val) 返回其值为 (this - val) 的 BigInteger。原创 2024-06-29 10:36:10 · 1015 阅读 · 1 评论 -
盛水最多的容器
用两个指针,一个指向开头,一个指向结尾,然后我们每次移动一个指针,这时候我们要考虑一个问题,我们要移动哪一个指针,我们看到这个公式,我们可以思考一下,我们每次移动指针,两个板子之间的距离都是会变小,那么我们要是尽可能的想让我们总存水量变大,那么我们就要让我们两个板子之间的最小值变大,我们移动大的那个指针只会让我们的答案不变或者变小,所以我们只有移动小的那个指针才可以达到变化的一个作用。总存水量 = 两个板子之间的最小值 * 两个板子之间的距离。2.当n小于2时,视为不能形成容器,请返回0。原创 2024-06-26 21:44:31 · 155 阅读 · 0 评论 -
Redis哨兵
Sentinel 会不断检查您的master和slave是否按预期工作:如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也以新的master为主:Sentinel充当Redis客户端的服务发现来源,当集群发生故障转移时,会将最新信息推送给Redis的客户端。原创 2024-06-26 14:14:31 · 381 阅读 · 0 评论 -
Redis内存回收
执行周期有两种: Redis服务初始化函数initServer()中设置定时任务,按照server.hz的频率来执行过期key清理,模式为SLOW Redis的每个事件循环前会调用beforeSleep()函数,执行过期key清理,模式为FAST。执行周期有两种: Redis服务初始化函数initServer()中设置定时任务,按照server.hz的频率来执行过期key清理,模式为SLOW Redis的每个事件循环前会调用beforeSleep()函数,执行过期key清理,模式为FAST。原创 2024-06-26 14:10:53 · 950 阅读 · 0 评论 -
Redis通信协议-基于Socket自定义Redis的客户端
【代码】Redis通信协议-基于Socket自定义Redis的客户端。原创 2024-06-26 14:05:15 · 91 阅读 · 0 评论 -
String与StringBuilder区别
1.概述:一个可变的字符序列,此类提供了一个与StringBuffer兼容的一套API,但是不保证同步(线程不安全,效率高)2.作用:主要是字符串拼接3.问题:a.刚讲完String,String也能做字符串拼接,直接用+即可,但是为啥还要用StringBuilder去拼接呢?b.原因:String每拼接一次,就会产生新的字符串对象,就会在堆内存中开辟新的空间,如果拼接次数多了,会占用内存,效率比较底。原创 2024-06-25 16:54:29 · 623 阅读 · 0 评论 -
注解与元注解
1.引用数据类型:类 数组 接口 枚举 注解1.jdk1.5版本的新特性->一个引用数据类型和类,接口,枚举是同一个层次的引用数据类型:类 数组 接口 枚举 注解2.作用:说明:对代码进行说明,生成doc文档(API文档)检查:检查代码是否符合条件 @Override(会用) @FunctionalInterface分析:对代码进行分析,起到了代替配置文件的作用(会用)3.JDK中的注解:@Override -> 检测此方法是否为重写方法。原创 2024-06-25 16:44:52 · 1122 阅读 · 0 评论 -
简化开发Lombok
Lombok通过增加一些“处理程序”,可以让javabean变得简洁、快速。Lombok能以注解形式来简化java代码,提高开发效率。开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护。Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。原创 2024-06-25 16:28:29 · 300 阅读 · 0 评论 -
实现多线程文件上传服务端
【代码】实现多线程文件上传服务端。原创 2024-06-25 16:16:17 · 220 阅读 · 0 评论 -
网络编程2---TCP编程及文件上传
3.调用socket中的getInputStream,读取客户端发送过来的图片,使用uuid加上时间戳来对文件进行命名防止重复。2.调用ServerSocket中的accept方法,等待客户端连接,返回Socket对象。3.调用socket中的getInputStream,用于读取客户端发送过来的数据。3.调用socket中的getInputStream,读取服务端响应回来的数据。4.调用socket中的getOutputStream,用于给客户端响应数据。2.调用accept方法等待客户端的连接。原创 2024-06-25 16:14:51 · 736 阅读 · 0 评论 -
网络编程1
这里客户端,发送完最后的报文后,会等待2MSL,因为有可能服务器没有收到最后的报文,那么服务器迟迟没收到,就会再次给客户端发送释放连接的报文,此时客户端在等待时间范围内接收到,会重新发送最后的报文,并重新计时。为了扩大地址空间,拟通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789->号称能给地球上的每一粒沙子分配一个IP地址。用两个字节表示的整数,它的取值范围是0~65535。原创 2024-06-25 16:00:04 · 412 阅读 · 0 评论 -
利用反射编写一个小框架
b.问题:将配置文件放到src下,out路径下会自动生成配置文件,但是如果我们将来将所有的配置文件都放到src下,那么src下面会显得特别乱。根据接口的class对象,创建一个实现类对象,然后通过配置文件中的方法名反射这个方法,invoke执行这个方法。:在配置文件中,配置类的全限定名,以及配置一个方法名,通过解析配置文件,让配置好的方法执行起来。解决:我们可以将配置文件放到src下,放到src下,out路径下就会出现配置文件。a.问题:如果将配置文件放到resources资源目录下,我们怎么读取。原创 2024-06-20 17:05:49 · 249 阅读 · 0 评论 -
class类的以及class对象的介绍以及反射介绍
1.反射概述:解剖class对象的一个技术2.问题:能解剖class对象的啥呢?a.解剖出成员变量 : 赋值b.解剖出成员方法: 调用c.解剖出构造方法: new对象3.用反射的好处:让代码变的更通用,更灵活4.问题:反射最开始的一步是干啥?获取Class对象5.class对象:class文件对应的对象class类:描述class对象的类叫做class类。原创 2024-06-20 17:03:18 · 434 阅读 · 0 评论