面试常考的简答题

一,程序,进程,线程之间有什么联系和区别

  1. 程序:是一组指令的有序集合,它是一个静态的实体,本身没有任何运行的含义。
  2. 进程:它相对于程序不同,它是一个动态的实体,它有自己的生命周期,所以可以说它因创建而产生,因调度而运行;进程是系统资源分配和调度的基本单位,用进程控制块唯一标识一个进程,在执行过程中拥有自己的内存单元,可以有一个或者多个线程,进程也具有并发和交互性,但是进程之间切换耗费资源和时间比较大,所以就有了线程,
  3. 线程:线程是处理机(可以说cpu)调度的基本单位,比进程更小的能独立运行的基本单位,它只拥有一点点在运行中必不可少的资源(程序计数器,寄存器,栈),一个线程可以创建另一个线程,在同一进程下,多个线程共享资源,所以并发性更高,

二,Object有哪些公用方法?

a.方法equals测试的是两个对象是否相等

b.方法clone进行对象拷贝

c.方法getClass返回和当前对象相关的Class对象

d.方法notify,notifyall,wait都是用来对给定对象进行线程同步的

三,Override和Overload的含义以及区别

a.Overload顾名思义是重新加载,它可以表现类的多态性,可以是函数里面可以有相同的函数名但是参数名、返回值、类型不能相同;或者说可以改变参数、类型、返回值但是函数名字依然不变。
b.就是ride(重写)的意思,在子类继承父类的时候子类中可以定义某方法与其父类有相同的名称和参数,当子类在调用这一函数时自动调用子类的方法,而父类相当于被覆盖(重写)了。

wait()和sleep()的区别

sleep来自Thread类,和wait来自Object类

调用sleep()方法的过程中,线程不会释放对象锁。而 调用 wait 方法线程会释放对象锁

sleep睡眠后不出让系统资源,wait让出系统资源其他线程可以占用CPU

sleep(milliseconds)需要指定一个睡眠时间,时间一到会自动唤醒

java多态的概念

1.常说的父类引用指向子类对象,通俗一点说就是同一个消息可以根据传入对象的不同做出不同的行为(消息可以理解为方法);

2.分为编译是多态(重载),和运行时多态(重写)程序在调用方法时在运行时才动态绑定,实现多态的必要条件:继承或实现接口,方法重写,子类上塑;

原文地址:https://www.cnblogs.com/liu-ya/p/9536640.html