java基础知识随心记(持续更)

本文详细介绍了Java编程中的命名规范,如类、变量、方法的驼峰式命名,以及final修饰符的使用。讨论了数组的固定长度、访问修饰符的应用原则,强调了私有化和封装。此外,解释了单例模式的饿汉式和懒汉式实现,以及它们在业务场景中的选择。还涵盖了接口、对象转型、多态、构造方法、super关键字、抽象类和异常处理的基本概念。对于异常,区分了可查异常和运行时异常的处理方式。
摘要由CSDN通过智能技术生成
1.大部分笔记参照:how2j,真不戳!!!
2.java命名规范

1.由字母、数字、下划线、$组成
2.数字不能放在第一位
3.区分大小写
4.见名知意
5.支持中文,但是不建议使用
6.驼峰式命名
类:大驼峰(每个单词的首字母大写)
变量、对象、方法:小驼峰(第一个单词的首字母小写,其余单词的首字母大写)
常量:所有英文字母都大写

3.final修饰符

final饰局部变量:只有一次赋值的机会
final修饰的类不能被继承
final定义的方法不能被重写
final定义的常量不能被重写赋值
final修饰引用,表示该引用只有1次指向对象的机会

3.数组长度不能变
4.访问修饰符

在这里插入图片描述

那么什么情况该用什么修饰符呢?

  1. 属性通常使用private封装起来
  2. 方法一般使用public用于被调用
  3. 会被子类继承的方法,通常使用protected
  4. package用的不多,一般新手会用package,因为还不知道有修饰符这个东西

作用范围最小原则,简单说,能用private就用private,不行就放大一级,用package,再不行就用protected,最后用public。 这样就能把数据尽量的封装起来,没有必要露出来的,就不用露出来了

5.类属性

当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性。如果一个属性声明成类属性,那么所有的对象,都共享这么一个值。

6.类方法、对象方法

类方法: 又叫做静态方法(不能访问对象属性、对象方法)
对象方法: 又叫实例方法,非静态方法

访问一个对象方法,必须建立在有一个对象的前提的基础上
访问类方法,不需要对象的存在,直接就访问

7.单例模式

饿汉式 是立即加载的方式,无论是否会用到这个对象,都会加载。如果在构造方法里写了性能消耗较大,占时较久的代码,比如建立与数据库的连接,那么就会在启动的时候感觉稍微有些卡顿。

懒汉式,是延迟加载的方式,只有使用的时候才会加载。 并且有线程安全的考量(鉴于同学们学习的进度,暂时不对线程的章节做展开)。使用懒汉式,在启动的时候,会感觉到比饿汉式略快,因为并没有做对象的实例化。 但是在第一次调用的时候,会进行实例化操作,感觉上就略慢。

看业务需求,如果业务上允许有比较充分的启动和初始化时间,就使用饿汉式,否则就使用懒汉式

单例模式三元素:(面试)

  1. 构造方法私有化
  2. 静态属性指向实例
  3. public static的 getInstance方法,返回第二步的静态属性
8.接口(interface)
9.对象转型
10.多态
  1. 父类(接口)引用指向子类对象
  2. 调用的方法有重写
11. 构造方法

子类构造方法默认调用父类无参构造方法(先执行父类无参构造方法)

12.super关键字

super作为关键词,其作用可以简单概括为调用并继承父类的某些特性,可以用在调用父类的构造方法,调用父类的参数值,调用父类的方法上。
按照以上三点细化来说:
1.当用到不带参的构造方法去构造一个新子类时,系统会先调用父类的无参构造方法,再去调用子类的无参构造方法,子类与父类的无参构造方法都被调用了,并且先调用父类的;当我用带参的构造方法去构造一个新子类时,系统还是会先调用父类的构造方法,但是此时, 系统并不知道父类是否具备有参的构造方法,因此默认会直接用父类的无参构造方法(即使父类拥有有参的构造方法系统也会无视),再去用子类的有参构造方法。那么在有参构造时,super的作用是:可以略过系统的默认规则,转而去调用父类的有参构造方法。

2.那么,当子类对象需要用到父类的参数时,这个时候用super就能直接调用父类的该参数。其作用与this相似,this是调用当前对象的属性,super是调用父类对象的属性。

3.当子类需要调用父类方法时,就显得super这个关键词更加有用了。在子类的方法中添加super相当于直接将父类的方法转接过来,并且你可以在super以后,再添加自己需要的代码语句,达到“子承父业,并另外发展了新项目”的目的。

13.抽象类

如果该类申明为抽象类,就不能够直接被实例化。
抽象方法,类必须是抽象类,子类继承该类时必须重写该方法。

14.常见异常(常见处理手段: try catch finally throws)

ParseException 解析异常,日期字符串转换为日期对象的时候,有可能抛出的异常
OutOfIndexException 数组下标越界异常
OutOfMemoryError 内存不足
ClassCastException 类型转换异常
ArithmeticException 除数为零
NullPointerException 空指针异常

15.异常分类

异常分类: 可查异常,运行时异常和错误3种,其中,运行时异常和错误又叫非可查异常。
可查异常: CheckedException,可查异常即必须进行处理的异常,要么try catch住,要么往外抛,谁调用,谁处理,比如 FileNotFoundException,如果不处理,编译器,就不让你通过;
运行时异常RuntimeException指: 不是必须进行try catch的异常
常见运行时异常:
除数不能为0异常:ArithmeticException
下标越界异常:ArrayIndexOutOfBoundsException
空指针异常:NullPointerException
在编写代码的时候,依然可以使用try catch throws进行处理,与可查异常不同之处在于,即便不进行try catch,也不会有编译错误,Java之所以会设计运行时异常的原因之一,是因为下标越界,空指针这些运行时异常太过于普遍,如果都需要进行捕捉,代码的可读性就会变得很糟糕。
错误Error,指的是系统级别的异常,通常是内存用光了
在默认设置下,一般java程序启动的时候,最大可以使用16m的内存,与运行时异常一样,错误也是不要求强制捕捉的。

运行时异常与非运行时异常的区别:
运行时异常是不可查异常,不需要进行显式的捕捉;非运行时异常是可查异常,必须进行显式的捕捉,或者抛出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值