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; }