牛客刷题2020年9月9日
-
下列说法正确的有()
正确答案: A 你的答案: D (错误)
数组是一种对象 数组属于一种原生类 int number=[]={31,23,33,43,35,63} 数组的大小可以任意改变 解释:原生类是指Java中,数据类型分为基本数据类型(或叫做原生类、内置类型)和引用数据类型。->数组是一种引用类型。
-
以下哪一项正则能正确的匹配网址: http://www.bilibili.com/video/av21061574 ()
正确答案: B 你的答案: D (错误)
/^(https?://)?([a-zA-Zd]+).bilibili.com/?video/av(D{1,8})/?$/ /^(http://)?(w+).bilibili.com/?video/av(d{1,8})/?$/ /^(https?://)?(w+).bilibili.com/?w*$/ /^(http://)?([a-zA-Zd]+).bilibili.com/?video/avw*/+$/ 解释: 正则表达式的知识点: 首先,^表示匹配输入的开始,$表示匹配输入的结束 每个选项从前向后看,http都能够严格匹配 ?表示匹配某元素0次或1次,这里四个选项都没有问题,能够匹配0次或1次字符s 接下来:严格匹配,//严格匹配两个// 接着往下看,[]表示字符集合,它用在正则表达式中表示匹配集合中的任一字符 A D 选项中的 [a-zA-Zd] 表示匹配一个小写字母 或者 大写字母 或者 数字 B C 选项中的 w 表示匹配字母数字或下划线(注意这里比A D中能多匹配下划线类型) +表示匹配某元素1次或多次,到这里四个选项都能够完美匹配字符www .可以匹配除了换行符 外的任何字符 接下来我们看选项A,bilibili com video av都严格匹配,而 D 表示匹配一个非数字字符而非数字字符,av后的数字是无法匹配成功的,A错误 B选项,d匹配数字,{m,n}表示最少匹配m次,最多匹配n次,/?能匹配末尾的0个或1个/字符,B正确 C选项,*表示匹配某元素0次或多次,但 w 并不能匹配字符 /,C错误 D选项,前面都对,错在最后的/+至少要匹配一个/,而原字符串最后并没有/
-
下面关于JAVA的垃圾回收机制,正确的是( )
正确答案: B 你的答案: C (错误)
当调用“System.gc()”来强制回收时,系统会立即回收垃圾 垃圾回收不能确定具体的回收时间 程序可明确地标识某个局部变量的引用不再被使用 程序可以显式地立即释放对象占有的内存 解释: java提供了一个系统级的线程,即垃圾回收器线程。用来对每一个分配出去的内存空间进行跟踪。当JVM空闲时,自动回收每块可能被回收的内存,GC是完全自动的,不能被强制执行。程序员最多只能用System.gc()来建议执行垃圾回收器回收内存,但是具体的回收时间,是不可知的。当对象的引用变量被赋值为null,可能被当成垃圾。
-
String s = new String("xyz");创建了几个StringObject?
正确答案: A 你的答案: C (错误)
两个或一个都有可能 两个 一个 三个 解释: 着重解释:这种类型的题很容易考,考察的就是java的基础牢固不牢固。具体可以看下解释内容 1.String对象的两种创建方式: 第一种方式: String str1 = "aaa"; 是在常量池中获取对象("aaa" 属于字符串字面量,因此编译时期会在常量池中创建一个字符串对象), 第二种方式: String str2 = new String("aaa") ; 一共会创建两个字符串对象一个在堆中,一个在常量池中(前提是常量池中还没有 "aaa" 字符串对象)。 System.out.println(str1==str2);//false 2.String类型的常量池比较特殊。它的主要使用方法有两种: 直接使用双引号声明出来的String对象会直接存储在常量池中。 如果不是用双引号声明的String对象,可以使用 String 提供的 intern 方法。 String.intern() 是一个 Native 方法,它的作用是: 如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用; 如果没有,则在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的引用。 String s1 = new String("AAA"); String s2 = s1.intern(); String s3 = "AAA"; System.out.println(s2);//AAA System.out.println(s1 == s2);//false,因为一个是堆内存中的String对象一个是常量池中的String对象, System.out.println(s2 == s3);//true, s2,s3指向常量池中的”AAA“
-
在Web应用程序中,( )负责将HTTP请求转换为HttpServletRequest对象
正确答案: C 你的答案: A (错误)
Servlet对象 HTTP服务器 Web容器 JSP网页 解释: servlet是运行在服务器端的小应用程序,是接收网络服务的请求和产生响应的一种方式。 servlet的功能:接受http请求,产生动态http响应。
-
对于文件的描述正确的是( )
正确答案: D 你的答案: B (错误)
A 文本文件是以“.txt”为后缀名的文件,其他后缀名的文件是二进制文件。 B File类是Java中对文件进行读写操作的基本类。 C 无论文本文件还是二进制文件,读到文件末尾都会抛出EOFException异常。 D Java中对于文本文件和二进制文件,都可以当作二进制文件进行操作。 解释: A.文件分为文本文件和二进制文件,计算机只认识二进制,所以实际上都是二进制的不同解释方式。文本文件是以不同编码格式显示的字符,例如Ascii、Unicode等,window中文本文件的后缀名有".txt",".log",各种编程语言的源码文件等;二进制文件就是用文本文档打开是看不懂乱码,只要能用文本打开的文件都可以算是文本文件,只是显示的结果不是你想要的,二进制文件只有用特殊的应用才能读懂的文件,例如".png",".bmp"等,计算机中大部分的文件还是二进制文件。 B.File类是对文件整体或者文件属性操作的类,例如创建文件、删除文件、查看文件是否存在等功能,不能操作文件内容;文件内容是用IO流操作的。 C.当输入过程中意外到达文件或流的末尾时,抛出EOFException异常,正常情况下读取到文件末尾时,返回一个特殊值表示文件读取完成,例如read()返回-1表示文件读取完成。 D.上面A选项已经说了,不论是文本文件还是二进制文件,在计算机中都是以二进制形式存储的,所以都当做二进制文件读取。
最后说一下final关键字吧:
1.final修饰变量,则等同于常量
2.final修饰方法中的参数,称为最终参数。
3.final修饰类,则类不能被继承
4.final修饰方法,则方法不能被重写。
5.final 不能修饰抽象类
6.final修饰的方法可以被重载 但不能被重写