java笔试涉及编程题
1、如何实现字符串的反转及替换?当我们要将一个字符串翻转或者替换时,方法很多,可以自己写实现也可以使用String或StringBuffer/StringBuilder中的方法。有一道很常见的面试题是用递归实现字符串反转,代码如下所示:public static String reverse(String originStr) {if(originStr == null || originStr.
1、如何实现字符串的反转及替换?
当我们要将一个字符串翻转或者替换时,方法很多,可以自己写实现也可以使用String或StringBuffer/StringBuilder中的方法。有一道很常见的面试题是用递归实现字符串反转,代码如下所示:
public static String reverse(String originStr) {
if(originStr == null || originStr.length() <= 1)
return originStr;
System.out.println(originStr);
return reverse(originStr.substring(1)) + originStr.charAt(0));
}
2、指出下面程序的运行结果
class A {
static
{
System.out.print( "1" );
}
public
A() {
System.out.print("2");
}}
class B extends A{
static
{
System.out.print( "a" );
}
public B() {
System.out.print("b");
} }
public class Hello {
public static void main(String[] args) {
A ab = new B();
ab = new B();
}
}
答:执行结果:1a2b2b。创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。
3、怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?
答案:
String s1 = "你好" ;
String s2 = new String(s1.getBytes("GB2312"), "ISO-8859-1");
4、利用java.text.DataFormat 的子类(如SimpleDateFormat类)中的format(Date)方法可将日期格式化
答案:
class DateFormatTest {
public static void main(String[] args) {
SimpleDateFormat oldFormatter = new SimpleDateFormat("yyyy/MM/dd" );
Date date1 = new Date();
System.out.println(oldFormatter.format(date1));
}
}
5、类ExampleA继承Exception,类ExampleB继承ExampleA。
有如下代码片断:
try {
throw new ExampleB( "b" )
}
catch(ExampleA e){
System.out.println( "ExampleA");
}
catch(Exception e){
System.out.println( "Exception" );
}
请问执行此段代码的输出是什么?
答:输出:ExampleA。(根据里氏代换原则[能使用父类型的地方一定能使用子类型],抓取ExampleA类型异常的catch块能够抓住try块中抛出的ExampleB类型的异常)
6、用Java写一个冒泡排序。
for(int i=0;i<arr.length-1;i++){//外层循环控制排序趟数
for(int j=0;j<arr.length-1-i;j++){//内层循环控制每一趟排序多少次
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
7、用Java写一个二分查找。
非递归实现:
public static int biSearch(int []array,int a){
int lo=0;
int hi=array.length-1;
int mid;
while(lo<=hi){
mid=(lo+hi)/2;
if(array[mid]==a){
return mid+1;
}else if(array[mid]<a){
lo=mid+1;
}else{
hi=mid-1;
}
}
return -1;
}
递归实现:
public static int sort(int []array,int a,int lo,int hi){
if(lo<=hi){
int mid=(lo+hi)/2;
if(a==array[mid]){
return mid+1;
}
else if(a>array[mid]){
return sort(array,a,mid+1,hi);
}else{
return sort(array,a,lo,mid-1);
}
}
return -1;
}
更多推荐
所有评论(0)