--面试题--

9.如何将字符串反转?
使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。
示例代码:(如p1)

10. String str="i"与 String str=new String("i")一样吗?
答:不一样,因为内存的分配方式不一样。String str="i"的方式,Java 虚拟机会将其分配到常量池中;而 String str=new String("i") 则会被分到堆内存中。

11.接口和抽象类有什么区别?
· 实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。
· 构造函数:抽象类可以有构造函数;接口不能有。
· 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
· 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。

Python中Thread子类如何封装
Thread子类的封装

通过使用threading模块能完成多任务的程序开发,为了让每个线程的封装性更完美,所以使用threading模块时,往往会定义一个新的子类class,只要继承threading.Thread就可以了,然后重写run方法。

#coding=utf-8
import threading
import time
class MyThread1(threading.Thread):

def run(self):

for i in range(3):

time.sleep(1)

msg = "I'm "+self.name+' @ '+str(i) #name属性中保存的是当前线程的名字

print(msg)
class MyThread2(threading.Thread):

def run(self):

for i in range(3):

time.sleep(1)

msg = "I'm "+self.name+' @ '+str(i) #name属性中保存的是当前线程的名字

print(msg)
if __name__ == '__main__':

t1 = MyThread1()

t2 = MyThread2()

t1.start()

t2.start()
说明:

python的threading.Thread类有一个run方法,用于定义线程的功能函数,可以在自己的线程类中覆盖该方法。

创建自己的线程实例后,通过Thread类的start方法,可以启动该线程,当该线程获得执行的机会时,就会调用run方法执行线程。

2. 线程的执行顺序

#coding=utf-8
import threading
import time
class MyThread(threading.Thread):

def run(self):

for i in range(3):

time.sleep(1)

msg = "I'm "+self.name+' @ '+str(i) #name属性中保存的是当前线程的名字

print(msg)
def test():

for i in range(1,5):

t=MyThread()

t.start()
if __name__ == '__main__':

test()
说明:

从代码和执行结果我们可以看出,多线程程序的执行顺序是不确定的。当执行到sleep语句时,线程将被阻塞(Blocked),到sleep结束后,线程进入就绪(Runnable)状态,等待调度。而线程调度将自行选择一个线程执行。上面的代码中只能保证每个线程都运行完整个run函数,但是线程的启动顺序、run函数中每次循环的执行顺序都不能确定。

总结:

每个线程一定会有一个名字,尽管上面的例子中没有指定线程对象的name,但是python会自动为线程指定一个名字。

当线程的run()方法结束时该线程完成。

无法控制线程调度程序,但可以通过别的方式来影响线程调度的方式。

