- final修饰的变量,会定死无法改变,无论是引用类型的地址,还是基本类型的数值。
- final关键字不会影响到变量在jvm的存储位置,static才会影响。(注意部分博客会说final有影响,其实本质是static有影响)
int a=10
-
java所有常量存放到常量池:10是运行前就存放在常量池的
-
a是变量,在栈的栈帧中的局部变量表,存储的对应的值是10.
-
值类型的变量赋值只是进行数据复制,创建一个同值的新对象,而引用类型变量赋值,仅仅是把对象的引用的指针赋值给变量,使它们共用一个内存地址。
pom里的GroupId与ArtifactId
- 个人理解:其实就是通过这两个值唯一确定项目。
- GroupId(俗称:包结构)、ArtifactId(俗称:项目名)相关理解
-
GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。 ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。 一般GroupID就是填com.leafive.test这样子。
-
- 静态代码块:static{} :类加载的时候运行一次。
- 初始化静态变量:static int a=10 :静态变量的初始化级别于静态代码块相同,根据书写顺序排序。
-
- 构造代码块:{} :只有new该类的对象,不管使用哪个构造方法都会运行一次,优先于构造方法。
- 初始化实例变量:int a=10 :实例变量的初始化级别于构造代码块相同,根据书写顺序排序。
- 构造方法:
publicHello(){} : 不指定构造方法的类默认带无参构造方法,根据new的参数决定使用哪个构造方法。参数唯一区别构造方法。 - 普通代码块:
publicvoidsayHello(){ {} } :普通代码块是在方法体中定义的。
-
同级代码块的执行顺序和书写顺序一致。
-
父类和子类执行顺序:静态代码块内容先执行,接着执行父类构造代码块和构造方法,然后执行子类构造代码块和构造方法。
default在接口有什么意义?
- 使用default修饰的接口方法,可以像普通父类里的方法使用,返回值,输入参数,被子类调用,重载,重写,等完全一样!
- 可以使
继承实现了这个接口的类全部增加新的方法,减少java代码。(加了default的接口更像抽象类了,除了变量还是需要public static final 类型,不能含有静态代码块)
relativePath在pom有什么用?
relativePath:
- 1)指定查找该父项目pom.xml的(相对)路径。默认顺序:relativePath > 本地仓库 > 远程仓库
- 2)一般没有relativePath的子项目,默认relativePath为 ../pom.xml
实现层有@Service还是接口层 ,springMVC中?
- 需要使用的是实现层,接口层不需要@Service,即接口层不需要生成对象。(接口本来也不可以生成实例对象,@Mapper和@Repository是动态代理技术生成的实现该接口的对象,业务层用动态代理就毫无意义了,另外还可以在引导类上用@MapperScan扫描包,连注解都不用)
2974

被折叠的 条评论
为什么被折叠?



