一、单选题(共27题,每题5分)

1若下列所用变量均已经正确定义,以下表达式中不合法的是?
 
A、x>>3
B、+++j
C、a=x>y?x:y
D、x%=4
参考答案:B
答案解析:

运算符优先级口诀:单目算术位关系,逻辑三目后赋值。
单目:++、--
算术:+、-、*、/、%
位:位移运算符:>、>>>
关系:、=、==
========================
逻辑:&&、||、!、&、|、^
三目:三目运算符(又称为三元运算符)A>B? x:y
后:凑字数用的。。
赋值:=
 
此题重点考察C答案:三目运算符的优先级比赋值运算符优先级高,因此先计算出三目运算后的结果,再将结果赋值给a.
所以C是对的。
 
2如下代码,执行test()函数后,屏幕打印结果为()
public class Test2
{
public void add(Byte b)
{
b = b++;
}
public void test()
{
Byte a = 127;
Byte b = 127;
add(++a);
System.out.print(a + " ");
add(b);
System.out.print(b + "");
}
}
A、127 127
B、128 127
C、129 128
D、以上都不对
参考答案:D
答案解析:

![](https://storage.kuibuke.com/source/1/fAknqFBCEalHkfEwfeNwgMsPqKDm3rDT.)
![](https://storage.kuibuke.com/source/1/V2TTnf00Y9HZ6EahCk1HGsdNTtDWLc2_.)
 
包装类的值都是final 不可变的,对于++b 或者b++ ,只是新创建了一个对象,然后把引用传给了原对象句柄,在函数中操作,只是形参的临时句柄改变了指向,实参的句柄还是指向原来的对象。所以即使不是b = b++ 这种,b的值在add之后也是不会变的。
 
3Oracle数据库中,在SQL语句中连接字符串的方法是哪个?( )
 
A、cat
B、concat
C、join
D、+
参考答案:B
答案解析:

暂无

 
4Java中基本的编程单元为:
 
A、类
B、函数
C、变量
D、数据
参考答案:A
答案解析:

java的基本编程单元是类,基本存储单元是变量。

 
5已知脚本内容如下:
if [ $1 -eq 5 ];then
echo True
else:
echo False

以下能达到同等效果的是:

A、[[ $1 -eq 5 ]] && echo True || echo False
B、[[ $1 -eq 5 ]] && echo True && echo False
C、[[ $1 -eq 5 ]] || echo True || echo False
D、[[ $1 -eq 5 ]] || echo True && echo False
参考答案:A
答案解析:

利用了||的短路原理

 
6以下代码的输出的正确结果是 ?

以下代码的输出的正确结果是

 public class Test {
public static void main(String args\[\]) {
String s = "祝你考出好成绩!";
System.out.println(s.length());
}
}
A、24
B、16
C、15
D、8
参考答案:D
答案解析:

java中,每一个字符都是占用1个长度,包括汉字。

 
7通过Intent传递一些二进制数据的方法有哪些?
通过Intent传递一些二进制数据的方法有哪些?
A、使用Serializable接口实现序列化,这是java常用的方法
B、实现Parcelable接口,这里Andriod的部分分类比如Bitmap类就已经实现了,同时Parcelable在Android AIDL中交换数据也很常见
A、A
B、B
C、AB
参考答案:C
答案解析:

Android中实现序列化有两个选择:一是实现Serializable接口(是JavaSE本身就支持的),一是实现Parcelable接口(是Android特有功能,效率比实现Serializable接口高效,可用于Intent数据传递,也可以用于进程间通信(IPC))。实现Serializable接口非常简单,声明一下就可以了,而实现Parcelable接口稍微复杂一些,但效率更高,推荐用这种方法提高性能。

注:Android中Intent传递对象有两种方法:一是Bundle.putSerializable(Key,Object),另一种是Bundle.putParcelable(Key,Object)。当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口。

 
8代码行float t=5.1; int i=t; ,不正确的是 ?
 
A、代码不能编译
B、代码编译, i被设置为5
C、第二行若改为 int i=(byte)t 则可编译
D、第一行若改为 float t=5.1f 则可编译
参考答案:B
答案解析:

5.1需要定义为double类型, double类型也不能直接赋值给int

 
9继承是JAVA语言的一个特性,针对类的继承,虚拟机会如何进行父类和子类的初始化加载呢?请阅读代码选择出该段代码的输入结果。
 public class Test {

     public static void main(String[] args) {
System.out.print(B.c);
}
} class A {
public static String c = "C";
static {
System.out.print("A");
}
} class B extends A{
static {
System.out.print("B");
}
}
 
A、AC
B、ABC
C、C
D、BC
参考答案:A
答案解析:

总结: 1、如果一个 static final 变量是"编译期常量",就像 public static final String a = "JD";那样,那么这个值不需要对 Test2 类进行初始化就可以读取。

2、但是,如果只是将一个变量的域设置为 static 和 final 的,那不足以确保这种行为。例如,对 public static final String a = new String("JD");的访问将强制对 Test2 类进行初始化,因为它不是一个"编译期常量"。

3、如果一个 static 变量域不是 final,那么在对它进行访问时,总是要求在它被读取之前,要先进行链接 (为这个域分配存储空间) 和初始化 (初始化该存储空间) 就像 public static String a = "JD";。

参考 :https://www.cnblogs.com/hglibin/p/10298650.html

 
10以下关于HTTP method 的说法,错误的是?
 
A、一台服务器要与HTTP1.1兼容,只要为资源实现GET和HEAD方法即可
B、PUT让服务器用请求的主体部分来创建一个由所请求的URL命名的新文档,或者,如果那个URL已经存在的话,就用干这个主体替代它
C、POST起初是用来向服务器输入数据的。实际上,通常会用它来支持HTML的表单。表单中填好的数据通常会被送给服务器,然后由服务器将其发送到要去的地方。
D、TRACE方法请求web服务器告知其支持的各种功能。可以查询服务器支持哪些方法或者对某些特殊资源支持哪些方法。
参考答案:D
答案解析:

HTTP method

  • 一台服务器要与HTTP1.1兼容,只要为资源实现GET和HEAD方法即可
  • GET是最常用的方法,通常用于请求服务器发送某个资源。
  • HEAD与GET类似,但服务器在响应中值返回首部,不返回实体的主体部分
  • PUT让服务器用请求的主体部分来创建一个由所请求的URL命名的新文档,或者,如果那个URL已经存在的话,就用干这个主体替代它
  • POST起初是用来向服务器输入数据的。实际上,通常会用它来支持HTML的表单。表单中填好的数据通常会被送给服务器,然后由服务器将其发送到要去的地方。
  • TRACE会在目的服务器端发起一个环回诊断,最后一站的服务器会弹回一个TRACE响应并在响应主体中携带它收到的原始请求报文。TRACE方法主要用于诊断,用于验证请求是否如愿穿过了请求/响应链。
  • OPTIONS方法请求web服务器告知其支持的各种功能。可以查询服务器支持哪些方法或者对某些特殊资源支持哪些方法。
  • DELETE请求服务器删除请求URL指定的资源
 
11以下哪个是ARP欺骗攻击可能导致的后果
 
A、ARP欺骗可直接获得目标主机的控制权
B、ARP欺骗可导致目标主机的系统崩溃
C、ARP欺骗可导致目标主机无法访问网络
D、ARP欺骗可导致目标主机蓝屏重启
参考答案:C
 
12下面关于this()和super()说法正确的有?

java中,下面关于this()和super()说法正确的有?

A、super()和this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法
B、this和super可以同时出现在一个构造函数里面
C、super()必须放在构造方法内第一行,this()不需要
D、super()不能在static环境中使用,this()可以
参考答案:A
答案解析:

1,this()函数主要应用于同一类中从某个构造函数调用另一个重载版的构造函数。this()只能用在构造函数中,并且也只能在第一行。所以在同一个构造函数中this()和super()不能同时出现。
2,super()函数在子类构造函数中调用父类的构造函数时使用,而且必须要在构造函数的第一行

 
13在switch(expression)语句中,expression的数据类型不能是(  )。
 
A、 double
B、 char
C、 byte
D、 short
参考答案:A
答案解析:

暂无

 
14有一条TCP连接,它的最大报文段长度为4KB,TCP拥塞窗口为24KB,这...

有一条TCP连接,它的最大报文段长度为4KB,TCP拥塞窗口为24KB,这时候发生超时,那么该拥塞窗口变为了()

A、2KB
B、4KB
C、6KB
D、8KB
参考答案:B
答案解析:

TCP报文中,当发生超时事件,阈值被设置成当前拥塞窗口的一半,而拥塞窗口被设为一个最大报文段,也就是4KB。

 
15下列属于正则表达式的是
 
A、 一个数组
B、 一组二进制数据
C、 一个字符串
D、 一个公式
参考答案:C
答案解析:

暂无

 
16Oracle数据库表空间与数据文件的关系描述正确的是( )
 
A、一个表空间只能对应一个数据文件
B、一个表空间可以对应多个数据文件
C、一个数据文件可以对应多个表空间
D、表空间与数据文件没任何对应关系
参考答案:B
答案解析:

暂无

 
17下面关于java内存区说法错误的是?
 
A、类中的成员变量,存放在堆区
B、方法中的局部变量,存放在栈区
C、jvm中的堆区和栈区是私有的,不能被线程共享
D、方法区:又叫静态存储区,存放class文件和静态数据,线程共享
E、常量区放未经 new 的常量
参考答案:C
 
18数据库中建立索引的目的?
 
A、加快写入速度
B、加快查询速度
C、加快删除速度
D、降低存储数据空间
参考答案:B
 
19TCP释放连接第二次挥手时ACK(),第三次挥手时ACK()?
 
A、不存在,不存在,
B、不存在,值是1
C、值是1,值是1
D、值是1,不存在
参考答案:C
答案解析:

为什么在第三次挥手时需要发送ack和seq?

因为 TCP 是可靠的全双工传输,所以需要确保客户端的链接关闭正确,并且防止传送的数据包在网络中延迟出现的错误,如果后面又使用同样的端口建立了一个 TCP 链接而且现在要释放(完成了两次挥手),刚才延迟的包现在到了,这时也许服务器还有数据要发送,但是客户端收到延迟的包,就直接确认返回ACK,从而出现非正常关闭。

 
20下列叙述中,错误的是()
 
A、Java Applet必须有HTML文件才能运行
B、Java Application与Applet所用编译命令相同
C、Java Applet程序的.class文件可用java命令运行
D、通常情况下Java Application只能有一个main()方法
参考答案:A
答案解析:

略。

 
21如果希望在网络中通过某个类的对象包装数据进行传输,那么这个类需要实现下面哪...

如果希望在网络中通过某个类的对象包装数据进行传输,那么这个类需要实现下面哪个接口?()

A、Cloneable
B、Comparable
C、Serializable
D、Runnable
参考答案:C
 
22运行代码,输出的结果是()
 public class P {
public static int abc = 123;
static{
System.out.println("P is init");
}
}
public class S extends P {
static{
System.out.println("S is init");
}
}
public class Test {
public static void main(String\[\] args) {
System.out.println(S.abc);
}
}
A、P is init 123
B、S is init P is init<br />123
C、P is init S is init<br />123
D、S is init 123
参考答案:A
答案解析:

虚拟机规范严格规定了有且只有五种情况必须立即对类进行“初始化”:

  1. 使用new关键字实例化对象的时候、读取或设置一个类的静态字段的时候,已经调用一个类的静态方法的时候。

  2. 使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有初始化,则需要先触发其初始化。

  3. 当初始化一个类的时候,如果发现其父类没有被初始化就会先初始化它的父类。

  4. 当虚拟机启动的时候,用户需要指定一个要执行的主类(就是包含main()方法的那个类),虚拟机会先初始化这个类;

  5. 使用Jdk1.7动态语言支持的时候的一些情况。

除了这五种之外,其他的所有引用类的方式都不会触发初始化,称为被动引用。下面是被动引用的三个例子:

  1. 通过子类引用父类的的静态字段,不会导致子类初始化。

  2. 通过数组定义来引用类,不会触发此类的初始化。

 public class NotInitialization {

 public static void main(String[] args) {

 SuperClass[] sca = new SuperClass[10];

 }

 }
  1. 常量在编译阶段会存入调用类的常量池中,本质上没有直接引用到定义常量的类,因此不会触发定义常量的类的初始化。
public class ConstClass {

static {

System.out.println("ConstClass init!");

}

public static final int value = 123;

}

public class NotInitialization{

public static void main(String[] args) {

int x = ConstClass.value;

}

}

上述代码运行之后,也没有输出“ConstClass init!”,这是因为虽然在Java源码中引用了ConstClass类中的常量HELLOWORLD,但其实在编译阶段通过常量传播优化,已经将此常量的值“hello world”存储到了NotInitialization类的常量池中,以后NotInitialization对常量ConstClass.HELLOWORLD的引用实际都被转化为NotInitialization类对自身常量池的引用了。也就是说,实际上NotInitialization的Class文件之中并没有ConstClass类的符号引用入口,这两个类在编译成Class之后就不存在任何联系了。参考资料:https://blog.csdn.net/qq_22771739/article/details/...

 
23下列语句正确的是( )
 
A、形式参数可被视为local variable
B、形式参数可被所有的字段修饰符修饰
C、形式参数为方法被调用时,是真正被传递的参数
D、形式参数不可以是对象
参考答案:A
答案解析:

**答案A:**
**A:**形式参数可被视为local variable。**形参和局部变量一样都不能离开方法**。都只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。
**B:** **对于形式参数只能用final修饰符**,其它任何修饰符都会引起编译器错误。但是用这个修饰符也有一定的限制,就是在方法中不能对参数做任何修改。 不过一般情况下,一个方法的形参不用final修饰。只有在特殊情况下,那就是:方法内部类。 一个方法内的内部类如果使用了这个方法的参数或者局部变量的话,这个参数或局部变量应该是final。
**C:**形参的值在调用时根据调用者更改,实参则用自身的值更改形参的值(指针、引用皆在此列),也就是说**真正被传递的是实参。**
**D:**方法的参数列表指定要传递给方法什么样的信息,**采用的都是对象的形式**。因此,在参数列表中必须指定每个所传递对象的类型及名字。想JAVA中任何传递对象的场合一样,这里传递的实际上也是引用,并且引用的类型必须正确。--《Thinking in JAVA》
 
24一颗二叉树的叶子节点有5个,出度为1的结点有3个,该二叉树的结点总个数是?
 
A、11
B、12
C、13
D、14
参考答案:B
答案解析:

叶子节点个数 = 5 ,因为叶子节点个数=度为2的结点个数加1,所以

度为2的结点个数=5-1=4,

度为1的结点个数 = 3,
所以总个数 = 5 + 4 + 3 = 12

 
25操作系统是裸机上的第一层软件,其他系统软件(如__(12)__等)和应用软件都是建立在操作系统基础上的。
 
A、编译程序、财务软件和数据库管理系统软件
B、汇编程序、编译程序和Java解释器
C、编译程序、数据库管理系统软件和汽车防盗程序
D、语言处理程序、办公管理软件和气象预报软件
参考答案:B
答案解析:

本题考查操作系统基本概念。 财务软件、汽车防盗程序、办公管理软件和气象预报软件都属于应用软件,而选项A、C和D中含有这些软件。选项B中汇编程序、编译程序和数据库管理系统软件都属于系统软件。 计算机系统由硬件和软件两部分组成。通常把未配置软件的计算机称为裸机,直接使用裸机不仅不方便,而且将严重降低工作效率和机器的利用率。操作系统(Operating System)的目的是为了填补人与机器之间的鸿沟,即建立用户与计算机之间的接口,而为裸机配置的一种系统软件。由下图可以看出,操作系统是裸机上的第一层软件,是对硬件系统功能的首次扩充。它在计算机系统中占据重要而特殊的地位,所有其他软件,如编辑程序、汇编程序、编译程序和数据库管理系统等系统软件,以及大量的应用软件都是建立在操作系统基础上的,并得到它的支持和取得它的服务。从用户角度看,当计算机配置了操作系统后,用户不再直接使用计算机系统硬件,而是利用操作系统所提供的命令和服务去操纵计算机,操作系统已成为现代计算机系统中必不可少的最重要的系统软件,因此把操作系统看作是用户与计算机之间的接口。操作系统紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境)。 ![1.png](http://s1.51cto.com/images/20181010/1539166926957548.png "1539166926957548.png")

 
26下列说法哪个正确( )

下列说法哪个正确( )

A、不需要定义类,就能创建对象
B、对象中必须有数据域和方法
C、数据域可以是基本类型变量,也可以是一个对象
D、数据域必须是基本类型变量
参考答案:C
答案解析:

A.没有模板,怎么可能创建对象,创建对象必须先要定义类,常识
B.对象中的数据域和方法取决于该对象的类,类里面有就有,没有就没有
D.数据域不一定是基本类型,也可以是引用类型
 
 
27JAVA属于( )。
 
A、操作系统
B、办公软件
C、数据库系统
D、计算机语言
参考答案:D
答案解析:

计算机软件主要分为系统软件与应用软件两大类。系统软件主要包括操作系统、语言处理系统、数据库管理系统和系统辅助处理程序。应用软件主要包括办公软件和多媒体处理软件。Java是一门面向对象编程语言,属于计算机语言。故正确答案为D选项。

 

二、多选题(共3题,每题5分)

1CMS垃圾回收器在那些阶段是没用用户线程参与的
 
A、初始标记
B、并发标记
C、重新标记
D、并发清理
参考答案:A,C
 
2jdk中关于操作装箱、拆箱的说法正确的有?
 
A、在JDK中,装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的xxxValue方法实现的(xxx代表对应的基本数据类型)。
B、Integer、Short、Byte、Character、Long 这几个类的valueOf方法的实现是类似的,有限可列举,共享[-128,127];
C、Double、Float的valueOf方法的实现是类似的,有限可列举,共享;
D、Boolean的valueOf方法的实现不同于以上的整型和浮点型,只有两个值,有限可列举,共享;
参考答案:A,B,D
答案解析:

选项 C 说法错误,应该是: Double、Float的valueOf方法的实现是类似的 , 无限不可列举,不共享

 
3以下关于java堆栈的说法,正确的有()
 
A、栈(stack):是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量
B、在java中,所有基本类型和引用类型都在栈中存储.栈中数据的生存空间一般在当前scopes内
C、在java中,所有使用new xxx()构造出来的对象都在堆中存储
D、堆不同于堆栈的好处是:编译器不需要知道要从堆里分配多少存储区域,也不必知道存储的数据在堆里存活多长时间
参考答案:A,B,C,D
 

2019年百度最新Java工程师面试题的更多相关文章

  1. 2019年腾讯最新Java工程师面试题

    一.单选题(共21题,每题5分) 1在正则表达式当中下面那一个字符集表示非空格字符   A.[:graph:] B.[:digit:] C.[:space:] D.[:alpha:] 参考答案:A 答 ...

  2. 2019有赞中高级Java工程师面试题与解答

    说说JVM的内存分区 线程私有的区域 程序计数器:JVM中程序计数器相当于汇编语言中的CPU中的寄存器,保存程序当前执行的指令的地址. 虚拟机栈:Java方法执行的栈由许多个栈帧构成,每个栈帧对应一个 ...

  3. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇]     隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...

  4. 北京南天软件java工程师面试题

    此试题为北京南天软件java工程师面试题(部分) 一.单项选择 (1)下列关于构造方法的叙述中,错误的是(C) A.java语言规定构造方法名与类名必须相同 B.java语言规定构造方法没有返回值,但 ...

  5. 2019阿里天猫团队Java高级工程师面试题之第二面

    2019阿里天猫团队Java高级工程师面试题之第一面 2019阿里天猫团队Java高级工程师面试题之第三面 1.Tomcat的基本架构是什么? https://blog.csdn.net/xlgen1 ...

  6. 2019阿里天猫团队Java高级工程师面试题之第三面

    2019阿里天猫团队Java高级工程师面试题之第一面 2019阿里天猫团队Java高级工程师面试题之第二面 1.说说MySQL的锁并发?加锁的机制是什么? https://www.cnblogs.co ...

  7. 2019阿里天猫团队Java高级工程师面试题之第一面

    2019阿里天猫团队Java高级工程师面试题之第二面 2019阿里天猫团队Java高级工程师面试题之第三面 1.五分钟自我介绍,说说自己的擅长及拿手的技术 自我介绍是为了考察面试者的语言表达和总结概括 ...

  8. 2019年19道java经典面试题(附答案)

    1.不可变对象 指对象一旦被创建状态不能再改变.任何修改都会创建一个新的对象,如 String.Integer及其它包装类. 2.能否创建一个包含可变对象的不可变对象? 可以.不要共享可变对象的引用就 ...

  9. 2019年最新阿里Java工程师面试题

    一.单选题(共10题,每题5分) 1 关于设计模式遵循的原则,说法错误的是?   A.组合优于继承 B.针对实现编程 C.对扩展开放,对修改关闭 D.降低对象之间的耦合 参考答案:B 答案解析: 设计 ...

随机推荐

  1. JSP请求是如何被处理的?jsp的执行原理

    客户端通过浏览器发送jsp请求,服务器端接受到请求后,判断是否是第一次请求该页面,或者该页面是否改变,若是,服务器将jsp页面翻译为servlet,jvm将servlet编译为.class文件,字节码 ...

  2. CCF-CSP题解 201912-3 化学方程式

    判断化学方程式是否配平. 字符串处理. 有点编译原理递归下降法的感觉. 考场源码,比较粗糙. // INFO BEGIN // // User = 201911513451(陶杨) // Group ...

  3. CCF-CSP题解 201503-4 网络延时

    求树的直径. 两遍\(dfs\)就好了. #include <cstdio> #include <cstring> #include <algorithm> #in ...

  4. CCF-CSP题解 201512-3 画图

    画图时思路应该清晰一点.我是将坐标\((x,y)\)映射到\(canvas[y][x]\)上. 连线注意\(+\)号的情况,填充写好\(dfs\)就好了. #include <bits/stdc ...

  5. django基础之day09,多对多创建数据表的三种方式

    多对多三种创建方式 1.全自动(用在表关系不复杂的一般情况) class Book(models.Model): title=models.CharField(max_length=32) 多对多关系 ...

  6. 红帽杯-MISC-Advertising for Marriage

    convert -flip screenshot.png screensho1.png 本篇结合我上一博客https://www.cnblogs.com/qq3285862072/p/11869403 ...

  7. 1、手写Unity容器--极致简陋版Unity容器

    模拟Unity容器实例化AndroidPhone 思路: 1.注册类型:把类型完整名称作为key添加到数据字典中,类型添加到数据字典的value中 2.获取实例:根据完整类型名称也就是key取出val ...

  8. 基于Postman中的报错

    Postman中的报错: Could not get any response 错误 Could not get any response There was an error connecting ...

  9. Ajax获取网页添加到div中

    1:利用DOM获取该 div 的 ID,然后清空该DIV的内容(如果你需要接着里面的内容添加可不要清空):需要注意点是清空最好用“ empty()  ”: 2: 把  async设成true ,否则又 ...

  10. iOS:bugly符号表上传

    https://blog.csdn.net/weixin_38633659/article/details/81667721 这个篇文章已经讲得足够清楚 而且官方的文档也写得很好(注意官方网站上的文档 ...