1.构造函数多线程
构造函数:首字母大写;对象建立时,就会调用与之对应的构造函数,对对象进行初始化。 只调用一次。jvm
通常函数:对象建立后,须要函数功能时才调用。能够屡次调用。首字母小写。函数
构造函数--重载:方法名相同,参数不一样。this
*构造函数能够直接调用通常函数,通常函数不能调用构造函数,由于构造函数是用来初始化对象的。spa
2.this关键字线程
当成员变量和局部变量重名,用this区分。
对象
this表明当前对象;所在函数所属对象的引用。
继承
构造函数中调用构造函数:
生命周期
Person(String name){内存
this.name = name;
}
Person(String name,int age){
this(name);
this.age = age;
}
*this用于在构造函数中调用其余构造函数,只能定义在构造函数的第一行,由于初始化动做要先执行。
3.static关键字修饰符
static特色:
1.static用于修饰成员(变量,函数)
2.static修饰的成员被全部的对象共享。
3.static优先于对象存在,由于static的成员随着类的加载就已经存在了。
4.static修饰的成员,能够直接被类名调用(格式:类名。静态成员)
5.static修饰的数据是共享数据,对象中存在的是特有数据。
成员变量和静态变量(static修饰的变量)的区别:
1. 生命周期不一样
成员变量随着对象的建立而存在,随着对象的回收被释放。
静态变量随着类的加载而存在, 随着类的消失而消失。
2.调用方式不一样
成员变量只能被对象调用。
静态变量能够被对象调用,还能够被类名调用。
3.别名不一样
成员变量也称为实例变量。
静态变量称为类变量。
4.数据存储位置不一样。
成员变量数据存储在堆内存的对象中,因此也叫对象的特有数据。
静态变量数据存储在方法区(共享数据区)的静态区中,因此也叫对象的共享数据。
static使用注意事项:
1.静态方法只能访问静态成员(变量,函数)。
2.静态方法中不能够使用this或者super关键字。
3.主函数是静态的。
static静态代码块
随着类的加载而执行,并且只执行一次。
做用:用于给类进行初始化。
static{
system.out.pringln("static--------执行!");
}
4.构造代码块
能够给全部对象进行初始化。
{
system.out.println("----------------执行!");
}
执行顺序: 静态代码块先执行,有对象, 构造代码块执行, 最后构造函数执行。
5.多线程
好处:解决了大部分应用同时运行的问题。
弊端:线程多, 效率低。
jvm启动时, 就启动了多个线程。
1.执行main函数的线程
2.负责垃圾回收的线程
建立线程:一:继承Thread
1. 继承Thread类
2. 覆盖Run方法。
3. 直接厂家Thread的子类对象建立线程
4. 调用start方法开启线程并调用线程的run方法执行
能够经过Thread的getName()获取线程的名称 Thread-编号(从0开始)