Java基础
Java中的类与对象
类与对象的关系
类表示一个共性的产物,是一个综合的特征,而对象,是一个个性的产物,是一个个体的特征。
(类似生活中的图纸与实物的概念。)
类必须通过对象才可以使用,对象的所有操作都在类中定义。
类由属性和方法组成:
· 属性:就相当于人的一个个的特征
· 方法:就相当于人的一个个的行为,例如:说话、吃饭、唱歌、睡觉
类的定义
// 在Java中定义类,使用关键字class完成。语法如下:
class 类名{
属性(变量)
行为(方法)
}
范例:
//定义一个人的类
class Person{
//属性
String name;//姓名
int age;//年龄
//方法
public void Say(){
System.out.println("这是一个名叫"+name+","+age+"岁"+"的人在说话");
}
}
定义类之后能直接使用吗?
答案是不能的,必须通过new关键字来实例化对象之后才能使用。
//通过无参数的构造方法来创建对象
Person p = new Person();
//实例化对象之后,通过对象来传递参数和调用方法
p.name = "张三";//操作属性内容
p.age = 18;//操作属性内容
p.Say();//调用方法
//通过有参数的构造方法来创建对象
Person p = new Person("张三",18);
p.Say();
3. 构造方法
//无参数的构造方法
public Person(){
}
//全参的构造方法
public Person(String name,int age){
this.name = name;
this.age = age;
}
同步与异步&并发与并行
同步:排队执行,效率低但是安全
异步:同时执行,效率高但是不安全
并发:指两个或多个事件在同一时间段内发生
并行:指两个或多个事件在同一时刻发生(同时发生)
线程
线程是程序中执行的线程。 Java虚拟机允许应用程序同时运行多个执行线程。
每个线程都有优先权。 具有较高优先级的线程优先于具有较低优先级的线程执行。
每个线程可能也可能不会被标记为守护进程。 当在某个线程中运行的代码创建一个新的Thread对象时,新线程的优先级最初设置为等于创建线程的优先级,并且当且仅当创建线程是守护进程时才是守护进程线程。
当Java虚拟机启动时,通常会有一个非守护进程线程(通常调用某个指定类的名为main的方法)。 Java虚拟机继续执行线程,直到发生以下任一情况:
已调用类Runtime的exit方法,并且安全管理器已允许执行退出操作。
通过调用run方法返回或抛出超出run方法传播的异常,所有非守护程序线程的线程都已死亡。
有两种方法可以创建新的执行线程。 一种是将类声明为Thread的子类。 此子类应覆盖类Thread的run方法。 然后可以分配和启动子类的实例。
常见的构造方法
线程的六种状态
NEW 尚未启动的线程处于此状态
RUNNABLE 在Java虚拟机中执行的线程处于此状态
BLOCKED 被阻塞等待监视器锁定的线程处于此状态
WAITING 无期限等待另一个线程执行特定操作的线程处于此状态
TIME_WAITING 正在等待另一个线程执行特定操作的线程处于此状态
TREMTNATER 已退出的线程处于此状态