【牛客网java练习错题笔记】 --Java基础打卡day003
- 1 关于类的叙述正确的是()。
- 2 java8中,下面哪个类用到了解决哈希冲突的开放定址法
- 3 下面代码输出是?
- 4 以下各类中哪几个是线程安全的?( )
- 5 定义有StringBuffer s1=new StringBuffer(10);s1.append(“1234”),则s1.length()和s1.capacity()分别是多少?
- 6 关于JDK1.8中Java的抽象类、接口,以下描述错误的是?
- 7 判断对错。在java的多态调用中,new的是哪一个类就是调用的哪个类的方法。
- 8 下列Java代码中的变量a、b、c分别在内存的____存储区存放。
- 9 下面哪些接口直接继承自Collection接口()
- 10 下列关于while循环、do-while循环和for循环说法错误的是
- 11 面向对象程序设计方法的优点包含:
- 感谢牛客,让我认清自己 :dog:
1 关于类的叙述正确的是()。
A,类是一个封装,类的成员只能在类内部使用,外部需要 “对象名.变量名” 来引用。
B,正确,局部变量只在定义它的代码块或者函数内部可见
C,跟类的成员变量一样,需要指定对象才能引用
D,如果类没有构造方法,JVM会生成一个默认构造方法,如果定义了任意类型的构造方法,编译器都不会自动生成构造方法。
2 java8中,下面哪个类用到了解决哈希冲突的开放定址法
threadlocal
map使用开放定址法
解决hash冲突,hashmap使用链地址法
解决hash冲突
3 下面代码输出是?
ceil
:天花板数,向上取整。
floor
:地板数,向下取整
ceil 方法上有这么一段注释:如果参数小于0且大于-1.0,结果为 -0.0
4 以下各类中哪几个是线程安全的?( )
线程同步:喂,SHE
喂(Vector)
S(Stack)
H(hashtable)
E(enumeration)
5 定义有StringBuffer s1=new StringBuffer(10);s1.append(“1234”),则s1.length()和s1.capacity()分别是多少?
length
返回当前长度
如果字符串长度没有初始化长度大,capacity
返回初始化的长度
如果append后的字符串长度超过初始化长度,capacity
返回增长后的长度
6 关于JDK1.8中Java的抽象类、接口,以下描述错误的是?
抽象类不一定含有抽象方法,接口中的方法都是抽象方法。
接口中的方法默认修饰符有public abstract。
一个类只能继承一个一个抽象类,但可以实现多个接口;一个接口可以继承多个接口。Java里类是单继承的,接口是可以多继承的,用关键字extends。
抽象类中的方法是可以有方法体的。JDK1.8之后,接口中的方法也可以有方法体,用default关键字修饰方法。
抽象类可以含有私有成员变量,接口不含有私有成员变量。
接口中的成员变量都是public static final
的,一般用作常量。
7 判断对错。在java的多态调用中,new的是哪一个类就是调用的哪个类的方法。
成员变量
:编译和运行都参考左边。
成员函数
(非静态):编译看左边,运行看右边
静态函数
:编译和运行都看左边。
8 下列Java代码中的变量a、b、c分别在内存的____存储区存放。
常量池
:未经 new 的常量
堆区
:成员变量的引用,new 出来的变量
栈区
:局部变量的引用
b、c在栈区,“bb”,“cc”在常量池
9 下面哪些接口直接继承自Collection接口()
10 下列关于while循环、do-while循环和for循环说法错误的是
while
只有在满足条件时执行 而do-while
会先执行一次 再看条件是否满足 满足再次循环 不满足跳出
所以B也就错了 应该是do-while
循环结束的条件是关键字while
后的条件表达式不成立
三个都为空也是可以的 最简洁形式:for(;;;)
我们使用while
就是为了他的循环次数的不一定的 而for循环
一般限定了循环次数