在spring中,在final类上加上注解如:@Service("serviceName")则会报错。报错内容如下:

Could not generate CGLIB subclass of class

那么解决办法是:把类前面的final给去掉。但是这样又影响力之前的设计,怎么办呢?我选用了一个折中的办法,就是在该类的所有方法前加上final。到此问题解决。

那么final类在项目中到底有什么好处呢?

l  不涉及继承和覆盖。

l  其地址引用和装载在编译时完成。
l  在运行时不要求JVM执行因覆盖而产生的动态地址引用而花费时间和空间。
l  与继承链上的一般对象相比,垃圾回收器在收回final对象所占据的地址空间时也相对简单快捷。
但在某些情况下使用final方法并不能取得提高执行速度的结果。因为并不是所有final方法其地址的装载和引用在编译时间完成。

但是不能仅仅因为考虑追求提高执行速度而使用final类。在程序设计和代码编写时,应首先考虑这个类所执行的任务和安全因素,是否允许有子类。在这个前提下,尽量提高代码的重复应用性是面向对象设计和编程的宗旨。然后考虑是否使用final类和final方法。

java中final类的一些思考相关推荐

  1. Java中final类是存放在哪_详解Java中的final关键字

    1 修饰属性或者变量 无论属性是基本类型还是引用类型,作用都是变量里面存放的"值"不可变 经常和static关键字一起使用,作为常量 1 基本类型,变量放的是实实在在的值,如1,& ...

  2. java中final class的一点思考

    2019独角兽企业重金招聘Python工程师标准>>> final class什么意思不再多少,但有什么用处了 书上说final class的执行要快一些,因为编译器知道不会继承,所 ...

  3. 在java中String类为什么要设计成final

    在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087 转载于 ...

  4. 43、在java中一个类被声明为final类型,表示了什么意思?

    43.在java中一个类被声明为final类型,表示了什么意思? 表示该类不能被继承,是顶级类. JAVA面试问题及答案大全

  5. java中final关键字的使用

    final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰  类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...

  6. java final 变量 回收_java入门教程-Java中final,finally,finalize三个关键字的区别

    final 当这个关键字修饰一个类时,意味着他不能派生出新的子类,也就是说不能被继承,因此一个类不能被同时声明为abstract和final.当final修饰变量或者方法时,可以保证他们在使用中不会被 ...

  7. 在java中下列描述错误的是_在 JAVA 中 , 关于类的方法 , 下列描述错误的是 ()._学小易找答案...

    [多选题]价值的特性是 [简答题]输入任一字符串,统计其中数字,字母及其它字符个数 .(25分) [填空题]1.产品整体包括哪五个基本层次 2核心层次产品最基本的层次,是产品的_____ [单选题]纸 ...

  8. JAVA中Final的用法

    JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...

  9. java中final的意义

    转载自 https://blog.csdn.net/hikvision_java_gyh/article/details/8964541 1.如果一个数据既是static又是final,那么它会拥有一 ...

最新文章

  1. 图像几何变换C++实现--镜像,平移,旋转,错切,缩放
  2. springboot2.0系列(二):配置属性
  3. 运维与自动化系列③自动化部署基础与shell脚本实现
  4. 二叉树的四种遍历方式
  5. 【BZOJ3451】Normal【期望线性性】【点分治】【NTT卷积】
  6. SQL Server 2008 R2如何生成带数据的数据库脚本
  7. [小技巧][JAVA][转换]List, Integer[], int[]的相互转换
  8. 内存检测_Android native内存检测工具介绍
  9. python学生信息管理系统
  10. java只有值传递_为什么说java中只有值传递
  11. 002_关于six版本过低报cannot import name urllib_parse的问题
  12. pytorch 入门学习加载数据集-8
  13. java web后台学习路线
  14. 实现函数指针的功能,tr1::bind,tr1::function,virtual函数重载
  15. 【协议分析】Gzip格式与解析
  16. 中继器、集线器;网桥、交换机;路由器及网关之间的区别
  17. 【记录】嵌入式经典通信UART理解
  18. visio2002无法安装(您必须首先安装Enterprise Architect Edition of visual Studio.Net2003)的解决方案
  19. UE4_如何在UI中设置动态图片
  20. 我总结的经营理念,做人做事都该如此

热门文章

  1. win10如何删除无用服务
  2. MySQL基础知识点整理 - 存储引擎
  3. echarts y轴均分问题
  4. 应届生软件测试薪资大概多少?
  5. python中print语句添加“f“的用处
  6. Eudemon1000E防火墙用串口管理提示: User interface con0 is locked!
  7. 全速前进! AI助力工业制造智能升级
  8. 图像修复:人类的悲欢并不相通
  9. 相对定位的新星——超宽带UWB的前世、今生和未来
  10. 编写图片复制JAVA代码_何编写[java]代码为图片赋予“铅笔素描”效果