Java 学习001
来源:互联网 发布:linux命令 退出 编辑:程序博客网 时间:2024/06/16 04:03
值得注意的事情:
1)代码块执行顺序: 静态代码块 static{ } > 构造代码块{ }> 构造函数
-----
finally{ }代码块的内容必须执行(除 System.out.exit(0)这种情况)
synchronized(对象){}同步锁代码块--锁定资源使之称为临界资源,一次仅限一个对象方问
2)线程:
1)创建线程:继承Thread类
2)实现Runnable接口---:
实现Runnable好处:避免但继承,资源共享【继承Thread类不能共享资源(锁定一个块蛋糕,而不是每个人发一个蛋糕),利用static可以做到,但是声明周期过长】,最好通过实现Runnable接口来创建线程
线程的各种构造:常见 new Thread(对象,线程名称)
currentThread()是Thread类中的静态方法
getName() setName()获取,设置线程名字--也可以通过构造方法设置线程名字
3)run方法时普通方法。调用start方法开启线程,并执行run方法
4)同步方法:synchronized 方法{}
同步代码块:方法内部 synchronized(对象){//锁定资源的代码}对象一般用this代替
对象锁:private Lock lock = new ReentrantLock();//创建Lock实例
lock.lock(); //锁定
需要上锁的代码
lock.unlock();//释放锁
3)抽象类与接口中的不能描述的方法(抽象方法,接口中全是抽象方法),在其子类中实现
抽象类除了不能创建实例,多了抽象方法,其他与普通类一致;接口中有方法 public abstract,常量 public static
接口特点:
* 1.接中常见定义:常量,抽象方法
* 2.接口中的成员都有固定默认修饰符
* 常量 public static final 即全局常量
* 方法 public abstract
* 1.接中常见定义:常量,抽象方法
* 2.接口中的成员都有固定默认修饰符
* 常量 public static final 即全局常量
* 方法 public abstract
4) static关键字
* 特点:
* 1.随着类的加载而加载,随着类的消失而消失
* 2.优先于对象存在
* 3.被所有对象所共享
* 4.可以直接被类名所调用
* 特点:
* 1.随着类的加载而加载,随着类的消失而消失
* 2.优先于对象存在
* 3.被所有对象所共享
* 4.可以直接被类名所调用
5) 多个对象当中存在共同数据--节约内存空间--初始化一次--static
*===============面试点
* 在多态中成员函数的特点:
* 在编译时期:参阅引用类型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有编译失败。
* 在运行事情;参阅对象所属的类中是否有调用方法
* 在成员函数在多态调用时,编译看左边,运行看右边
*
* 在多态中,成员变量的特点
* 无论编译还是运行都参考左边(引用变量所属的类)
* 在多态中成员函数的特点:
* 在编译时期:参阅引用类型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有编译失败。
* 在运行事情;参阅对象所属的类中是否有调用方法
* 在成员函数在多态调用时,编译看左边,运行看右边
*
* 在多态中,成员变量的特点
* 无论编译还是运行都参考左边(引用变量所属的类)
6)第一行:super this 【语句】位于构造函数第一行 package 包名位于程序文件第一行
super语句必须放在第一行:因此要么有super语句,要么只有this语句
父子类:子类所有构造方法第一行隐士存在super(),所以建立子类对象,首先访问的是父类的无参构造方法
7)fianl:最终,作为一个修饰符,
* 1.可以修饰类,函数,变量
* 2.被final修饰的类不可以被继承,为了避免被继承,被子类复写功能
* 3.被fianl修饰的方法不可以被复写
* 4.被fianal修饰的变量只能赋值一次(常量),既可以修饰成员变量,也可以修饰局部变量
* 值不变的成员变量,需要加上static,全局常量 ,如圆周率public static final double PI = 3.14;
* 5.内部类定义在类中的局部位置上,只能访问该局部被final修饰的局部变量
* 1.可以修饰类,函数,变量
* 2.被final修饰的类不可以被继承,为了避免被继承,被子类复写功能
* 3.被fianl修饰的方法不可以被复写
* 4.被fianal修饰的变量只能赋值一次(常量),既可以修饰成员变量,也可以修饰局部变量
* 值不变的成员变量,需要加上static,全局常量 ,如圆周率public static final double PI = 3.14;
* 5.内部类定义在类中的局部位置上,只能访问该局部被final修饰的局部变量
8)异常:将出现的问题描述并封装成对象
Throwable 子类:Error与 Exception
异常体系:
* Throwable
* --Error
* --Exception
* --RuntimeException
* Throwable
* --Error
* --Exception
* --RuntimeException
-------------------------------------------
Exception:
编译时被检测的异常
编译时不被检查的异常(运行时异常RuntimeException及其子类)
编译时不被检查的异常(运行时异常RuntimeException及其子类)
-------------------------------------------
throw 和 throws用法
throw 定义在函数内,用于抛出异常定义
throws 定义在函数上,用于抛出异常,可以抛出多个异常用逗号隔开
throw 定义在函数内,用于抛出异常定义
throws 定义在函数上,用于抛出异常,可以抛出多个异常用逗号隔开
-------------------------------------------
catch 捕获异常顺序:先捕获小的异常,在捕获到的异常
父子类中重写方法:子类抛出的异常只能时父类方法的子类或者子集(即抛出的异常比父类的异常范围小)
父类方法中没有抛出异常,子类重写的方法存在异常只能try异常
-------------------------------------------
自定义异常:继承Exception 对于不需要声明处理的异常:则继承RuntimeException
3中格式:
try{ }...catch(){ }
try{ }...catch(){ }finally{}
try{ }finally{}
------------------------------------------
System.err.println(e.getMessage());// 异常信息 / by zero
System.out.println(e.toString());//异常名称,异常信息
e.printStackTrace();//异常名称,异常信息 ,异常出现的位置
System.out.println(e.toString());//异常名称,异常信息
e.printStackTrace();//异常名称,异常信息 ,异常出现的位置
-----------------------------------------
9)equals() 对象比较的是地址 " ".equals(str)这种避免空指针错误
10)堆栈:
堆:对象,实体,数组等引用类型以及 非静态成员变量--存放
栈:局部变量,基本类型变量(地址存的是他的值),方法调用是会跑到栈里面(执行完就释放,从栈里删除)--存放
方法区:方法体,共享区(如类变量即静态成员变量),数据区--存放
0 0
- Java学习笔记001
- Java学习连载001
- JAVA学习笔记001
- Java 学习001
- Java学习笔记.001
- java 学习 001 --java sdk 环境配置
- [ Java学习 ] 一些Java程序 001
- java学习--001
- (连载)Java基础学习001
- 学习JAVA的BUG 001
- 学习JAVA之路001
- 学习JAVA
- Java学习
- JAVA学习
- 学习Java
- java学习
- Java学习?
- Java学习
- 阿里云ubuntu 安装 phpmyadmin
- python中返回函数
- 387.The Smallest Difference-最小差(中等题)
- java数据结构和算法 第3章 简单排序
- 课堂整理
- Java 学习001
- ubuntu 安装 memcached
- Coursera Machine Learning 第九周 quiz Anomaly Detection
- 概率分布的转换
- [排序]
- WP Super Cache设置教程
- handler中传递JSON数据的写法
- log调试利器------__TIME__, __FILE__, __FUNCTION__, __LINE__, __VA_ARGS__搞起
- Android自定义卫星弧度菜单