【280天】我爱刷题系列(39)

本文探讨了Java中线程的创建与管理方法,包括实现Runnable接口和继承Thread类等不同方式。同时,深入解析了Java内存管理机制,如垃圾回收程序的工作原理及其对内存释放的作用。

叨叨两句

  1. 把金钱视为工具,而不是财富

  2. 人与人最美好的关系,是彼此成就

牛客网——java专项练习019

1

关于 Java 线程,下面说法错误的是()。
正确答案: C

  1. 创建线程的方法有两种:实现Runnable接口和继承Thread类

  2. java利用线程使整个系统成为异步

  3. 新线程一旦被创建,它将自动开始运行

创建线程的方法有三种:
(1)继承Thread类,重写run方法;
(2)实现Runnable接口,并将对象实例作为参数传递给Thread类的构造方法;
(3)实现callable接口,并实现call方法,并且线程执行完毕后会有返回值。
注意:(1)和(2)都是调用start()方法启动线程的,然后JVM虚拟机将此线程放到就绪队列中,有处理机可用时,则执行run方法。这两种方法都重写了run方法,但是没有返回值。

2

关于抽象类叙述正确的是? ( )

正确答案: B

  1. 抽象类不能实现接口

  2. 抽象类必须有“abstract class”修饰

  3. 抽象类必须包含抽象方法

  4. 抽象类也有类的特性,可以被实例化

A.抽象类是可以实现接口的,而且抽象类也可以继承自抽象类
B.对
C.抽象类指有abstract修饰的class,其可以包含抽象方法,也可以不包含
D.抽象类和接口都是不能被实例化的,只有具体的类才可以被实例化

3

下列哪些语句关于 java 内存回收的说明是正确的?
正确答案: B

  1. 程序员必须创建一个线程来释放内存

  2. 内存回收程序负责释放无用内存

  3. 内存回收程序允许程序员直接释放内存

  4. 内存回收程序可以在指定的时间释放内存对象

A:垃圾回收程序是一般是在堆上分配空间不够的时候会自己进行一次GC,程序员不需要也不能主动释放内存。
B:Java的内存释放由垃圾回收程序来进行释放
C:在Java里,内存的释放由垃圾回收程序进行管理,程序员不能直接进行释放。
D:程序员可以调用System.gc()运行垃圾回收器,但是不能指定时间。

4

以下代码的输出结果是?

public class B
{

public static B t1 = new B();
public static B t2 = new B();
{
    System.out.println("构造块");
}
static
{
    System.out.println("静态块");
}
public static void main(String[] args)
{
    B t = new B();
}

}

正确答案: C

  1. 静态块 构造块 构造块 构造块

  2. 构造块 静态块 构造块 构造块

  3. 构造块 构造块 静态块 构造块

  4. 构造块 构造块 构造块 静态块

开始时JVM加载B.class,对所有的静态成员进行声明,t1 t2被初始化为默认值,为null,又因为t1 t2需要被显式初始化,所以对t1进行显式初始化,初始化代码块→构造函数(没有就是调用默认的构造函数),咦!静态代码块咋不初始化?因为在开始时已经对static部分进行了初始化,虽然只对static变量进行了初始化,但在初始化t1时也不会再执行static块了,因为JVM认为这是第二次加载类B了,所以static会在t1初始化时被忽略掉,所以直接初始化非static部分,也就是构造块部分(输出''构造块'')接着构造函数(无输出)。接着对t2进行初始化过程同t1相同(输出'构造块'),此时就对所有的static变量都完成了初始化,接着就执行static块部分(输出'静态块'),接着执行,main方法,同样也,new了对象,调用构造函数输出('构造块')
之前我一直有一个误区!就是认为静态块一定是最先初始化的!但是,阿里爸爸今天又用一记重拳猛击我的脸,额,好疼....当时的情况是这样的:
我在牛客网找虐中,碰到了这样的一道题,心中充满了鄙夷,心想"这tm还用看吗,肯定先是静态块,再接着三个构造块,弱鸡题",但是 = = ,答案却是"构造块 构造块 静态块 构造块".
......[黑线|||||||||]
于是总结了一下,以警后世 - -
正确的理解是这样的:
并不是静态块最先初始化,而是静态域.(BM:啊!多么痛的领悟!)
而静态域中包含静态变量、静态块和静态方法,其中需要初始化的是静态变量和静态块.而他们两个的初始化顺序是靠他们俩的位置决定的!
So!
初始化顺序是 t1 t2 静态块
<think>好的,用户想找抖音上《我发明》系列使用的配乐名称。首先需要明确《我发明》是什么节目,可能涉及的音乐类型。然后考虑在抖音上常用的配乐来源,可能是节目原声或流行音乐。 需要调用搜索工具,查找相关关键词,比如“抖音 我发明 背景音乐”、“我发明配乐名称”等。查看是否有用户讨论或官方信息。注意可能存在多个配乐的情况,不同片段使用不同音乐。 整合搜索结果,发现《我发明》常用背景音乐包括《HandClap》《Tassel》《Go Time》等。需要确认这些是否在抖音上被广泛使用。同时,用户可能需要区分节目原声和抖音用户自选的音乐,所以需要说明不同情况下的查找方法。 另外,提供识别音乐的方法,比如使用抖音的识别功能或第三方应用Shazam。步骤要简明,分点说明,避免使用顺序词汇。确保回答符合格式要求,公式和代码部分若有的话要正确标注,但此处可能不需要。最后生成相关问,需基于原问,如其他节目配乐、识别音乐方法、节目播出时间等。</think>《我发明》在抖音传播时常用配乐需根据具体视频内容判断。通过以下方式可精准识别配乐名称: **方法一:节目原声匹配** 《我发明》央视原版背景音乐多采用科技感电子音乐,部分片段使用《HandClap》(Fitz and The Tantrums乐队)或《Tassel》(Cymophane创作)等曲目。可对比原节目片头片尾音乐进行验证 **方法二:抖音音乐识别功能** 打开目标短视频,点击右下角旋转唱片图标进入音乐页面,查看“原声”标签显示的配乐名称。若被二次剪辑,需使用“Shazam”等第三方应用实时识别:启动Shazam后靠近音源,10秒内显示识别结果 **方法三:关键词组合搜索** 在抖音搜索框输入“我发明 背景音乐”“我发明BGM”等组合关键词,查看高赞视频评论区。创作者常会在置顶评论注明配乐信息,例如《Go Time》(Mark Petrie)常见于发明过程加速片段 ```python # 示例:使用ShazamAPI识别音频 import shazamio from shazamio import Shazam async def identify_music(file_path): shazam = Shazam() result = await shazam.recognize_song(file_path) return result[&#39;track&#39;][&#39;title&#39;] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值