牛客错题2020年9月30日

  1. 下面有个hibernate延迟加载,说法错误的是?

    正确答案: C 你的答案: D (错误)

    Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)
    Hibernate3 提供了属性的延迟加载功能
    get支持延迟加载,load不支持延迟加
    hibernate使用Java反射机制,而不是字节码增强程序来实现透明性
    解释:
    Hibernate 中 get()和load() 的区别:
    1.get()采用立即加载方式,而load()采用 延迟加载 ; get()方法执行的时候,会立即向数据库发出查询语句, 而load()方法返回的是一个***(此***中只有一个id属性),只有等真正使用该对象属性的时候,才会发出 sql语句 2.如果数据库中没有对应的记录,get()方法返回的是null.而load()方法出现异常ObjectNotFoundException
    
  2. typeof Date.now() 的值是:

    正确答案: C 你的答案: B (错误)

    "date"
    "object"
    "number"
    "error"
    解释:
    Date.now() 方法返回自1970年1月1日 00:00:00 UTC到当前时间的毫秒数。
    
  3. 以下哪项可能包含菜单条( )

    正确答案: B 你的答案: C (错误)

    Panel
    Frame
    Applet
    Dialog
    解释:
    Frame是Window的直接子类,一个Frame对象就是一个有标题有边界的顶层窗口;
    Panel是Container的直接子类,一个Panel对象用来添加组件和其他Panel对象的容器。
    
  4. URL u =new URL("http://www.123.com");。如果www.123.com不存在,则返回______。

    正确答案: A 你的答案: D (错误)

    http://www.123.com
    ””
    null
    抛出异常
    解释:
    我们在执行URL u =new URL("http://www.123.com");这句话的时候确实要抛出异常,但是这个异常属于IOException,不管网址是否存在,最后都会返回该网址的一个连接,打印出来就是该网址。
    
  5. 以下哪种JAVA的变量表达式使得变量a和变量b具有相同的内存引用地址( )

    正确答案: A B 你的答案: B D (错误)

    String a = "hello"; String b = "hello";
    Integer a; Integer b = a;
    int a = 1; Integer b = new Integer(1);
    int a = 1; Integer b = 1;
    解释:
    首先结论:
    (1)int与Integer、new Integer()进行==比较时,结果永远为true
    (2)Integer与new Integer()进行==比较时,结果永远为false
    (3)Integer与Integer进行==比较时,看范围;在大于等于-128小于等于127的范围内为true,在此范围外为false。
    下面是解析过程:
    1.Integer与int比较时,Integer会有拆箱的过程,我们可以看看拆箱的代码:
    直接返回的就是value,因此int与Integer以及new Integer()进行  ==比较时结果都是true。
    2.Integer a=n时,如果n大于等于-128小于等于127时,会直接从IntegerCache中取,不在这个范围内,会new一个对象,所以Integer与new Integer进行 ==比较时,结果都是false。
    3.Integer与Integer比较,需要看范围,如果在-128~127(包含-128,不包含127)范围内,因为都是从IntegerCache中取值,所以相等;若不在这个范围内,则都要去new一个对象,所以结果为false。
    关于D选项,我想单独回答一下:
    D选项我认为是错误的,a==b结果虽然结果是true,但是要注意的是,这是一个int与Integer的比较,Integer会进行拆箱,拆箱的结果是int型的,这就相当于两个int型之间的比较,而基本数据类型之间的比较,比较的是数值,所以结果是true,但并不表示两者的内存地址相等。个人看法,如有错误,欢迎指出。
    
  6. 在大数据量场景下,以下哪种js中字符串连接方式较为高效( )

    正确答案: C 你的答案: B C D (错误)

    a+=b
    a = a+b
    Array.join()
    Array.push()
    解释:
    +的处理机制是:新建一个临时字符串,将新字符串赋值为a+b,然后返回这个临新字符串并同时销毁原始字符串,所以字符串连接效率较低。所以用Array.join()不会新建临时字符串效率更高。
    (当然以上效率问题仅存在于低版本浏览器ie7-及以下,现在的新浏览器基本上都解决了这个问题,效率差不多)
    所以在面试时遇到这种题时告诉面试官分两种情况:
    旧浏览器(ie7-)下用join()会高效,而新版本浏览器下除了做变量缓存外不需要做别的优化。这样可以侧面表达对刘拉你兼容有所了解。
    
 posted on 2020-09-30 09:19  ben跑的换行符  阅读(243)  评论(0编辑  收藏  举报