一、泛型是什么Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。二、泛型带来的好处在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类...
5年前 (2019-09-06)
阅读(2459)
赞一个 (1 )
链接直达
目录1、静态代码块①、格式②、执行时机③、静态代码块的作用④、静态代码块不能存在任何方法体中⑤、静态代码块不能访问普通变量2、构造代码块①、格式②、执行时机③、构造代码块的作用3、构造函数4、普通代码块5、执行顺序6、父类和子类执行顺序在Java中,静态代码块、构造代码块、构造函数、普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序。一、静态代码块1、格式在java类中(方法中不能存在静态代码块)使用...
5年前 (2019-08-15)
阅读(2598)
赞一个 (4 )
链接直达
两个对象用equals方法比较为true,它们的Hashcode值相同吗?这个要分两种情况回答?第一种情况答:假如这个类没有重写equals方法,如果两个对象值相同(x.equals(y) == true),那么它们的hashCode值一定要相同;第二种情况答:如果重写equals方法,没有重写hashCode的方法,就会出现不相等的情况。Java 对于eqauls方法和hashCode方法是这样规定的:equals...
6年前 (2019-05-10)
阅读(3077)
赞一个 (2 )
链接直达
单例模式的关键点构造方法不对外开放,为private确保单例类只有一个对象,尤其是多线程模式下通过静态方法或枚举返回单例对象确保单例类在反序列化是不会重新创建新的对象单例模式的五种实现方式1、饿汉式 (线程安全,调用效率高,但是不能延时加载)public class Singleton1 {
/*
* 饿汉式是...
6年前 (2019-05-10)
阅读(3485)
赞一个 (5 )
链接直达
一、场景在GitHub上我们会去fork别人的一个项目,这就在自己的Github上生成了一个与原作者项目互不影响的副本,自己可以将自己Github上的这个项目再clone到本地进行修改,修改后再push,只有自己Github上的项目会发生改变,而原作者项目并不会受影响,避免了原作者项目被污染。但经过一段时间,有可能作者原来的代码变化很大,你想接着在他最新的代码上修改,这时你需要合并原作者的最新代码过来,让你的项目变成最新的。二、解决方法...
6年前 (2019-05-08)
阅读(8752)
赞一个 (7 )
链接直达
Spring session 对于什么时候将session 中的数据同步到redis 中提供了两种模式一种是当响应结束后同步(默认时)一种种是实时同步RedisFlushMode1、两种模式ON_SAVE:只有当 SessionRepository.save(Session)方法被调用时,才会将session中的数据同步到redis中。在web 应用中,当请求完成响应后,才开始同步。也就是说在执行response 之前session数据...
6年前 (2019-05-07)
阅读(6651)
赞一个 (4 )
链接直达
SpringBoot 分布式 Session 共享解决方案分布式Session一致性?说白了就是服务器集群Session共享的问题,集群情况下,session保存在各自的服务器的tomcat中,当分发地址至不同服务时,导致sesson取不到,就会产生session共享问题。Session的作用?Session 是客户端与服务器通讯会话跟踪技术,服务器与客户端保持整个通讯的会话基本信息。客户端在第一次访问服务端的时候,服务端会响应一个se...
6年前 (2019-05-07)
阅读(4513)
赞一个 (1 )
链接直达
一、使用场景我们在日常的开发中,经常会遇到查询数据列表的问题,有些数据是不经常变化的,如果想做一下优化,在提高查询的速度的同时减轻数据库的压力,那么redis缓存绝对是一个好的解决方案。二、需求假设有10000个请求,想达到第一次请求从数据库中获取,其他9999个请求从redis中获取这种效果。三、代码实现1、常规写法public List<UsersDO> getAllUserWithNoPage2()...
6年前 (2019-04-15)
阅读(3488)
赞一个 (5 )
链接直达
题目有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第6个月的兔子总数为多少?分析首先我们要明白题目的意思指的是每个月的兔子总对数;假设将兔子分为小中大三种,兔子从出生后三个月后每个月就会生出一对兔子,那么我们假定第一个月的兔子为小兔子,第二个月为中兔子,第三个月之后就为大兔子,那么第一个月分别有1、0、0,第二个月分别为0、1、0,第三个月分别为1、0、1,第四个月分别为,1...
6年前 (2019-03-18)
阅读(3179)
赞一个 (3 )
链接直达
一、重载(Overload)在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载。同时,重载对返回类型没有要求,可以相同也可以不同,但不能通过返回类型是否相同来判断重载。 例如:public class Father {
public static void main(S...
6年前 (2019-03-16)
阅读(3665)
赞一个 (4 )
链接直达
一、前言在 Java 中,最常见的封装莫过于 get、set 方法了,无论是 Intellij idea 还是 Eclipse,都提供了快速生成 get、set 方法的快捷键,使用起来很是方便,但其实,我们还有更方便的办法,就是今天的主角:Lombok1、Lombok 是什么?Lombok 是一个通过注解以达到减少代码的Java库,如通过注解的方式减少 get、set,构造方法...
6年前 (2019-03-12)
阅读(4475)
赞一个 (2 )
链接直达
一、什么是 GuavaGuava 工程包含了若干被 Google 的 Java 项目广泛依赖的核心库,例如:集合【collections】、缓存【caching】、原生类型支持【primitives support】、并发库【concurrency libraries】、通用注解【common annotations】、字符串处理【string processing】、I/O 和 验证等等。所有这些工具每天都在被 Google...
6年前 (2019-02-26)
阅读(4753)
赞一个 (1 )
链接直达