A.每一个类有且只能有一个构造函数。
B.构造函数是类的一种特殊函数,它的方法名必须与类名相同
C.构造函数的主要做用是完成对类的对象的初始化工做
D.通常在建立新对象时,系统会自动调用构造函数java
答案: Ac++
解析:
类除了无参构造方法,还有有参构造方法,有参构造方法还能够经过重载写出多参的构造方法(2参,3参,4参)
方法重载:同一个类中方法名称相同,而参数的类型或个数不一样git
A.手机与小米手机
B.企业家与雷军
C.编程语言与Java
D.中国与北京github
答案: D
解析:
小米手机是一个手机/雷军是一个企业家/java是一个编程语言/北京是一个中国吗?面试
main() { int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); }
A.12353514
B.12353513
C.12343514
D.12343513正则表达式
答案: A
解析: >m++ 先输出在自加,++m 先自加在输出算法
A.功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
B.注释用来讲明程序段,须要在每一行都要加注释
C.可以使用空行或缩进,以便很容易区分注释和程序
D.修改程序也应修改注释编程
答案: B
解析: 略数组
A.java是一次编写多处运行,c++是一次编写多处编译
B.c++和java支持多继承
C.Java不支持操做符重载,操做符重载被认为是c++的突出特征
D.java没有函数指针机制,c++支持函数指针缓存
答案: B
解析:
JAVA没有指针的概念,被封装起来了,而C++有;JAVA不支持类的多继承,但支持接口多继承,C++支持类的多继承;C++支持操做符重载,JAVA不支持;JAVA的内存管理比C++方便,并且错误处理也比较好;C++的速度比JAVA快。
C++更适用于有运行效率要求的状况,JAVA适用于效率要求不高,但维护性要好的状况。
String s1=new String( ” xyz ” ); String s2=new String( ” xyz ” ); Boolean b1=s1.equals(s2); Boolean b2=(s1==s2); System .out.print(b1+ ” ” +b2);
A.true false
B.false true
C.true true
D.false false
答案: A
解析: >
String s1=new String( ” xyz ” ); //建立了String类型的内容为xyz的s1对象
String s2=new String( ” xyz ” ); //建立了String类型的内容为xyz的s2对象
Boolean b1=s1.equals(s2); //比较s1对象和s2对象的内容相等,返回true。
Boolean b2=(s1==s2); //比较s1和s2两个对象的存储地址是否相等,明显二者分别存储在不一样的地址,因此返回:false。
故答案为:true false
class Test { private int data; int result = 0; public void m() { result += 2; data += 2; System.out.print(result + " " + data); } } class ThreadExample extends Thread { private Test mv; public ThreadExample(Test mv) { this.mv = mv; } public void run() { synchronized(mv) { mv.m(); } } } class ThreadTest { public static void main(String args[]) { Test mv = new Test(); Thread t1 = new ThreadExample(mv); Thread t2 = new ThreadExample(mv); Thread t3 = new ThreadExample(mv); t1.start(); t2.start(); t3.start(); } }
A.0 22 44 6
B.2 42 42 4
C.2 24 46 6
D.4 44 46 6
答案: C
解析:
Test mv =newTest()声明并初始化对data赋默认值
使用synchronized关键字加同步锁线程依次操做m()
t1.start();使得result=2,data=2,输出即为2 2
t2.start();使得result=4,data=4,输出即为4 4
t3.start();使得result=6,data=6,输出即为6 6
System.out.print(result +" "+ data);是print()方法不会换行,输出结果为2 24 46 6
A.标准输出流System.out.println()。
B.创建字节输出流。
C.创建字节输入流。
D.标准输入流System.in.read()。
答案: A
解析: 略
private List<Integer> nums; //precondition: nums.size() > 0 //nums contains Integer objects public void numQuest() { int k = 0; Integer zero = new Integer(0); while (k < nums.size()) { if (nums.get(k).equals(zero)) nums.remove(k); k++; } }
A.[3, 5, 2, 4, 0, 0, 0, 0]
B.[0, 0, 0, 0, 4, 2, 5, 3]
C.[0, 0, 4, 2, 5, 0, 3, 0]
D.[0, 4, 2, 5, 3]
答案: D
解析: 略,一步一步来就能算出
A.[a-z]+://[a-z.]+/
B.https[://]www[.]tensorflow[.]org[/]
C.[htps]+://www.tensorflow.org/
D.[a-zA-Z.:/]+
答案: B
解析: >
[://],这是个很明显的陷阱。[ ] 里面是不重复的,因此等价于[:/]
若是[ ]后面没有带+号的话,是不会贪婪匹配的,就只能匹配到://中的其中一个
A.sleep是线程类的方法,wait是object的方法
B.sleep不释放对象锁,wait放弃对象锁
C.sleep暂停线程,但监控状态依然保持,结束后会自动恢复
D.wait进入等待锁定池,只有针对此对象发出notify方法得到对象锁进入运行状态
答案: D
解析:
D选项最终是进入就绪状态,而不是运行状态。
A.CallableStatement是PreparedStatement的父接口
B.PreparedStatement是CallableStatement的父接口
C.CallableStatement是Statement的父接口
D.PreparedStatement是Statement的父接口
答案: B
解析:
CallableStatement继承自PreparedSatement,PreparedStatement继承自Statement
A.能保证线程安全
B.volatile关键字用在多线程同步中,可保证读取的可见性
C.JVM保证从主内存加载到线程工做内存的值是最新的
D.volatile能禁止进行指令重排序
答案: A
解析:
出于运行速率的考虑,java编译器会把常常常常访问的变量放到缓存(严格讲应该是工做内存)中,读取变量则从缓存中读。可是在多线程编程中,内存中的值和缓存中的值可能会出现不一致。volatile用于限定变量只能从内存中读取,保证对全部线程而言,值都是一致的。可是volatile不能保证原子性,也就不能保证线程安全。
A.byte i=128
B.boolean i=null
C.long i=0xfffL
D.double i=0.9239d
答案: C D
解析: null表示没有地址;null能够赋值给引用变量,不能将null赋给基本类型变量,例如int、double、float、boolean
A.java.servlet
B.javax.servlet
C.servlet.http
D.javax.servlet.http
答案: B D
解析:
JEE5.0中的Servlet相关的就下面这几个包:
javax.servlet
javax.servlet.jsp
java.servlet.jsp.el
java.servlet.jsp.tagext
而最用得多的就是
javax.servlet
javax.servlet.http
这两个包了.
A.Java编程语言
B.Java类文件格式
C.Java API
D.JVM
答案: A B C D
解析: 略
A.parseInt(a);
B.Math.floor(a);
C.Math.ceil(a);
D.a.split('.')[0];
答案: A B
解析: >Math.ceil(); ceiling(天花板) 因此向上取整
Math.floor();floor(地板)因此向下取整
split是对字符串的分割,而10.42编译器自动类型推断中应该是double类型的,因此d错误
A.给对象赋予了空值null,如下再没有调用过
B.对象从新分配了内存空间
C.给对象赋予了空值null
D.给对象赋予了新值
答案: A B D
解析:
在java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:
1.给对象赋值为null,如下没有调用过。
2.给对象赋了新的值,从新分配了内存空间。
A.public
B.private
C.abstract
D.final
答案: C D
解析:
局部内部类是放在代码块或方法中的,不能有访问控制修饰符,且不能用static修饰
A.stop
B.sleep
C.wait
D.suspend
答案: D
解析:
suspend() 和 resume() 方法:两个方法配套使用,suspend()使得线程进入阻塞状态,而且不会自动恢复,必须其对应的 resume() 被调用,才能使得线程从新进入可执行状态
大厂笔试内容集合(内有详细解析) 持续更新中....
欢迎关注我的微信公众号:Coder编程
欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~
新建了一个qq群:315211365,欢迎你们进群交流一块儿学习。谢谢了!也能够介绍给身边有须要的朋友。
文章收录至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
欢迎关注并star~