Java 学习笔记
来源:互联网 发布:天刀太白捏脸数据女 编辑:程序博客网 时间:2024/06/11 03:47
在 Java 里面,一切皆对象
Java 类里面的实例变量只有在创建对象的时候,才会为其分配内存空间,所以是不能对其在类内初始化的,子类可以继承父类中所有的实例变量和方法,也可以被子类的实例变量和方法覆盖(但是由 final 修饰的方法可以被子类继承和重载,不能被子类覆盖),注意:构造函数前,不能加 final,而 static() 和 private() 方法是隐式的 final() 方法
Java的接口和类的定义类似,但在接口中不能声明任何变量和构造函数,如果一个类实现了多个接口,应该在接口名之间用逗号隔开。接口和类一样,可以作为一种数据类型使用
java 引出异常(Exception)的概念有两方面的考虑:
1、防止出现异常情况的代码多于主要目的的代码(比如 if...else...结构)
2、便于程序员进行编程,避免了程序员要把所有的异常情况都考虑到
java 抛出异常的方式有两种,一种是手动抓异常:try...catch 另一种是用 throws,加 throws 就是我先不管这个异常,就是谁调由 throws 处理的函数,谁处理这个异常,子类只能扔出异常的子类
异常里面的 error 类不需要程序员管,比如开着的时候,发动机坏了,驾驶员处理不了,是厂家的事情;遇到 error 的唯一的办法:重启,关键是 Exception 这个是需要程序员管的,Exception 就相当于开着车往前跑,突然前面出现一个人,需要驾驶员处理
异常的分类:
其中空指针异常是遇到的最多的情况,其出现的原因一般是:对象是空:NULL,但是却调用了对象的方法或属性,比如:创建一个空的指针, Student c = null; 那么这个 c 没有指向任何对象,所以在调用对象的方法或属性的时候会抛出异常
当有可能出现问题的情况的时候,需要 try...catch...语句处理
try{
语句 1;
语句 2;
}catch(Exception e){
语句 3;
}finally {
语句 4;
}
其中遇到异常的时候,会执行 Catch 语句,finally 语句是一定要执行的语句,当遇到异常的时候,程序不会继续往下执行,finally 里面通常放一些关闭资源的代码,因为程序可能在读取文件的时候出现异常,所以要通过 finally 来关闭文件,finally 里面一般不要加 return 语句,在 try 里面的return 语句是要在执行完 finally 之后才真正的返回,也就是函数的结束
一个 try 语句必须带一个 Catch 或 finally 语句(只带一个 finally 的时候,有时候可以,有时候不可以,但是只有一个 try 是肯定不行的),一个 try 可以对应多个 catch, 并且 catch 语句不能交换顺序,一般情况 子类的 catch 语句放前面,父类的语句放后面,越是父类,越往后放
对象是包装数据,组织数据
java 注解
1、@Override
定义在 java.lang.Override 中,此注解只适用于修饰方法,表示一个方法声明打算重写超类中的另一个方法声明
2、@Deprecated
定义在 java.lang.Deprecated 中,此注释可用于修饰方法、属性、类,表示不鼓励程序员使用这样的元素,通常是因为他很危险或者有更好的选择。
3、@SupperWarnings
定义在 java.lang.SuppressWarnings 中,用来抑制编译时的警告信息。
元注解:
元注解的作用就是负责注解其他注解。 java 定义了4个标准的 meta-annotation 类型,它们被用来提供对其他 annotation 类型的说明
这些类型和它们所支持的类在 java.lang.annotation 包中可以找到
1、@Target 2、@Retention 3、@Documented 4、@Inherited
用的最多的是前两个
java里面可以通过反射机制,利用 setAccessible 来访问私有属性,当需要频繁的调用反射的时候,可以把 setAccessible 设为 true,来提高程序运行效率
- Java学习笔记--CSS笔记
- Java学习笔记001
- Java 学习笔记
- java 学习笔记
- Java学习笔记
- java 学习笔记
- java学习笔记
- java学习笔记
- java学习笔记-1
- java虚拟机学习笔记
- java虚拟机学习笔记
- java虚拟机学习笔记
- Java学习笔记1
- Java学习笔记2
- java学习笔记(1)
- java学习笔记#2
- java学习笔记1
- java 学习笔记
- 雷军北大15分钟演讲:我至少有胆量去想
- Gradle DSL method not found: 'runProguard()'
- 使用 lazyload 遇到的问题
- Python学习笔记3:Python基础
- Mybatis步步进阶(六)——Mybatis Mapper代理和逆向工程
- Java 学习笔记
- 微软开源区块链平台项目 Bletchle
- csdn待改进点之30------>博客浏览数会变小啊
- 面向对象设计七大原则
- Lynx使用指南
- String类的一些有用的方法
- Java中==和equals()的区别
- 由JavaScript中的for in循环遇到的.符号和[]符号的问题
- Matlab-GUIDE使用说明(Matlab-GUI界面)