一些杂七杂八的笔试题

  1. ArrayList list = new ArrayList(30)扩容0次,注意有参构造和无参构造的区别(无参,默认初始化大小为10)

  2. 对象间存在一对多关系,当一个对象被修改时,则会自动通知它的依赖对象,采用以下哪种设计模式最好?:观察者模式。

  3. 红黑树默认插入新节点为红色,解决红红冲突。
    红黑树
    节点是红色或黑色
    根节点是黑色
    所有叶子节点是黑色
    每个红色节点的子节点是黑色
    从任意一个节点到其每个叶子节点的所以路径都包含相同数目的黑色节点

  4. 二叉树节点的度为节点所拥有的子树个数:叶子节点的度为0.叶子节点的个数等于度为2的节点数+1。二叉树的度即有多少条线:n个节点就要n-1个度。总度数K = 2 * n2 + n1// 节点数 = n0 + n1 + n2

  5. 动态规划的执行步骤:a. 分析最优解的性质,并规划其结构特征 b.递归定义最优解 c. 以自顶向下或自顶向上计算最优值 d.根据最优值的信息得到最优解。

  6. IPV6头部固定40字节,跳数限制8位,只有源端才能分段(进行分割,使其能经过某些网络(MTU, 最大传输单元)。

  7. ICMP协议(因特网控制报文协议):差错报告报文和查询报文。ICMP协议主要用来检测网络通信故障和实现链路追踪,最典型的应用就是PING和tracerooute。
    PING:

    通过发送回送请求报文和回送回答报文来检测源主机到目的主机的链路是否有问题,目的地是否可达,以及通信的延迟情况。
    traceroute:

    通过发送探测报文来获取链路地址信息。第一个探测报文TTL为1,到达第一个路由器时,TTL减1为0所以丢掉这个探测包,同时向源主机发回ICMP时间超过报文,这时源主机就获得了第一个路由器的IP地址;接着源主机发送第二个探测报文,TTL增1为2,到达第一个路由器TTL减1为1并转发探测包到第二个路由器,这时TTL减1为0,丢掉这个探测包并向源主机发回ICMP时间超过报文,源主机就获得了第二个路由器的IP地址;以此类推,直到探测报文到达traceroute的目的地,这时源主机就获得了到目的地的每一跳路由的IP地址。

  8. MVC设计模式:模型(Model)、视图(View)和控制器(Controller):模型:完成具体业务;视图:与用户打交道,接收数据;控制器:负责找到合适的模型对象来处理业务逻辑,转发到合适的视图;
    MVC框架:表现层(WEB层)(如:jsp+servlet)、业务逻辑层(Business Logic),以及数据访问层(Data Access)。

  9. 怎么看服务器是系统是linux还是windows

  • ping命令 看TTL。
    通过ping命令测试,查看返回的TTL值。TTL=128,这是WINNT/2K/XP。 TTL=32,这是WIN95/98/ME,TTL=256,这是UNIX。 TTL=64,这是LINUX。
  • Telnet
  1. 关于String的一些笔试题
        String s2 = "a"+"b"+"c";
        String s3 = "a";
        String s4 = "bc";
        String s5 = s3 + s4;
        String s6 = new String("abc");
        s6.intern();
        String s1 = "abc";
        System.out.println(s1 == s2);      					T
        System.out.println(s1.equals(s2));					T

        System.out.println("=========s1 and s5=========");	
        System.out.println(s1 == s5);						F
        System.out.println(s1.equals(s5));					T

        System.out.println("========s1 and  s6=========");
        System.out.println(s1 == s6);						F
        System.out.println(s1.equals(s6));					T
        System.out.println(s5 == s6);						F

String str2 = new String("str")+new String("01");
str2.intern();
String str1 = "str01";
System.out.println(str2==str1);			intern返回堆地址的引用		T 

String.intern()详解
String常见面试题
11. 创建对象的四种方法
- new
- 反射机制:Class.newInstance(); Constructor.newInstance();
- clone()
- 序列化

  1. Socket 的 accept()方法发生在三次握手的哪一个阶段
    我觉得时建立完成后的阶段。
  2. 覆盖的意思是重写,构造函数不能被重写。
  3. 开闭原则的意思是:对于扩展是开放的,但是对于修改是封闭的。
  4. 先渲染页面再挥手。
  5. 包装类的笔试题
package com.test;

public class IntegerDemo {
    public static void main(String[] args) {
        int n1 = 100;
        Integer in1 = new Integer(100);
        Integer in2 = new Integer(100);
        Integer in3 = Integer.valueOf(100);         //底层也是new,但是 -128 ~ 127 有缓存!!
        Integer in4 = Integer.valueOf(100);
        Integer in5 = 100;                          //底层调用了valueOf

        System.out.println(n1 == in1);              //T  有基本类型,进行拆箱比较值
        System.out.println(in1.equals(n1));         //T  equal 比较值
        System.out.println(in1.equals(in2));        //T
        System.out.println(in1.equals(in3));        //T
        System.out.println(in1 == in2);             //F,  对象地址不同  包装类之间 == 为比较地址
        System.out.println(in1 == in3);             //F

        System.out.println("cache!!");
        System.out.println(in3 == in4);             //T
        System.out.println(in3.equals(in4));        //T
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值