- 相关推荐
黑马程序员Java培训和Android培训-就业面试题学习
经典问题:
(1)在JAVA中如何跳出当前的多重嵌套循环
法一:在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如,
ok:
for(int i=0;i<10;i++)< p="">
{
for(int j=0;j<10;j++)< p="">
{
System.out.println(“i=” + i + “,j=” + j);
if(j == 5) break ok;
}
}
法二:让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二维数组中查找到某个数字。
int arr[][] = {{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i<arr.length p="" !found;i++)<="">
{
for(int j=0;j
{
System.out.println(“i=” + i + “,j=” + j);
if(arr[i][j] == 5)
{
found = true;
break;
}
}
}
(2)在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型(JDK1.5新特性,拆包),由于,byte,short,char都可以隐含转换为int,所以些类型以及这些类型的包装类型也是可以的作为expr1的类型
(3)使用final关键字修饰一个变量时,是指引用变量(存储对象地址的变量)不能变,即其中存储的对象地址值不能变,也就是说引用变量不能指向另外一个对象,存储另外一个对象的地址,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:个
finalStringBuffera=newStringBuffer("immutable");
执行如下语句将报告编译期错误:
a=newStringBuffer("");
但是,执行如下语句则可以通过编译:
a.append("broken!");
有人在定义方法的参数时,可能想采用如下形式来阻止方法内部修改传进来的参数对象:
public void method(final StringBuffer param)
{
}
实际上,这是办不到的,在该方法内部仍然可以增加如下代码来修改参数对象:
param.append("a");
(4)字符串的比较基本上都是使用equals方法
(5)27、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?
两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。
关于字符串的研究:
清晰的学习String需具备的知识:
1.内存栈与堆
详细知识请看我回答的内容:http://bbs.itheima.com/thread-360-1-1.html
2.String的关键知识点
String是常量,其对象一旦创建完毕就无法改变。当使用+拼接字符串时,会生成新的String对象,而不是向原有的String对象追加内容。
String pool(字符串池)内存栈即你上面说的缓冲池
String s = “aaa”;(采用字面值方式赋值)
1) 查找String pool中是否存在“aaa”这个对象,如果不存在,则在String pool中创建一个“aaa”对象,然后将String pool中的这个“aaa”对象的地址返回来,赋给引用变量s,这样s会指向String pool中的这个“aaa”字符串对象
2) 如果存在,则不创建任何对象,直接将String pool中的这个“aaa”对象地址返回来,赋给s引用。
String s = new String(“aaa”); 堆内存
1) 首先在String pool中查找有没有“aaa”这个字符串对象,如果有,则不在String pool中再去创建“aaa”这个对象了,直接在堆中(heap)中创建一个“aaa”字符串对象,然后将堆中的这个“aaa”对象的地址返回来,赋给s引用,导致s指向了堆中创建的这个“aaa”字符串对象。
2) 如果没有,则首先在String pool中创建一个“aaa“对象,然后再在堆中(heap)创建一个”aaa“对象,然后将堆中的这个”aaa“对象的地址返回来,赋给s引用,导致s指向了堆中所创建的这个”aaa“对象。
【黑马程序员Java培训和Android培训-就业面试题学习】相关文章:
java培训就业前景分析07-14
黑马程序员-7K面试题07-13
求java,PHP,android,iOS,linux面试题07-13
关于java的学习和就业前景等相关问题07-14
Java程序员就业前景分析07-14
32道java程序员面试题及答案07-13
就业培训的学习心得07-03
求最全的java面试题和经验07-13