2019年百度最新Java工程师面试题
一、单选题(共27题,每题5分)
暂无
java的基本编程单元是类,基本存储单元是变量。
以下能达到同等效果的是:
利用了||的短路原理
以下代码的输出的正确结果是
java中,每一个字符都是占用1个长度,包括汉字。
Android中实现序列化有两个选择:一是实现Serializable接口(是JavaSE本身就支持的),一是实现Parcelable接口(是Android特有功能,效率比实现Serializable接口高效,可用于Intent数据传递,也可以用于进程间通信(IPC))。实现Serializable接口非常简单,声明一下就可以了,而实现Parcelable接口稍微复杂一些,但效率更高,推荐用这种方法提高性能。
注:Android中Intent传递对象有两种方法:一是Bundle.putSerializable(Key,Object),另一种是Bundle.putParcelable(Key,Object)。当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口。
5.1需要定义为double类型, double类型也不能直接赋值给int
总结: 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";。
HTTP method
- 一台服务器要与HTTP1.1兼容,只要为资源实现GET和HEAD方法即可
- GET是最常用的方法,通常用于请求服务器发送某个资源。
- HEAD与GET类似,但服务器在响应中值返回首部,不返回实体的主体部分
- PUT让服务器用请求的主体部分来创建一个由所请求的URL命名的新文档,或者,如果那个URL已经存在的话,就用干这个主体替代它
- POST起初是用来向服务器输入数据的。实际上,通常会用它来支持HTML的表单。表单中填好的数据通常会被送给服务器,然后由服务器将其发送到要去的地方。
- TRACE会在目的服务器端发起一个环回诊断,最后一站的服务器会弹回一个TRACE响应并在响应主体中携带它收到的原始请求报文。TRACE方法主要用于诊断,用于验证请求是否如愿穿过了请求/响应链。
- OPTIONS方法请求web服务器告知其支持的各种功能。可以查询服务器支持哪些方法或者对某些特殊资源支持哪些方法。
- DELETE请求服务器删除请求URL指定的资源
java中,下面关于this()和super()说法正确的有?
1,this()函数主要应用于同一类中从某个构造函数调用另一个重载版的构造函数。this()只能用在构造函数中,并且也只能在第一行。所以在同一个构造函数中this()和super()不能同时出现。
2,super()函数在子类构造函数中调用父类的构造函数时使用,而且必须要在构造函数的第一行
暂无
有一条TCP连接,它的最大报文段长度为4KB,TCP拥塞窗口为24KB,这时候发生超时,那么该拥塞窗口变为了()
TCP报文中,当发生超时事件,阈值被设置成当前拥塞窗口的一半,而拥塞窗口被设为一个最大报文段,也就是4KB。
暂无
暂无
为什么在第三次挥手时需要发送ack和seq?
因为 TCP 是可靠的全双工传输,所以需要确保客户端的链接关闭正确,并且防止传送的数据包在网络中延迟出现的错误,如果后面又使用同样的端口建立了一个 TCP 链接而且现在要释放(完成了两次挥手),刚才延迟的包现在到了,这时也许服务器还有数据要发送,但是客户端收到延迟的包,就直接确认返回ACK,从而出现非正常关闭。
略。
如果希望在网络中通过某个类的对象包装数据进行传输,那么这个类需要实现下面哪个接口?()
虚拟机规范严格规定了有且只有五种情况必须立即对类进行“初始化”:
-
使用new关键字实例化对象的时候、读取或设置一个类的静态字段的时候,已经调用一个类的静态方法的时候。
-
使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有初始化,则需要先触发其初始化。
-
当初始化一个类的时候,如果发现其父类没有被初始化就会先初始化它的父类。
-
当虚拟机启动的时候,用户需要指定一个要执行的主类(就是包含main()方法的那个类),虚拟机会先初始化这个类;
-
使用Jdk1.7动态语言支持的时候的一些情况。
除了这五种之外,其他的所有引用类的方式都不会触发初始化,称为被动引用。下面是被动引用的三个例子:
-
通过子类引用父类的的静态字段,不会导致子类初始化。
-
通过数组定义来引用类,不会触发此类的初始化。
1 public class NotInitialization { 2 3 public static void main(String[] args) { 4 5 SuperClass[] sca = new SuperClass[10]; 6 7 } 8 9 }
- 常量在编译阶段会存入调用类的常量池中,本质上没有直接引用到定义常量的类,因此不会触发定义常量的类的初始化。
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/...
叶子节点个数 = 5 ,因为叶子节点个数=度为2的结点个数加1,所以
度为2的结点个数=5-1=4,
度为1的结点个数 = 3,
所以总个数 = 5 + 4 + 3 = 12
本题考查操作系统基本概念。 财务软件、汽车防盗程序、办公管理软件和气象预报软件都属于应用软件,而选项A、C和D中含有这些软件。选项B中汇编程序、编译程序和数据库管理系统软件都属于系统软件。 计算机系统由硬件和软件两部分组成。通常把未配置软件的计算机称为裸机,直接使用裸机不仅不方便,而且将严重降低工作效率和机器的利用率。操作系统(Operating System)的目的是为了填补人与机器之间的鸿沟,即建立用户与计算机之间的接口,而为裸机配置的一种系统软件。由下图可以看出,操作系统是裸机上的第一层软件,是对硬件系统功能的首次扩充。它在计算机系统中占据重要而特殊的地位,所有其他软件,如编辑程序、汇编程序、编译程序和数据库管理系统等系统软件,以及大量的应用软件都是建立在操作系统基础上的,并得到它的支持和取得它的服务。从用户角度看,当计算机配置了操作系统后,用户不再直接使用计算机系统硬件,而是利用操作系统所提供的命令和服务去操纵计算机,操作系统已成为现代计算机系统中必不可少的最重要的系统软件,因此把操作系统看作是用户与计算机之间的接口。操作系统紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境)。 ![1.png](http://s1.51cto.com/images/20181010/1539166926957548.png "1539166926957548.png")
下列说法哪个正确( )
计算机软件主要分为系统软件与应用软件两大类。系统软件主要包括操作系统、语言处理系统、数据库管理系统和系统辅助处理程序。应用软件主要包括办公软件和多媒体处理软件。Java是一门面向对象编程语言,属于计算机语言。故正确答案为D选项。
二、多选题(共3题,每题5分)
选项 C 说法错误,应该是: Double、Float的valueOf方法的实现是类似的 , 无限不可列举,不共享;