Java基础笔试练习(十三)
lipiwang 2024-12-02 21:59 8 浏览 0 评论
点击上方“Coder编程”,选择“置顶公众号”
技术文章第一时间送达!
1. 类Person里面有个方法sleep(),如果直接用Person.sleep(),则方法sleep前面必须用的关键词是? ( )
A.class
B.static
C.public
D.final
答案:
B
解析:
static关键字:针对多个对象共有的成员变量值时所提出的。
特点:1、随着类的加载而加载;2、优先于对象存在;3、被类的所有对象共享;4、可以通过类名直接调用。
注意事项:1.在静态方法中是没有this关键字的; 2.静态方法只能访问静态的成员变量和静态的成员方法。
2.下列关于Java类中方法的定义,正确的是()
A.若代码执行到return语句,则将当前值返回,而且继续执行return语句后面的语句。
B.只需要对使用基本数据类型定义的属性使用getter和setter,体现类的封装性。
C.方法的返回值只能是基本数据类型。
D.在同一个类中定义的方法,允许方法名称相同而形参列表不同。
答案:
D
解析:
A、一旦执行到return,就不再执行后续的代码。
B、类的封装性可不是这么体现的,数据域和方法都可以被封装。数据域可以是基本数据类型也可以是引用类型。
C、方法的返回值可以是引用类型。
D、重载,判定方法只有方法名一致,形参列表不同。
3.J2EE中,当把来自客户机的HTTP请求委托给servlet时,会调用HttpServlet的( )方法
A.service
B.doget
C.dopost
D.init
答案:
A
解析:
HttpServlet容器响应Web客户请求流程如下:
1)Web客户向Servlet容器发出Http请求;
2)Servlet容器解析Web客户的Http请求;
3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;
4)Servlet容器创建一个HttpResponse对象;
5)Servlet容器调用HttpServlet的service方法,这个方法中会根据request的Method来判断具体是执行doGet还是doPost,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象;
6)HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息;
7)HttpServlet调用HttpResponse的有关方法,生成响应数据;
8)Servlet容器把HttpServlet的响应结果传给Web客户。
doGet() 或 doPost() 是创建HttpServlet时需要覆盖的方法.
4.以下不是修饰符final的作用的是( )。
A.修饰常量
B.修饰不可被继承的类
C.修饰不可变类
D.修饰不可覆盖的方法
答案:
C
解析:
final的作用:
- 修饰变量,变量的引用地址不可变,但是地址中的内容可以变。
- 修饰方法,方法不可被重写,但是还是可以重载
- 修饰类,类不可继承。
5.下面有关java的一些细节问题,描述错误的是?
A.构造方法不需要同步化
B.一个子类不可以覆盖掉父类的同步方法
C.定义在接口中的方法默认是public的
D.容器保存的是对象的引用
答案:
B
解析:
B选项中,子类应该是可以置换掉父类的同步方法的。
6.关于依赖注入,下列选项中说法错误的是()
A.依赖注入能够独立开发各组件,然后根据组件间关系进行组装
B.依赖注入使组件之间相互依赖,相互制约
C.依赖注入提供使用接口编程
D.依赖注入指对象在使用时动态注入
答案:
B
解析:
依赖注入的动机就是减少组件之间的耦合度,使开发更为简洁
7.下面有关java基本类型的默认值和取值范围,说法错误的是?
A.字节型的类型默认值是0,取值范围是-2^7—2^7-1
B.boolean类型默认值是false,取值范围是true\false
C.字符型类型默认是0,取值范围是-2^15 —2^15-1
D.long类型默认是0,取值范围是-2^63—2^63-1
答案:
C
解析:
默认值 取值范围 示例
字节型 :0 -2^7—-2^7-1 byte b=10;
字符型 :‘ \u0000′ 0—-2^16-1 char c=’c’ ;
short : 0 -2^15—-2^15-1 short s=10;
int : 0 -2^31—-2^31-1 int i=10;
long : 0 -2^63—-2^63-1 long o=10L;
float : 0.0f -2^31—-2^31-1 float f=10.0F
double : 0.0d -2^63—-2^63-1 double d=10.0;
boolean: false true\false boolean flag=true;
8.
A.
B.
C.
D.
答案:
解析:
9.以下对选择语句描述错误的是()
A.根据某一条件重复执行一部分代码直到满足终止条件为止
B.可以根据条件控制程序流程,改变程序执行的顺序
C.选择语句可以嵌套使用
D.当条件满足时就会执行相应的语句
答案:
A
解析:
流程控制语句分类:
顺序结构
选择结构:if语句、switch语句
循环结构:while语句、for语句
10.java中将ISO8859-1字符串转成GB2312编码,语句为 ?
A.new String("ISO8859-1".getBytes("ISO8859-1"),"GB2312")
B.new String(String.getBytes("GB2312"), ISO8859-1)
C.new String(String.getBytes("ISO8859-1"))
D.new String(String.getBytes("GB2312"))
答案:
A
解析:
答案:A
注意这里"ISO8859-1"是一个普通字符串,不要被迷惑了
String.getBytes("ISO8859-1")表示获取这个字符串的byte数组,
然后new String(String.getBytes("ISO8859-1"),GB2312)是上面的字符数组按照GB2312编码成新的字符串
11.以下代码正确返回结果()?
Integer a = 1; Integer b = 1; Integer c = 500; Integer d = 500; System.out.print(a == b); System.out.print(c == d);
A.true、true
B.true、false
C.false、true
D.false、false
答案:
B
解析:
nterger的范围时[-128,127],在这个范围内比较大小,相等为true,超过范围为false
12.jdbc的事务必须在一个数据库连接上完成。编程时必须去掉数据库的自动提交功能。当成功后调用commit,当失败后调用rollback。判断这句话正确与否
A.正确
B.错误
答案:
A
解析:
在JDBC编程模式中,一个数据库连接建立时,就处于一个自动提交模式,每一个SQL语句被执行完成后就会被自动提交,反映到数据库中。当需要把几条逻辑上相关的SQL组成的一个事务执行时,就需要关闭事务自动提交模式。如下面的语句所示:con.setAutoCommit(false); // 关闭自动提交模式 一旦关闭了事务自动提交模式,不会有任何SQL语句被提交至数据库系统执行,除非显式的调用提交方法。
13.关于下面的程序Test.java说法正确的是( )。
public class Test { static String x="1"; static int y=1; public static void main(String args[]) { static int z=2; System.out.println(x+y+z); } }
A.3
B.112
C.13
D.程序有编译错误
答案:
D
解析:
被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量
14.抽象类方法的访问权限默认都是public。( )
A.正确
B.错误
答案:
B
解析:
关于抽象类
JDK 1.8以前,抽象类的方法默认访问权限为protected
JDK 1.8时,抽象类的方法默认访问权限变为default
关于接口
JDK 1.8以前,接口中的方法必须是public的
JDK 1.8时,接口中的方法可以是public的,也可以是default的
JDK 1.9时,接口中的方法可以是private的
15.下面程序段的时间复杂度是()
i = k = 0; while( k < n ){ i ++ ; k += i ; }
A.O(n)
B.O(n^1/2)
C.O(n*i)
D.O(n+i)
答案:
B
解析:
设循环次数为 q, 时间复杂度为T(n), 也就是说,每次给定一个n的时候,根据 T(n)可以算出来时间复杂度, 那么时间复杂度就是 q, 因为其他操作都是常数时间的操作,所以决定时间复杂度的就应该是循环次数。 观察代码,在while循环中,每次 i 会自加1,循环次数 q 也得加 1 , 也就可以看成每次都是 s 每次都加上 q , 在 s > = n 的时候结束,那么 n 和 q 的关系就是 k=0 k + 1 + 2 + +3 + … + q <= n(q 是循环的次数 ), 那就是 0 + 1 + 2 + +3 + … + q <= n ,根据等差公式算一算就可以得到 T( n ) = n^0.5了 主要就是借着 q 算出来 n 和 T( n) 的关系。
16.以下代码最后输出什么?
public void test() { int a = 10; System.out.println(a++ + a--); }
A.19
B.20
C.21
D.22
答案:
C
解析:
a++ 先把10赋值给a 再+1 所以左边是10 但此时a=11。右边a-- 也是先赋值 a=11,再-1。10+11=21 此时a=10。
17.下列关于容器集合类的说法正确的是?
A.LinkedList继承自List
B.AbstractSet继承自Set
C.HashSet继承自AbstractSet
D.WeakMap继承自HashMap
答案:
C
解析:
a选项linkedlist类是实现了List接口,而不是继承
b选项AbstractSet类实现Set接口
c选项HashSet继承 AbstractSet类,同时也实现set
d选项WeakMap是js里面的
18.以下哪些类是线程安全的()
A.Vector
B.HashMap
C.ArrayList
D.StringBuffer
E.Properties
答案:
ADE
解析:
A,Vector相当于一个线程安全的List
B,HashMap是非线程安全的,其对应的线程安全类是HashTable
C,Arraylist是非线程安全的,其对应的线程安全类是Vector
D,StringBuffer是线程安全的,相当于一个线程安全的StringBuilder
E,Properties实现了Map接口,是线程安全的
19.关于struts项目中的类与MVC模式的对应关系,说法错误的是
A.Jsp文件实现视图View的功能
B.ActionServlet这一个类是整个struts项目的控制器
C.ActionForm、Action都属于Model部分
D.一个struts项目只能有一个Servlet
答案:
C D
解析:
工作流程
20. Hashtable 和 HashMap 的区别是:()?
A.Hashtable 是一个哈希表,该类继承了 AbstractMap,实现了 Map 接口
B.HashMap 是内部基于哈希表实现,该类继承AbstractMap,实现Map接口
C.Hashtable 线程安全的,而 HashMap 是线程不安全的
D.Properties 类 继承了 Hashtable 类,而 Hashtable 类则继承Dictionary 类
E.HashMap允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。
答案:
B C D E
解析:
Hashtable:
(1)Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射。
(2)Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。
(3)HashTable直接使用对象的hashCode。
HashMap:
(1)由数组+链表组成的,基于哈希表的Map实现,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。
(2)不是线程安全的,HashMap可以接受为null的键(key)和值(value)。
(3)HashMap重新计算hash值
?文末
欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~
相关推荐
- 前端入门——css 网格轨道详细介绍
-
上篇前端入门——cssGrid网格基础知识整体大概介绍了cssgrid的基本概念及使用方法,本文将介绍创建网格容器时会发生什么?以及在网格容器上使用行、列属性如何定位元素。在本文中,将介绍:...
- Islands Architecture(孤岛架构)在携程新版首页的实践
-
一、项目背景2022,携程PC版首页终于迎来了首次改版,完成了用户体验与技术栈的全面升级。作为与用户连接的重要入口,旧版PC首页已经陪伴携程走过了22年,承担着重要使命的同时,也遇到了很多问题:维护/...
- HTML中script标签中的那些属性
-
HTML中的<script>标签详解在HTML中,<script>标签用于包含或引用JavaScript代码,是前端开发中不可或缺的一部分。通过合理使用<scrip...
- CSS 中各种居中你真的玩明白了么
-
页面布局中最常见的需求就是元素或者文字居中了,但是根据场景的不同,居中也有简单到复杂各种不同的实现方式,本篇就带大家一起了解下,各种场景下,该如何使用CSS实现居中前言页面布局中最常见的需求就是元...
- CSS样式更改——列表、表格和轮廓
-
上篇文章主要介绍了CSS样式更改篇中的字体设置Font&边框Border设置,这篇文章分享列表、表格和轮廓,一起来看看吧。1.列表List1).列表的类型<ulstyle='list-...
- 一文吃透 CSS Flex 布局
-
原文链接:一文吃透CSSFlex布局教学游戏这里有两个小游戏,可用来练习flex布局。塔防游戏送小青蛙回家Flexbox概述Flexbox布局也叫Flex布局,弹性盒子布局。它决定了...
- css实现多行文本的展开收起
-
背景在我们写需求时可能会遇到类似于这样的多行文本展开与收起的场景:那么,如何通过纯css实现这样的效果呢?实现的难点(1)位于多行文本右下角的展开收起按钮。(2)展开和收起两种状态的切换。(3)文本...
- css 垂直居中的几种实现方式
-
前言设计是带有主观色彩的,同样网页设计中的css一样让人摸不头脑。网上列举的实现方式一大把,或许在这里你都看到过,但既然来到这里我希望这篇能让你看有所收获,毕竟这也是前端面试的基础。实现方式备注:...
- WordPress固定链接设置
-
WordPress设置里的最后一项就是固定链接设置,固定链接设置是决定WordPress文章及静态页面URL的重要步骤,从站点的SEO角度来讲也是。固定链接设置决定网站URL,当页面数少的时候,可以一...
- 面试发愁!吃透 20 道 CSS 核心题,大厂 Offer 轻松拿
-
前端小伙伴们,是不是一想到面试里的CSS布局题就发愁?写代码时布局总是对不齐,面试官追问兼容性就卡壳,想跳槽却总被“多列等高”“响应式布局”这些问题难住——别担心!从今天起,咱们每天拆解一...
- 3种CSS清除浮动的方法
-
今天这篇文章给大家介绍3种CSS清除浮动的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。首先,这里就不讲为什么我们要清楚浮动,反正不清除浮动事多多。下面我就讲3种常用清除浮动的...
- 2025 年 CSS 终于要支持强大的自定义函数了?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!1.什么是CSS自定义属性CSS自...
- css3属性(transform)的一个css3动画小应用
-
闲言碎语不多讲,咱们说说css3的transform属性:先上效果:效果说明:当鼠标移到a标签的时候,从右上角滑出二维码。实现方法:HTML代码如下:需要说明的一点是,a链接的跳转需要用javasc...
- CSS基础知识(七)CSS背景
-
一、CSS背景属性1.背景颜色(background-color)属性值:transparent(透明的)或color(颜色)2.背景图片(background-image)属性值:none(没有)...
- CSS 水平居中方式二
-
<divid="parent"><!--定义子级元素--><divid="child">居中布局</div>...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)