final与Finally

  1. Final用于修饰类、成员变量和成员方法。final修饰的类,不能被继承(String、StringBuilder、StringBuffer、Math,不可变类),其中所有的方法都不能被重写(这里需要注意的是不能被重写,但是可以被重载,这里很多人会弄混),所以不能同时用abstract和final修饰类(abstract修饰的类是抽象类,抽象类是用于被子类继承的,和final起相反的作用);Final修饰的方法不能被重写,但是子类可以用父类中final修饰的方法;Final修饰的成员变量是不可变的,如果成员变量是基本数据类型,初始化之后成员变量的值不能被改变,如果成员变量是引用类型,那么它只能指向初始化时指向的那个对象,不能再指向别的对象,但是对象当中的内容是允许改变的。
  2. Finally通常和try catch搭配使用,保证不管有没有发生异常,资源都能够被释放(释放连接、关闭IO流)。当try中有return时执行顺序:return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂存在栈里面,等待finally执行后再返回)

static

  1. static可修饰类,称之为静态类,但是只可以修饰内嵌类。通过new 类.内嵌类()可直接访问。
  2. static可修饰方法,称之为静态方法,静态方法可通过类.方法名(),直接调用,也可以通过对象.方法名调用。静态方法中只能调用类变量或者静态方法。
  3. static可修饰成员变量,叫做类变量,也叫做静态变量。类变量不再属于这个类的某个对象,而是这个类的所有对象 共有。也就是说,类变量属于类而不再属于对象。类变量也是属性,所以可以使用访问属性的方式访问:对象.类变量。类变量属于类而不属于对象,所以也可以使用类直接访问:类.类变量。不需要创建对象就能直接访问。
  4. static可修饰构造代码块,称之:静态代码块。构造代码块在每次创建对象时调用构造方法之前执行,每创建一个对象就执行一次。静态初始代码块中的代码在类加载的时候被执行,只会执行一次。
    tips:类变量、静态方法、静态代码块在类加载时被创建.

final和static在一起修饰成员变量,在调用的时候不会对类进行初始化。此时static代码块不会执行!


因为静态方法不需要实例对象即可调用(类.方法名),所以如果可以使用this的话,那可以访问成员变量或非静态方法,但是,那个时候还没有对象,故没有成员变量或非静态方法,所以不能使用this。

构造函数

一个类的构造函数如果被设置成私有 那么该类不能被继承 。如果该类的有多个构造函数 无参空构造被设置成私有,子类需要有同参数的构造方法。

异常

重写的方法不能改变原有方法的抛出异常的类型,必须与原方法保持一致或没有。
eg:类A继承Thread类时,A的run方法不能抛出异常,此时必须在实例化对象后,使用try catch来抛出。
可通过查API文档判断哪些场景必须异常处理。
JavaAPI文档

JAVA基础中容易踩坑的知识点相关推荐

  1. 【100个 Unity踩坑小知识点】 | Unity中Text文本框 和 InputField文本输入框 内容换行问题

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

  2. 【100个 Unity踩坑小知识点】| Unity调用API ,动态获取Android权限,附带所有Android权限表格

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

  3. 让你在 API 设计中少踩坑的实战分享

    本文来自作者 奔跑吧架构师 在 GitChat 上分享 「让你在 API 设计中少踩坑的实战分享」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 在项目开发中,实际的编码只占用了整个项目不 ...

  4. 【100个 Unity踩坑小知识点】| Unity 的 LOD技术(多细节层次)

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

  5. 带你全面了解高级 Java 面试中需要掌握的 JVM 知识点

    对于一名高级 Java 工程师来说,JVM 可以说是面试必问的一个知识点,而大多数人可能没有对 JVM 的实际开发和使用经验,接下来这一系列文章将带你深入了解 JVM 需要掌握的各个知识点.这也将帮助 ...

  6. Pytorch中Dataloader踩坑:RuntimeError: DataLoader worker (pid(s) 6700, 10620) exited unexpectedly

    Pytorch中Dataloader踩坑 环境: 问题背景: 观察报错信息进行分析 根据分析进行修改尝试 总结 环境: 系统:windows10 Pytorch版本:1.5.1+cu101 问题背景: ...

  7. 微信退款 java工具类,微信支付中退款踩坑记录

    首先附上微信支付的开发者文档 其实这里所说的踩坑记录,无非就是微信在开发者文档上的写不太明确,也没有比较官方的demo,在此列出一个可行的demo,供大家下载使用. 主要问题就是在这几步解密上 微信的 ...

  8. java:数字转string 报空指针_《java基础》我踩过三元运算符的坑

    简单介绍 三元运算符(又称三目运算符)大家肯定肯定都使用过,我就简单介绍一下,不在赘述. 三元元素的格式:[条件控制语句] ? [表达式1] : [表达式2]. 优点: 一些简单的逻辑判断三元运算符可 ...

  9. java基础案例教程前4章知识点_java学习记录4 Java基础知识点

    java学习记录4 Java基础知识点 1. 注释 单行注释 使用"//"开头,后面是注释的内容 一般在要注释的语句的上面加注释 多行注释 以"/*"开头,以& ...

最新文章

  1. 传智168期JavaEE struts2杜宏 day 29~day31笔记(2017年2月4日23:14:00)
  2. 认识Backbone (五)
  3. LeetCode - Palindrome Number
  4. 暑期英语学习(词组积累)【持续更新中】
  5. 不知道这十项Linux常识,就别说自己玩过Linux!
  6. 弱引用什么时候被回收_Java中的强软弱虚引用
  7. IP切换器哪个最好用?
  8. Java物流项目第一天 项目概述与基础数据服务开发
  9. 王者更新后苹果手机服务器维护,苹果手机不能更新王者荣耀怎么解决
  10. 室内装修app开发,尽享绿色生活
  11. 【贪心】AcWing 803. 区间选点
  12. Linux内核上安装JAVA程序,Java在Linux上安装
  13. Debian完全卸载清理并重新安装MySQL服务器
  14. unity 景深效果
  15. 认识Linux操作系统
  16. JaveScript内置对象(JS知识点归纳八)
  17. DataTable 与 datagrid控件
  18. linux fedora安装教程,u盘安装fedora图文教程
  19. 转载一下19年的自动驾驶汽车挑战赛
  20. ChatGPT及相关产品体验与研究

热门文章

  1. 【浸入式英文学习方式】山姆莱萌帮助孩子建立扎实语言功底
  2. CListCTrl控件排序(一)
  3. 本地配yum(没有网络)
  4. Jmeter CSV 参数化/检查点/断言
  5. Kingbase和PostgreSQL中如何查看当前连接的进程信息
  6. 个人出路......
  7. [学习笔记]树上莫队
  8. xml 需要转义
  9. jquery表格复选框简单练习及prop(),attr()的应用原则
  10. IBM WebSphere MQ 7.5基本用法