Which three are valid declarations of a float? (Choose Three) A. float foo = -1; B. float foo = 1.0; C. float foo = 42e1; D. float foo = 2.02f; E. float foo = 3.03d; F. float foo = 0x0123; Answer: A, D, F
每个答案都不清楚,晕死,麻烦讲解下
public class Test {
public static void main(String[] args) {
StringBuffer a = new StringBuffer ("a");
StringBuffer b = new StringBuffer ("b");
operater(a,b);
System.out.println("~~"+a);// ab
System.out.println("~~"+b);//b 。不是ab吗
}
[code=Java]
public static void operater(StringBuffer x,StringBuffer y)
{
x.append(y);
System.out.println(x);//ab
y=x;
System.out.println(y);//ab
}
}
[/code]
Java判断一个正整数是不是2的乘方。后来在网上看见二个算法
if( n&(n-1)==0 ){
return true;
}else{
return false;
}
int number = 1;
String string = Integer.toBinaryString(number);
if (string.matches("10*")) {
System.out.println("true");
} else {
System.out.println("false");
} 这二个算法看不懂,麻烦讲下,还有这个是怎么想起的?
public static void main(String args[]){
Scanner read=new Scanner(System.in);
int x=read.nextInt();
int n=2,c=1;
while(n<x){
n=n*2;
c++;
}
if(x==n)
System.out.println(x+"是2的"+c+"次方"); 第二题我也不太懂,String和StringBuffer的区别,哪个是传值,哪个是传地址,求高手解答
int number = 1;
String string = Integer.toBinaryString(number);
if (string.matches("10*")) {
System.out.println("true");
} else {
System.out.println("false");
} // String string = Integer.toBinaryString(number); 返回一个二进制整数
// string.matches("10*") 上面所得与正则表达式匹配 判断是否为2的零次或多次方
所以只要匹配10成功就是(或者字符串中只有一个1就行)
A. float foo = -1;//int 强制转换成float
0x0123也是int
小数默认是double
public static void operater(StringBuffer x,StringBuffer y) {
x.append(y);
System.out.println(x);//ab
y=x;
System.out.println(y);//ab
} append方法改变里引用所指向的值,但y=x紧紧是把y指向了x相同的地址(也就是a后来ab那块),但b指向的仍然是b,方法传的地址
A会将整形自动提升到float是可以的
B. float foo = 1.0;表示一个double类型,类型向下要经过强制转换
C. float foo = 42e1; //这个好像是科学计数法
D. float foo = 2.02f; //后缀f标识float,这是可以的
E. float foo = 3.03d; //后缀D标识double,类型向下要经过强制转换
F. float foo = 0x0123; //前缀0x表示16进制,会将转换后的10进制自动提升到float
2的乘方转化成二进制是10...的形式,因此匹配这个模式的都是2的乘方。
2的乘方-1转化成二进制是1...的形式,它与2的乘方进行与运算(&)的结果是0。
第二题:
指针引用的问题,方法中的参数是传递进来对象的引用。
a 是 ab 原因:stringBuffer在方法中做了append 修改操作;
b 是 b 原因:在方法中做了引用赋值操作;