基础语法_1

※String是最基本的数据类型么?
  不是。

※float f=3.4;是否正确?翻译能否通过?
  不正确;精度不准确,不能,应该用强制类型转换,如下所示:float f=(float)3.4。

※short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
  short s1 = 1; s1 = s1 + 1; s1 + 1运算结果是int类型,需要强制类型转换; short s1 = 1; s1 += 1;可以正确翻译,自动类型提升。

※&和&&的区别?
  &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。

解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
  栈是一种线性集合,其添加和删除元素的操作应在同一段完成,栈按照后进先出的方式进行处理;堆是栈的一个组成元素。

※Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
  Math.round(11.5)==12 ;Math.round(-11.5)==11; round方法返回与参数最接近的长整数,参数加1/2后求其floor。

简述逻辑操作和条件操作的区别?
  区别主要有两点:条件操作只能操作布尔型,而逻辑操作不仅能操作布尔型,还可以操作数值型;逻辑操作不会产生短路。

※Java有没有goto?
  goto是java中的保留字,现在没有在java中使用。

※switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
  switch(test1)中,test1是一个整数表达式。因此传递给switch和case语句的参数应该是int、short、char或者byte;long、String都不能作用于switch。

用最有效率的方法计算2乘以8?
  2<<3。

数组有没有length()方法?String有没有length()方法?
  数组没有length()方法,由length属性;String有length()这个方法。

Java中,如何跳出当前的多重嵌套循环?
  在最外层循环前加label标识,然后用break:label方法即可跳出多重循环。

构造器(constructor)是否可被重写(override)?
  构造器constructor)不能被继承,因此不能重写Overriding,但可以被重载Overloading。

两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
  不对,有相同的hash code。

是否可以继承String类?
  String类是final类,故不可以继承。

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
  是值传递。Java编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数值就是该对象的引用。对象的内容可以在被调的方法中改变,但对象的引用是永远不会改变的。

※String和StringBuilder、StringBuffer的区别?
  Java平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer提供的字符串可以进行修改。当你知道字符串数据要改变的时候你就可以使用StringBuffer。典型的已可以使用StringBuffer类动态构造字符数据。

重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
  方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽” 了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则成为方法的重载(Overloading)。Overloading的方法是可以改变返回值的类型。

猜你喜欢

转载自www.cnblogs.com/DebugTheWorld/p/9769830.html