1、JBS1Java 是从( )语言改进重新设计。AAda BC+ CPasacal DBASIC答案:B2下列哪种说法是正确的( )A 实例方法可直接调用超类的实例方法B 实例方法可直接调用超类的类方法C 实例方法可直接调用其他类的实例方法D 实例方法可直接调用本类的类方法答案:D3下列说法正确的有( )A 环境变量可在编译 source code时指定B 在编译程序时,所能指定的环境变量不包括 class pathC javac 一次可同时编译数个 Java源文件D javac.exe 能指定编译结果要置于哪个目录(directory)答案:BCD4下列标识符不合法的有( )Anew B$Us
2、dollars C1234 Dcar.taxi答案:ACD5下列说法错误的有( )A 数组是一种对象B 数组属于一种原生类C int number=31,23,33,43,35,63D 数组的大小可以任意改变答案:BCD6不能用来修饰 interface的有( )Aprivate Bpublic Cprotected Dstatic 答案:ACD7下列说法错误的有( )A 在类方法中可用 this来调用本类的类方法B 在类方法中调用本类的类方法时可直接调用C 在类方法中只能调用本类中的类方法D 在类方法中绝对不能调用实例方法答案:ACD8下列说法错误的有( )A Java 面向对象语言容许单独
3、的过程与函数存在B Java 面向对象语言容许单独的方法存在C Java 语言中的方法属于类中的成员(member)D Java语言中的方法必定隶属于某一类(对象) ,调用方法与过程或函数相同答案:ABC9Unicode 是用 32位来表示一个字的。 ( )答案:错误 10队列是先进后出。 答案:错误1:下面不属于面向对象特征的是A:封装B:继承C:多态D:过程2:下列属于合法的 Java标示A:h$uB:matsC:8UD:-3.345678答案3: 在下面情况下,程序能不能通过编译,能不能运行,若能运行其结果是什么:public class J_test public static voi
4、d main() System.out.println(“hello,world“);答案:不能通过编译11、String 是最基本的数据类型吗?基本数据类型包括 byte、int、char、long、float、double、boolean 和short。java.lang.String类是 final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用 StringBuffer类12、int 和 Integer 有什么区别Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int 是 java的原始数据类型,Integer 是 java为 int提供的
5、封装类。Java 为每个原始类型提供了封装类。原始类型封装类13 java常用的简单类型与封装类及其区别。boolean Booleanchar Characterbyte Byteshort Shortint Integerlong Longfloat Floatdouble Double引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。14、St
6、ring 和 StringBuffer的区别JAVA平台提供了两个类:String 和 StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个 String类提供了数值不可改变的字符串。而这个 StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用 StringBuffer。典型地,你可以使用 StringBuffers来动态构造字符数据。15、HashMap 和 Hashtable的区别。 HashMap是 Hashtable的轻量级实现(非线程安全的实现),他们都完成了 Map接口,主要区别在于 HashMap允许空(null)
7、键值(key),由于非线程安全,效率上可能高于 Hashtable。HashMap允许将 null作为一个 entry的 key或者 value,而 Hashtable不允许。HashMap把 Hashtable的 contains方法去掉了,改成 containsvalue和containsKey。因为 contains方法容易让人引起误解。 Hashtable继承自 Dictionary类,而 HashMap是 Java1.2引进的 Map interface的一个实现。最大的不同是,Hashtable 的方法是 Synchronize的,而 HashMap不是,在多个线程访问 Hasht
8、able时,不需要自己为它的方法实现同步,而 HashMap 就必须为之提供外同步。 Hashtable和 HashMap采用的 hash/rehash算法都大概一样,所以性能不会有很大的差异。16、final, finally, finalize 的区别。 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是 Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。17、heap 和 stack有什么区别。栈是一
9、种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素18、abstract class 和 interface有什么区别?声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建 abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为
10、的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义 static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。19
11、、GC 是什么? 为什么要有 GC? GC 是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的 GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java 语言没有提供释放已分配内存的显示操作方法。 20 Math.round(11.5)=12Math.round(-11.5)=-11round方法返回与参数最接近的长整数,参数加 1/2后求其 floor.21、Overload 和 Override的区别。Overloaded 的方法是否可以改变返回值的类型?方法
12、的重写 Overriding和重载 Overloading是 Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载 Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽“了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded 的方法是可以改变返回值的类型。22、error 和 exception有
13、什么区别?error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。23、简述逻辑操作(import java.text.NumberFormat;import java.util.HashMap;public class SimpleMoneyFormat public static final String EMPTY = “;public static final String ZERO = “零“;public static final S
14、tring ONE = “壹“;public static final String TWO = “贰“;public static final String THREE = “叁“;public static final String FOUR = “肆“;public static final String FIVE = “伍“;public static final String SIX = “陆“;public static final String SEVEN = “柒“;public static final String EIGHT = “捌“;public static fin
15、al String NINE = “玖“;public static final String TEN = “拾“;public static final String HUNDRED = “佰“;public static final String THOUSAND = “仟“;public static final String TEN_THOUSAND = “万“;public static final String HUNDRED_MILLION = “亿“;public static final String YUAN = “元“;public static final String
16、 JIAO = “角“;public static final String FEN = “分“;public static final String DOT = “.“;private static SimpleMoneyFormat formatter = null;private HashMap chineseNumberMap = new HashMap();private HashMap chineseMoneyPattern = new HashMap();private NumberFormat numberFormat = NumberFormat.getInstance();
17、private SimpleMoneyFormat() numberFormat.setMaximumFractionDigits(4);numberFormat.setMinimumFractionDigits(2);numberFormat.setGroupingUsed(false);chineseNumberMap.put(“0“, ZERO);chineseNumberMap.put(“1“, ONE);chineseNumberMap.put(“2“, TWO);chineseNumberMap.put(“3“, THREE);chineseNumberMap.put(“4“, F
18、OUR);chineseNumberMap.put(“5“, FIVE);chineseNumberMap.put(“6“, SIX);chineseNumberMap.put(“7“, SEVEN);chineseNumberMap.put(“8“, EIGHT);chineseNumberMap.put(“9“, NINE);chineseNumberMap.put(DOT, DOT);chineseMoneyPattern.put(“1“, TEN);chineseMoneyPattern.put(“2“, HUNDRED);chineseMoneyPattern.put(“3“, TH
19、OUSAND);chineseMoneyPattern.put(“4“, TEN_THOUSAND);chineseMoneyPattern.put(“5“, TEN);chineseMoneyPattern.put(“6“, HUNDRED);chineseMoneyPattern.put(“7“, THOUSAND);chineseMoneyPattern.put(“8“, HUNDRED_MILLION);public static SimpleMoneyFormat getInstance() if (formatter = null)formatter = new SimpleMon
20、eyFormat();return formatter;public String format(String moneyStr) checkPrecision(moneyStr);String result;result = convertToChineseNumber(moneyStr);result = addUnitsToChineseMoneyString(result);return result;public String format(double moneyDouble) return format(numberFormat.format(moneyDouble);publi
21、c String format(int moneyInt) return format(numberFormat.format(moneyInt);public String format(long moneyLong) return format(numberFormat.format(moneyLong);public String format(Number moneyNum) return format(numberFormat.format(moneyNum);private String convertToChineseNumber(String moneyStr) String
22、result;StringBuffer cMoneyStringBuffer = new StringBuffer();for (int i = 0; i 0; i-) cMoneyStringBuffer.insert(i, chineseMoneyPattern.get(EMPTY + moneyPatternCursor);moneyPatternCursor = moneyPatternCursor = 8 ? 1 : moneyPatternCursor + 1;String fractionPart = cMoneyStringBuffer.substring(cMoneyStri
23、ngBuffer.indexOf(“.“);cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf(“.“), cMoneyStringBuffer.length();while (cMoneyStringBuffer.indexOf(“零拾“) != -1) cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零拾“), cMoneyStringBuffer.indexOf(“零拾“) + 2, ZERO);while (cMoneyStringBuffer.indexOf(“零佰“)
24、 != -1) cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零佰“), cMoneyStringBuffer.indexOf(“零佰“) + 2, ZERO);while (cMoneyStringBuffer.indexOf(“零仟“) != -1) cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零仟“), cMoneyStringBuffer.indexOf(“零仟“) + 2, ZERO);while (cMoneyStringBuffer.indexOf(“
25、零万“) != -1) cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零万“), cMoneyStringBuffer.indexOf(“零万“) + 2, TEN_THOUSAND);while (cMoneyStringBuffer.indexOf(“零亿“) != -1) cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零亿“), cMoneyStringBuffer.indexOf(“零亿“) + 2, HUNDRED_MILLION);while (cMone
26、yStringBuffer.indexOf(“零零“) != -1) cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零零“), cMoneyStringBuffer.indexOf(“零零“) + 2, ZERO);if (cMoneyStringBuffer.lastIndexOf(ZERO) = cMoneyStringBuffer.length() - 1)cMoneyStringBuffer.delete(cMoneyStringBuffer.length() - 1, cMoneyStringBuffer.length(
27、);cMoneyStringBuffer.append(fractionPart);result = cMoneyStringBuffer.toString();return result;private String addUnitsToChineseMoneyString(String moneyStr) String result;StringBuffer cMoneyStringBuffer = new StringBuffer(moneyStr);int indexOfDot = cMoneyStringBuffer.indexOf(DOT);cMoneyStringBuffer.r
28、eplace(indexOfDot, indexOfDot + 1, YUAN);30现在输入 n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供 resetimport java.util.*;public class bycommapublic static String splitStringByComma(String source)if(source=null|source.trim().equals(“)return null;StringTokenizer commaToker = new StringTokenizer(sourc
29、e,“,“);String result = new StringcommaToker.countTokens();int i=0;while(commaToker.hasMoreTokens()resulti = commaToker.nextToken();i+;return result;public static void main(String args)String s = splitStringByComma(“5,8,7,4,3,9,1“);int ii = new ints.length;for(int i = 0;i=0;i-)System.out.println(iii);31 、给出大整数加减法的实现思路,例如,199999999999999998+333333333333333333333,或者 123444444444447654-999999999999988877。代码实现如下:import java.math.*; public class BigIntegerTest public static void main(String args) BigInteger result;