基础语法_1
Posted debugtheworld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础语法_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的方法是可以改变返回值的类型。
以上是关于基础语法_1的主要内容,如果未能解决你的问题,请参考以下文章