#小全不努力怎么行#
题目:单调递增的数字。当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈单调递增。
解:贪心。局部最优:遇到strNum[i - 1] > strNum[i]的情况,让strNum[i - 1]--,然后strNum[i]给为9,可以保证这两位变成最大单调递增整数。
全局最优:得到小于等于N的最大单调递增的整数。
但这里局部最优推出全局最优,需要从后向前遍历,就可以重复利用上次比较得出的结果了。先把int类型转化为string类型,用flag用来标记赋值9从哪里开始,如果非递增(后一个数小于前一个数),则 flag = i(后一个数的位置);前一个数--。最终将flag->str.size()的数改为9,stoi()将str转换为int类型并返回。


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 从投诉内容来看,其中有不少是在使用手机进行扫码等操作时被带入百万医疗险的投保页面,进而以“首月1元”甚至“免费领取”等方式诱导消费者填写姓名、身份证号等个人信息
  • 而主人公之所以被书写的意义在于,他们不认输、不信邪、不由天,可把这样的生活过成童话,给现实中的我们以活好的信念及勇气。战斗部分,非常明智的一个决定是让招式和法宝
  • 而由于监管问题等各方面原因,在滴滴上后的2021年第三、四季度,滴滴的亏损均接近500亿,约是2021年第二季度亏损的2.5倍。滴滴2018年推出的外卖业务,与
  • (难道被它们发现了有人经常偷窥他们家狗狗?[笑cry])过了几年,我小学毕业,也离开了故乡,这件事也就像沙子一样沉淀在我的心底。没想到昨晚的梦,我又重返那条小路
  • [微笑]加油加油加油[太开心]真有才华,往往谦逊,不会高谈阔论;真有财富,往往低调,不会逢人炫耀;真有德行,自我隐藏,不会显山露水;真有爱心,少说多做,不会自吹
  • 虽然,挺烦我儿子他奶奶的,不愿其给我看孩子,但时常听到他奶奶对我儿子反复念叨着:奶奶很爱你哟,奶奶很爱你,将来房子都是你的…听罢,我的心里又有一种难以形容的异样
  • 这类人构建的“依赖与被依赖”的关系,会让感情变得很疲惫,因为伴侣会觉得你过于需要他,没有自己的空间,而且他要为你的人生负责,会感受到感情变得很沉重。 而另
  • 别太善良了,别太大方了,也别太能干了,时间久了人家会觉得,你做的一切都是应该的。别太善良了,别太大方了,也别太能干了,时间久了人家会觉得,你做的一切都是应该的。
  • 不知我者,谓我何求  懂你的人,自然知道你的心事所向,不懂你的人,永远体会不到你的心情,无法理解你现在的所作所为。不知我者,谓我何求  懂你的人,自然知道你的心
  • #稚楚[超话]# มีข่าวดีประกาศ​ให้ทราบ!​ #FanserviceParadox​# พี่หลามได้ทำการดีลตอนพิเ
  • #steam##游戏资讯##b站[超话]##B站##哔哩哔哩##马斯克现在每天工作17小时#马斯克每天工作17小时,你还有什么理由不努力?咱们也不讨论他这句话的
  • 饿了么 美团 外卖,饿了么红包[来][来]会员[来]就算人生是出悲剧,我们要有声有色地演这出悲剧,不要失掉了悲剧的壮丽和快慰;就算人生是个梦,我们也要有滋有味地
  • #每日一善[超话]##阳光信用# #每日一善# 我是十分幸运的女孩子,失去的东西一定会以另一种方式来到我身边,我的考试一定会过,我所做的一切一定都很成功,我十分
  •   日常办事小平台  服务群众用处大  孟昭红是未央区汉城街道青东社区的一名楼栋长,也是一名二级心理咨询师。  徐家湾社区党总支书记戈丹说,“自从小区有了小区工
  • #室内设计##设计美学[超话]# #办公室# #装修设计#5月1日—5月2日晚,敦煌夜市景区举办了“星光熠熠·与霓相遇”主题活动,以赏花灯、逛夜市、看演绎、品美
  • 还得是工商啊[哈哈][哈哈]这么大一杯才7块钱沙茶面的阿姨没想到还记得我男朋友全款买下一个气球给我结果到地铁站被迫放气猪瑶给我买的辣条不得不说陈新真的是太可爱了
  • 他们拿来压我的所谓黑料都是假的啊[允悲]我能破什么防,能发什么疯啊?20221030 ☀️ig&igs&tw更新汇总▪️☀️ig均无更新/☀️i
  • 10年来,宁夏不断强化生态优先、绿色发展的理念,奋力跨越污染防治和环境治理的重要关口,推进“碳达峰近年来,宁夏紧紧围绕生态环境质量持续改善目标,大力实施污染防治
  • 此外,一名德国政府官员也表示,德国还未发现该应用(指TikTok)会带来安全风险的迹象,也没有禁用计划。”报道同时称,约翰逊政府冒着很大风险,因为这可能会激怒正
  • 还有7️⃣天生产的我・‥…━━━☞・‥…━━━☞近况午休宫缩起床的我,看到雨后转晴天边的彩虹一切都显得平静、祥和最近忙着到处收集产品图片虽然有些碰壁但积极应对的