java知识点补充笔记

final变量的用途

  • 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这样子。

代码块与静态代码块的运行顺序

  1.  
    1. 静态代码块:static{} :类加载的时候运行一次。
    2. 初始化静态变量:static int a=10 :静态变量的初始化级别于静态代码块相同,根据书写顺序排序。
  2.  
    1. 构造代码块:{} :只有new该类的对象,不管使用哪个构造方法都会运行一次,优先于构造方法。
    2. 初始化实例变量:int a=10 :实例变量的初始化级别于构造代码块相同,根据书写顺序排序。
  3. 构造方法:public Hello(){} : 不指定构造方法的类默认带无参构造方法,根据new的参数决定使用哪个构造方法。参数唯一区别构造方法。
  4. 普通代码块:public void sayHello(){ {} } : 普通代码块是在方法体中定义的。
  • 同级代码块的执行顺序和书写顺序一致。

  • 父类和子类执行顺序:静态代码块内容先执行,接着执行父类构造代码块和构造方法,然后执行子类构造代码块和构造方法。

类加载和初始化顺序          类的加载详细

死锁避免与预防

堆排序

归并排序

TCP协议的学习

组合和聚合的区别

java的md5加密核心原理(源码)

Cipher类提供加密和解密功能

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扫描包,连注解都不用)

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值