继续刷题,砥砺前行!
同时刷完后,自己也要再开始复习一下Java基础,刷题不是目的,查漏补缺才是王道!

文章目录

  • 题目1
  • 题目2
  • 题目3
  • 题目4
  • 题目5
  • 题目6
  • 题目7
  • 题目8
  • 题目9
  • 题目10

题目1

要在session对象中保存属性,可以使用以下哪个语句( )
A:session.getAttribute(“key”,”value”)
B:session.setAttribute(“key”,”value”)
C:session.setAttribute(“key”)
D:session.getAttribute(“key”)

解析:这个题目主要考察get和set的用法 大家主要记住:获取属性用getAttribute 保存属性用setAttribute
题目中说要保存属性,属性是一个键值对,要把键值对内容都传递进去。

题目2

关于抽象类和接口叙述正确的是? ( )
A:抽象类和接口都能实例化的
B:抽象类不能实现接口
C:抽象类方法的访问权限默认都是public
D:接口方法的访问权限默认都是public

解析:主要考察抽象类和接口的一些特性 下面来带大家一起来熟悉一下内容
抽象类
1.抽象类中可以构造方法
2.抽象类中可以存在普通属性,方法,静态属性和方法。
3.抽象类中可以存在抽象方法。
4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。
5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。
6,抽象类不能被实例化,抽象类和抽象方法必须被abstract修饰
关键字使用注意: 抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。

接口
1.在接口中只有方法的声明,没有方法体。
2.在接口中只有常量,因为定义的变量,在编译的时候都会默认加上public static final
3.在接口中的方法,永远都被public来修饰。
4.接口中没有构造方法,也不能实例化接口的对象。(所以接口不能继承类)
5.接口可以实现多继承
6.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法则实现类定义为抽象类。
7.接口可以继承接口,用extends

抽象类和接口的区别
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public、abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。

题目3

关于AOP错误的是?
A:AOP将散落在系统中的“方面”代码集中实现
B:AOP有助于提高系统可维护性
C:AOP已经表现出将要替代面向对象的趋势
D:AOP是一种设计模式,Spring提供了一种实现

解析:相信一开始大家看到AOP,或许还有一些蚌埠住了,其实AOP也叫面向方面编程,AOP是OOP(面向对象编程)的延续,使用AOP可以实现很多OOP不容易实现的功能,并不是取代,而是相辅相成。

AOP与OOP是面向不同领域的两种设计思想。
OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
AOP(面向方面编程)是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果

题目4

下面有关java final的基本规则,描述错误的是?
A:final修饰的类不能被继承
B:final修饰的成员变量只允许赋值一次,且只能在类方法赋值
C:final修饰的局部变量即为常量,只能赋值一次。
D:final修饰的方法不允许被子类覆盖

解析:还是考察java中关键字final的特点
1、final修饰的方法,不允许被子类覆盖。
2、final修饰的类,不能被继承。
3、final修饰的成员变量为基本数据类型,在赋值之后无法改变。。
4、final修饰的成员变量为基本数据类型是,在赋值之后无法改变。当final修饰的成员变量为引用数据类型时,在赋值后其指向地址无法改变,但是对象内容还是可以改变的。
5、final修饰的成员变量在赋值时可以有三种方式。(1)在声明时直接赋值(2)在构造器中赋值(3)在初始代码块中进行赋值。
6、对于static final修饰的变量,其定义可以有两处:变量申明处;静态构造代码块

题目5

下面代码运行结果是?

public class Test
{static boolean foo(char c){System.out.print(c);return true;}public static void main( String[] argv ){int i = 0;for ( foo('A'); foo('B') && (i < 2); foo('C')){i++ ;foo('D');}}
}

A:ABDCBDCB
B:ABCDABCD
C:Compilation fails.
D:An exception is thrown at runtime.

