类的抽象是将类的实现和使用分离,
而类的封装是将实现的细节封装起来并且对用户隐藏,用户只需会用就行。
类的合约指的是从类外可以访问的方法和数据域的集合以及与其这些成员如何行为的描述
isAlive()
方法的返回值类型为布尔型(Boolean)。这个方法用于检查线程是否仍然在运行。
interrupt()
方法的作用是中断线程,但这并不意味着线程会立即终止。它会设置线程的中断状态,并且如果线程在等待、睡眠或尝试执行一个可中断的I/O操作时,会抛出InterruptedException
。线程是否终止取决于它如何响应这个中断。
start()
方法用于启动线程,使其进入就绪状态,等待CPU调度执行。
setPriority(p:int)方法,这个参数的取值范围是1到10(包括1和10),其中1是最低优先级,10是最高优先级,而5是默认优先级(也称为“普通”优先级)。不过,某些JVM实现可能会忽略这个设置,或者只支持几个优先级级别。
多态性(Polymorphism)允许将子类对象视为父类对象来使用,但它本身并不使子类“拥有”父类的特征。子类本来就继承了父类的特征,多态性只是提供了一种机制,使得这些特征可以在运行时以不同的方式表现。
在面向对象编程中,子类继承父类,因此子类的每个实例都可以被视为其父类的一个实例(或对象)。这允许我们将子类对象赋值给父类类型的变量。
继承意味着父类型的变量可以引用子类型的对象。这是多态性的一种表现,允许父类类型的引用变量指向子类对象。这样,我们就可以在运行时调用子类重写的父类方法,实现动态绑定。
Math.random()
生成一个大于等于0.0且小于1.0的双精度浮点数。Math.random()*10
会生成一个大于等于0.0且小于10.0的双精度浮点数。- 如果想要得到0到9之间的整数(包含0和9),需要使用
(int)(Math.random()*10)
。但这样得到的结果仍然是0到9之间的整数,不是“一位整数”这一描述所可能暗示的0-99之间的数。更重要的是,该表达式不能确保结果是整数,因为乘以10后仍然是一个浮点数,需要通过类型转换(int)
来变成整数。即使转换为整数,其范围也不是一位整数所应有的含义(0-9或00-99)。
- 常量(在Java中用
final
关键字声明)确实表示在程序运行期间其值不会改变的数据。
getConstructors()只能获取public 构造方法
在事务执行select
语句时,数据库系统为其分配的锁类型主要是共享锁。
- 共享锁允许多个事务同时读取数据,但禁止写入,确保数据在读取时不会被修改。
- 当一个事务执行
select
语句时,为了允许其他事务同时读取但不允许修改这些数据,数据库系统会自动为事务分配共享锁。
排他锁:
- 排他锁一个事务加排他锁后,禁止其他事务对该数据进行读写。
- 这种锁通常用于修改数据的场景,如
insert
、update
、delete
等语句执行时。
更新锁:
- 更新锁是一种中间状态的锁,它在读取数据时加锁,以便后续可以升级为排他锁进行更新操作。
- 更新锁不是
select
语句直接使用的锁类型,而是在需要更新数据时,如果先进行了查询,则可能会先加共享锁,然后在更新时升级为更新锁,再进一步升级为排他锁。
意向锁:
- 意向锁表示该表中有某一条记录被锁了,分为IS共享意向锁和IX排他意向锁。
- 意向锁是表级别的锁,用于提高加锁效率,避免在加表锁时逐条检查记录是否加锁。
- 它不是
select
语句直接使用的锁类型。
资源顺序分配法通过规定每个进程必须按照某种顺序请求资源,从而破坏了循环等待条件。具体来说,这种方法首先给系统中的资源进行编号,然后规定每个进程必须按照编号递增的顺序请求资源。这样,即使多个进程都需要多个资源,它们也会因为请求资源的顺序限制而无法形成环路等待,从而避免了死锁的发生。
OSI七层模型从高到低依次为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。每一层都有其特定的功能和职责。
- 应用层:为计算机用户提供接口,也为用户直接提供各种网络服务。常见的应用层网络服务协议有HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3等。应用层协议的代表工作就是通过应用进程间的交互来完成特定网络应用。
- 表示层:主要解决编码、加密、压缩等问题。
- 会话层:主要负责建立、管理和终止会话,协调不同主机之间的会话过程,确保不同应用程序之间能够进行有序的通信。
- 传输层:负责提供端到端的可靠传输服务,进行差错控制和流量控制。常见的传输层协议有TCP和UDP。
- 网络层:负责将数据包从源主机传输到目标主机,实现不同网络之间的逻辑寻址、路由选择和路径确定功能。
- 数据链路层:主要负责管理物理传输介质上的数据帧的传输,将物理层接收到的原始比特流组合成帧,并通过MAC地址来识别网络中的不同设备。
- 物理层:负责将数据位流传输到物理介质上,确保数据能够在物理介质(如电缆、光纤、无线电波等)上以适当的方式传输。
一棵有124个叶结点的完全二叉树最多有( )个结点。
A。248
B。249
C。247
D。250
设有一个栈,元素进栈顺序为A、B、C、D、E,则可能的出栈顺序有( )种。
A。13
B。14
C。15
D。17
拓扑排序通常用于有向无环图(DAG)。如果一个有向图可以进行拓扑排序,那么它就不包含环。反之,如果拓扑排序算法无法完成排序(例如,因为存在至少一个顶点没有确定的拓扑位置,这通常意味着存在环),则可以确定图中存在环。因此,拓扑排序可以用来判断有向图中是否存在环。
在深度优先遍历过程中,我们可以使用递归栈或显式栈来跟踪访问的顶点。如果我们在遍历过程中遇到已经访问过的顶点(且该顶点不是当前顶点的父顶点),则表明存在一条从当前顶点到该已访问顶点的路径,这通常意味着存在一个环。因此,深度优先遍历也可以用来判断有向图中是否存在环。
近日总结:困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困困