博客主页:京与旧铺的博客主页
✨欢迎关注点赞收藏⭐留言✒
本文由京与旧铺原创,csdn首发!
系列专栏:java学习
参考网站:牛客网
首发时间:2022年6月12日
你做三四月的事,八九月就会有答案,一起加油吧
如果觉得博主的文章还不错的话,请三连支持一下博主哦
最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲
推荐一款模拟面试、刷题神器点击进入网站
下面哪个描述正确? ()
程序中的注释越多,程序运行得越快。
int是java.lang包中可用的类的名称
类总是有一个构造函数(可能由java编译器自动提供)
实例变量名称只能包含字母和数字
B:int是基本类型,Integer才是类,Integer是int的封装类 D:除了字母和数字,还可以包含下划线 _ 和美元符号 $
顺序执行下列程序语句后,则b的值是()
String a=“Hello”;
String b=a.substring(0,2);
Hello
Hel
He
null
substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。
对文件名为Test.java的java代码描述正确的是()
class Person {
String name = "No name";
public Person(String nm) {
name = nm;
}
}
class Employee extends Person {
String empID = "0000";
public Employee(String id) {
empID = id;
}
}
public class Test {
public static void main(String args[]) {
Employee e = new Employee("123");
System.out.println(e.empID);
}
}
输出:0000
输出:123
编译报错
输出:No name
子类的构造方法总是先调用父类的构造方法,如果子类的构造方法没有明显地指明使用父类的哪个构造方法,子类就调用父类不带参数的构造方法。
而父类没有无参的构造函数,所以子类需要在自己的构造函数中显示的调用父类的构造函数。
以下说法错误的是( )
final修饰的方法不能被重载
final可以修饰类、接口、抽象类、方法和属性
final修饰的方法也不能被重写
final修饰的属性是常量,不可以修改
A.final修饰方法后,方法是不可被重写的,因为它已经是“最终形态”了。但不会影响重载**
B.final修饰类标志此类不可被继承。如果final可以标志抽象类和接口,抽象类不能继承?接口不准实现?
那还要来什么意义,所以final不能修饰抽象类和接口
C.题目中这个也字就是来误导人的,同A一样解释过了,final修饰的方法不可重写
D.这道题不能太钻牛角尖,final确实是修饰变量,只不过被修饰过的变量不能再变了,既然变量不能再变了我们就可以把它当做常量。
下面有关 Java ThreadLocal 说法正确的有?
ThreadLocal存放的值是线程封闭,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递
线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收
在Thread类中有一个Map,用于存储每一个线程的变量的副本。
对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式
l 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收
在Thread类中有一个Map,用于存储每一个线程的变量的副本。
对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式
ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get或set方法访问)时能保证各个线程里的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程的上下文。 可以总结为一句话:ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。 举个例子,我出门需要先坐公交再做地铁,这里的坐公交和坐地铁就好比是同一个线程内的两个函数,我就是一个线程,我要完成这两个函数都需要同一个东西:公交卡(北京公交和地铁都使用公交卡),那么我为了不向这两个函数都传递公交卡这个变量(相当于不是一直带着公交卡上路),我可以这么做:将公交卡事先交给一个机构,当我需要刷卡的时候再向这个机构要公交卡(当然每次拿的都是同一张公交卡)。这样就能达到只要是我(同一个线程)需要公交卡,何时何地都能向这个机构要的目的。 有人要说了:你可以将公交卡设置为全局变量啊,这样不是也能何时何地都能取公交卡吗?但是如果有很多个人(很多个线程)呢?大家可不能都使用同一张公交卡吧(我们假设公交卡是实名认证的),这样不就乱套了嘛。现在明白了吧?这就是ThreadLocal设计的初衷:提供线程内部的局部变量,在本线程内随时随地可取,隔离其他线程。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20b1f76404e44df3acc3a630032f99c2.gif#pic_center)