解析:主要考察for循环的执行顺序:
for(条件1;条件2;条件3) { //语句 }
执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2…
如果条件2为true,则一直执行。如果条件2为false,则for循环结束

for(a;b;c)
执行顺序
先执行a
在判断b是否为真,若为真
执行循环体,
执行c
然后再次判断b是否为真,若为真
执行循环体
执行c
。。。
直到b为假,跳出循环

题目6

下面哪个Set类是排序的?
A:LinkedHashSet
B:TreeSet
C:HashSet
D:AbstractSet

解析:TreeSet自然排序,LinkedHashSet按添加顺序排序 LinkedHashSet
继承于HashSet、又基于LinkedHashMap 来实现
TreeSet
使用二叉树的原理对新add()的对象按照指定的顺序排序(升序、降序),每增加一个对象都会进行排序,将对象插入的二叉树指定的位置。
HashSet
存储元素的顺序并不是按照存入时的顺序(和 List 显然不同) 而是按照哈希值来存的所以取数据也是按照哈希值取得

题目7

在java的一个异常处理中,可以包含多个的语句块是 ( )
A:try
B:finally
C:throws
D:catch

解析: 异常处理一般格式:
捕获异常: try{
//代码块
}catch(异常类型,例如:Exception e){
//需要抛出的异常,例如:e.printStackTrace();
}catch(异常类型){
//需要抛出的异常
}finally{
//必定执行的代码块 }
所以说在一个异常处理中catch语句块是可以多个的,也就是可以抛出多个异常!

题目8

阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()

package NowCoder;
class Test {public static void hello() {System.out.println("hello");}
}
public class MyApplication {public static void main(String[] args) {// TODO Auto-generated method stubTest test=null;test.hello();}
}

A:能编译通过,并正确运行
B:因为使用了未初始化的变量,所以不能编译通过
C:以错误的方式访问了静态方法
D:能编译通过,但因变量为null,不能正常运行

解析:static关键字修饰方法的用法 被static修饰的方法叫做静态方法 如题中hello就是一个静态方法 静态方法的访问有两种:
1.直接使用“类名.”调用 Test.hello(); (一般都用第一种方法,让人一下就明白这是静态方法)
2.new 一个对象 ,“引用.” 的方式调用 使用这种方法,其实底层会转化为 "类名."调用的方式 本题中就用了第二种方法,虽然Test test = null 但是test.hello();------>Test.hello();
所以正常编译运行

题目9

判断一块内存空间是否符合垃圾收集器收集的标准有哪些?
A:给对象赋予了空值null,以下再没有调用过
B:对象重新分配了内存空间
C:给对象赋予了空值null
D:给对象赋予了新值

解析: 在java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:
1.给对象赋值为null,以下没有调用过。
2.给对象赋了新的值,重新分配了内存空间。

题目10

下列哪些操作会使线程释放锁资源?
A:sleep()
B:wait()
C:join()

D:yield()

解析:
1.sleep()方法 在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”。不推荐使用。 sleep()使当前线程进入阻塞状态,在指定时间内不会执行。
2.wait()方法 在其他线程调用对象的notify或notifyAll方法前,导致当前线程等待。线程会释放掉它所占有的“锁标志”,从而使别的线程有机会抢占该锁。
当前线程必须拥有当前对象锁。如果当前线程不是此锁的拥有者,会抛出IllegalMonitorStateException异常。
唤醒当前对象锁的等待线程使用notify或notifyAll方法,也必须拥有相同的对象锁,否则也会抛出IllegalMonitorStateException异常。
waite()和notify()必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。
3.yield方法 暂停当前正在执行的线程对象。 yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。
yield()只能使同优先级或更高优先级的线程有执行的机会。
4.join方法 join()等待该线程终止。 等待调用join方法的线程结束,再继续执行。如:t.join();//主要用于等待t线程运行结束,若无此句,main则会执行完毕,导致结果不可预测

小曾带你刷牛客03(Java版本)相关推荐

  1. 顺序查找以及带哨兵的顺序查找java版本

    import java.util.Arrays; import java.util.Random;class seqSearch {public static void main(String[] a ...

  2. 视频教程-微信公众号实战(Java版本,带前后台)-微信开发

    微信公众号实战(Java版本,带前后台) 2018年5月创办 威海科进网络科技有限公司,这里的视频主要是为了做个记录,方便员工提升自己的水平 陈健 ¥29.00 立即订阅 扫码下载「CSDN程序员学院 ...

  3. MAC自带的Java版本以及Java安装目录查看

    MAC自带的Java版本以及Java安装目录查看 电脑版本 macOS Mojave version 10.14 操作 1.Java版本 在Terminal下输入 java -version 如图 2 ...

  4. 顺丰api相关示例 - java版本(带打印)

    本来一个简简单单的调用api实现的东西根本没必要单独写一篇博客. ....但是!这个顺丰坑实在是太多了!!!让我都有点想骂人了都 实在忍不住吐槽几点: 丰桥的客服qq群,问了一天没人搭理我,真是应了那 ...

  5. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合...

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  6. 牛客网Java选择题练习

    牛客网Java选择题练习 2021/1/12 2021/1/13 2021/1/14 2021/1/16 2021/1/17 2021/1/18 2021/1/20 2021/1/21 2021/1/ ...

  7. Java版本之前世今生(一)

    Java版本之前世今生(一) 文章目录 Java版本之前世今生(一) **1. Oak 语言** **2. JDK Beta** **3. JDK 1.0** **4. JDK 1.1** **5.J ...

  8. UVA445 JAVA版本 Marvelous Mazes

    自我标记:String数据结构的轻应用 辣鸡小玲的题解 利用CSND这个平台记录一下我的成长历程. UVA445 JAVA版本 Marvelous Mazes 水中之水,天河净水 题目我就不贴了,一搜 ...

  9. Ubuntu/Debian 系统切换Java(JVM),修改Java版本,JAVA_HOME

    http://blog.mypapit.net/2007/10/how-to-switch-between-different-java-jvm-in-ubuntu-and-debian-gnu-li ...

  10. 【Android APT】注解处理器 ( 配置注解依赖、支持的注解类型、Java 版本支持 )

    文章目录 一.注解处理器 依赖 编译时注解 二.设置 注解处理器 支持的注解类型 三.设置 注解处理器 支持的 Java 版本 四.博客资源 Android APT 学习进阶路径 : 推荐按照顺序阅读 ...

最新文章

  1. activity 的属性android:taskAffinity和android:allowTaskReparenting
  2. 2019机器学习比赛_2019顶尖的机器学习课程
  3. LVS nat 是否需要借助iptables 的snat实现负载均衡
  4. java.lang.IllegalArgumentException异常处理的一种方法
  5. shell相关测验题
  6. 台式机计算机删除,电脑c盘满了怎么清理 电脑c盘可以删除哪些文件
  7. POJ 1200 Crazy Search(RK)
  8. 灵魂拷问:a = 1 + 2 究竟是怎么被 CPU 执行的
  9. DDD(领域驱动设计)系列之二-应用架构
  10. 举个对联广告随机播放的例子
  11. JS 数字,金额用逗号隔开
  12. k8s token 过期了怎么加入worker 节点
  13. Flutter 移动端屏幕适配方案和制作
  14. linux之sed使用
  15. Exchange2010安装指南
  16. 【如何快速的开发一个完整的iOS直播app】(原理篇)
  17. 反射修改jsessionid实现Session共享
  18. Android Studio中AndroidManifest.xml文件中application标签
  19. 三星 galaxy s7 启用开发者模式
  20. 开始→运行→输入的命令集锦(欢迎补充)

热门文章

  1. github网站进不去怎么办
  2. WebSocket 即时通讯
  3. Ubuntu配置locale
  4. 阿里钉钉、蚂蚁、饿了么,淘宝真实面试分享
  5. Jetbrain学生包续订
  6. 九度OJ 1349 数字在排序数组中出现的次数 -- 二分查找
  7. cocos2d-x实现一个PopStar(消灭星星)游戏的逻辑分析及源码
  8. 作为大数据技术面试官,我喜欢什么样的应届毕业生?
  9. python turtle setheading_Python turtle.right与turtle.setheading的区别
  10. Kubernetes存储Longhorn