继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

牛客网

慕斯3809946
关注TA
已关注
手记 19
粉丝 0
获赞 5

1.说一下Java与JavaScript:

  • Java是一种真正的面向对象的语言,适用于互联网应用程序开发。JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象和事件驱动的编程语言。

  • 解释和编译:Java的源代码在执行之前,必须经过编译。JavaScript是一种解释性编程语言,其源代码不需经过编译,由浏览器解释执行。

  • Java采用强类型变量检查,即所有变量在编译之前必须作声明;JavaScript中变量是弱类型的,甚至在使用变量前可以不做声明,JavaScript的解释器在运行时检查推断其数据类型。

2.说一下&和&&的区别?

&运算符有两种用法:(1)按位与(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的。如果&&左边的表达式的值是false,右边的表达式会被直接短路掉。

3.int和Integer有什么区别?

为了编程的方便引入了人基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型。int的包装类型就是Integer,Java为每一个引入了对应的包装类型,int的包装类型就是Integer,从Java5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。

4.大O符号表示一个程序运行时所需要的渐进时间复杂度上界。

5.数组Array和列表ArrayList的区别:

  • Array和ArrayList的不同点:
    Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。
    Array大小是固定的,ArrayList的大小是动态变化的。
    ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。
    对于基本类型数据,集合使用自动装箱来减少编码工作量。但是,当处理固定大小的基本数据类型的时候,这种方式相对比较慢。

6.解释什么值传递和引用传递:

  • 值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
    引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。所以对引用对象进行操作会同时改变原对象. 一般认为,java内的传递都是值传递. 

7十进制的数在内存中是怎么存的:补码的形式

8.Java8的新特性:

  • Lambda表达式——Lambda表达式允许把函数作为一个方法的参数(函数作为参数传递进方法中)

  • 方法引用——方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与Lambda联合使用,方法引用可以使语言的构造更加紧凑简洁。

  • 默认方法:默认方法就是一个在接口里面有了一个实现的方法。

  • StreamAPI——新添加的StreamAPI(java.util.stream),把真正的函数式编程风格引入到Java中。

  • Data time API 加强对日期和时间的处理

  • Optional类—Optional类已经成为Java8类库的一部分,用来解决空指针异常。

  • Nashorn,JavaScript引擎——Java8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript

9.如果Object类不重写hashCode()的话,hashCode()如何计算出来?

Object的hashcode方法是本地方法,也就是用c语言或c++实现的,该方法直接返回对象的内存地址

10、请你解释为什么重写equals还要重写hashcode?

  • HashMap中,如果要比较key是否相等,要同时使用这两个函数!因为自定义的类的hashcode()方法继承于Object类,其hashcode码为默认的内存地址,这样即便有相同含义的两个对象,比较也是不相等的。HashMap中的比较key是这样的,先求出key的hashcode(),比较其值是否相等,若相等再比较equals(),若相等则认为他们是相等的。若equals()不相等则认为他们不相等。

11.

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP