华为JAVA编程规范试题
华为的Java笔试题目

华为的Java笔试题目1.ip地址的编码分为哪俩部分?ip地址由两部分组成,网络号和主机号。
不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
2.用户输入m,n值,从1至n开始顺序循环数数,每数到m输出该数值,直至全部输出。
写出c程序。
循环链表,用取余*作做3.不能做switch()的参数类型是:switch的参数不能为实型。
4.static有什么用途?(请至少说明两种)a.限制变量的作用域b.设置变量的存储域7.引用与指针有什么区别?a引用必须被初始化,指针不必。
b引用初始化以后不能被改变,指针可以改变所指的对象。
c不存在指向空值的引用,但是存在指向空值的指针。
8.描述实时系统的基本特*在特定时间内完成特定的任务,实时*与可靠*9.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈10.什么是平衡二叉树?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于111.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源12.什么函数不能声明为虚函数?constructor13.冒泡排序算法的时间复杂度是什么?o(n^2)14.写出floatx与“零值”比较的if语句。
if(x>0.000001&&x<-0.000001)16.inter采用哪种网络协议?该协议的主要层次结构? tcp/ip应用层/传输层/网络层/数据链路层/物理层17.inter物理地址和ip地址转换采用什么协议? arp(addressresolutionprotocol)(地址解析?f?)。
java华为面试题

JA V A方面1 面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2 String是最基本的数据类型吗?不是,是对象3 int 和Integer 有什么区别int是基本数据类型,intereg是基础数据类型包装类。
4 String 和StringBuffer的区别前者是对一串字符进行操作,不可变类,后者三可变类。
5运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
6 说出一些常用的类,包,接口,请各举5个类:ArrayList PreparedStatement Connection String HttpServlet………包:java,sql java.util, ng, java.io, javax.httpServlet,java.math,java.text,java.awt 接口:HttpSessionAttributeListener, ActionListener InputStream Collection7 说出ArrayList,Vector, LinkedList的存储性能和特性ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
华为java笔试题v2.0

二月份049
三月份038
1)选择(部门为“02的所有记录”):
2)插入(mon为“四月份”,dep为“04”,yj为7):
3)删除(mon为“四月份”,dep为“04”的所有记录):
4)更新(dep为“04”的记录,yj更新为8):
5)模糊查询(所有mon里包含“二月”两个字的所有记录):
如下图所示:
请用javascript实现此功能。(提示:可以根据单击事件(event)拿到事件源对象即被单击的复选框)(5分)
<script language="javascript">
//全选操作
function checkAll(){
}
//子条目选中操作(需要完成功能:只要有一个以上的子条目未被选中,“全选\全不选”复//选框就未选中,如果所有子条目均被选中,“全选\全不选”就为选中状态)
insert into T select * from T1;
--(Assume T1 exists)
B.insert into T select distinct from T
C. insert into T1 select distinct * from T;
delete from T;
insert into T select * from T1;
--(Assume T1 exists)
D.delete from T having count(id) > 1
二、编程题:
1、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
请补充完整test方法体。n为输入的参数,结果返回类似“90=2*3*3*5”的字符串。(5分)
华为JAVA的考试题

题目内容:生产者从输入文件(文件名通过命令行给定,参见下述的“命令行使用接口”的“文件名”参数)中读取字符串结点信息并放入缓冲区,消费者从缓冲区中获取结点信息、创建二叉树、中序遍历生成的二叉树并在控制台打印出遍历的结点字符串(以逗号分隔)。
命令行使用接口:
Java BinaryTreeSort 文件名
“BinaryTreeSort”参数是你将要实现的主程序类名,该类有main方法public static void main(String[] args),是程序的入口;
“文件名”参数就是包含结点字符串的文件,例如source.txt,文件位于与运行程序相同目录下,无需考虑文件路径的问题。
详细说明:
(1) 要读入的文件格式参见以下例子(参见随试题一起提供的附件文件source.txt):
12a,445,dd4,ddf,ddfg,33
以英文逗号“,”作为结点间分隔符,文件以回车换行符结束,中间无回车换行符,结点数目不定。注意所有字符仅包含字母和数字,不含中文字符、不含全角字符。
(2) 生产者线程从文件中读取字符串结点并存入缓冲区,缓冲区(Buffer)中允许的最大结点数为5。
(3) 消费者线程从缓冲区中读取结点信息,并创建二叉树。生成的二叉树应符合以下要求:中序遍历的结果与各结点字符串按ASCII字典顺序排序的结果一致。最后请在控制台打印出中序遍历的结果并结束线程。例如以上例子的中序遍历结果为:12a,33,445,dd4,ddf,ddfg
华为JAVA笔试题

华为公司 java 笔试题第一部分:选择题QUESTION NO: 11、public class Test {public static void changeStr(String str){str="welcome";}public static void main(String[] args) {String str="1234";changeStr(str);System.out.println(str);}}Please write the output result :QUESTION NO:21. public class Test {2. static boolean foo(char c) {3. System.out.print(c);4. return true;5. }6. public static void main( String[] argv ) {7. int i =0;8. for ( foo('A'); foo('B')&&(i<2); foo('C')){9. i++ ;10. foo('D');12. }13. }14. }What is the result?A. ABDCBDCBB. ABCDABCDC. Compilation fails.D. An exception is thrown at runtime.1. class A {2. protected int method1(int a, int b) { return 0; }3. }Which two are valid in a class that extends class A? (Choose two)A. public int method1(int a, int b) { return 0; }B. private int method1(int a, int b) { return 0; }C. private int method1(int a, long b) { return 0; }D. public short method1(int a, int b) { return 0; }E. static protected int method1(int a, int b) { return 0; }QUESTION NO: 41. public class Outer{2. public void someOuterMethod() {3. // Line 34. }5. public class Inner{}6. public static void main( String[]argv ) {7. Outer o = new Outer();8. // Line 89. }10. }Which instantiates an instance of Inner?A. new Inner(); // At line 3B. new Inner(); // At line 8C. new o.Inner(); // At line 8D. new Outer.Inner(); // At line 8//new Outer().new Inner()QUESTION NO: 5Which method is used by a servlet to place its session ID in a URL that is wri tten to the servlet’s response output stream?A. The encodeURL method of the HttpServletRequest interface.B. The encodeURL method of the HttpServletResponse interface.C. The rewriteURL method of the HttpServletRequest interface.D. The rewriteURL method of the HttpServletResponse interface.Which two are equivalent? (Choose two)A. <%= YoshiBean.size%>B. <%= YoshiBean.getSize()%>C. <%= YoshiBean.getProperty("size")%>D. <jsp:getProperty id="YoshiBean" param="size"/>E. <jsp:getProperty name="YoshiBean" param="size"/>F. <jsp:getProperty id="YoshiBean" property="size"/>G. <jsp:getProperty name="YoshiBean" property="size"/>QUESTION NO: 7Which of the following statements regarding the lifecycle of a session bean are correct?1. ng.IllegalStateException is thrown if SessionContext.getEJBObject() is invoked when a stateful session bean instance is passivated.2. SessionContext.getRollbackOnly() does not throw an exception when a session bean with bean-managed transaction demarcation is activated.3. An exception is not thrown when SessionContext.getUserTransaction() is called in the afterBegin method of a bean with container-managed transactions.4. JNDI access to java:comp/env is permitted in all the SessionSynchronization methods of a stateful session bean with container-managed transaction demarcation.5. Accessing resource managers in the SessionSynchronization.afterBegin method of a stateful session bean with bean-managed transaction does not throw an exception.第二部分:概念题1.描述Struts体系结构?对应各个部分的开发工作主要包括哪些?2. XML包括哪些解释技术,区别是什么?3. JSP有哪些内置对象和动作?它们的作用分别是什么?4、SQL问答题SELECT * FROM TABLE和SELECT * FROM TABLEWHERE NAME LIKE '%%' AND ADDR LIKE '%%'AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%'OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' )的检索结果为何不同?5、SQL问答题表结构:1、表名:g_cardapply字段(字段名/类型/长度):g_applyno varchar 8;//申请单号(关键字)g_applydate bigint 8;//申请日期g_state varchar 2;//申请状态2、表名:g_cardapplydetail字段(字段名/类型/长度):g_applyno varchar 8;//申请单号(关键字)g_name varchar 30;//申请人姓名g_idcard varchar 18;//申请人身份证号g_state varchar 2;//申请状态其中,两个表的关联字段为申请单号。
华为java笔试题目一

华为java笔试题目一华为java题一单项选择题 1.java是从()语言改进重新设计。
a.ada b.c++ c.pasacal d.basic 答案:b2.下列语句哪一个正确() a. java程序经编译后会产生machine codeb. java程序经编译后会产生byte code c. java程序经编译后会产生dll d.以上都不正确答案:b3.下列说法正确的有() a. class中的constructor不可省略 b. constructor必须与class同名,但方法不能与class同名 c. constructor在一个对象被new时执行 d.一个class只能定义一个constructor 答案:c4.提供java存取数据库能力的包是() a.java.sql b.java.awt c.ng d.java.swing 答案:a5.下列运算符合法的是() a.& b.<> c.if d.:= 答案:a6.执行如下程序代码a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,c的值是() a.0 b.1 c.-1 d.死循环答案:c7.下列哪一种叙述是正确的() a. abstract修饰符可修饰字段、方法和类b.抽象方法的body部分必须用一对大括号{ }包住 c.声明抽象方法,大括号可有可无 d.声明抽象方法不可写出大括号答案:d8.下列语句正确的是() a.形式参数可被视为local variable b.形式参数可被字段修饰符修饰 c.形式参数为方法被调用时,真正被传递的参数 d.形式参数不可以是对象答案:a9.下列哪种说法是正确的() a.实例方法可直接调用超类的实例方法 b.实例方法可直接调用超类的类方法 c.实例方法可直接调用其他类的实例方法d.实例方法可直接调用本类的类方法答案:d二、多项选择题1.java程序的种类有() a.类(class) b.applet c.application。
华为java面试题集第3部分编程题

1.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,,提供reset答案(1) public static String[] splitStringByComma(String source){ if(source==null||source.trim().equals(""))return null;StringTokenizer commaToker = new StringTokenizer(source,",");String[] result = new String[commaToker.countTokens()];int i=0;while(commaToker.hasMoreTokens()){result[i] = commaToker.nextToken();i++;}return result;}循环遍历String数组Integer.parseInt(String s)变成int类型组成int数组Arrays.sort(int[] a),a数组升序降序可以从尾部开始输出2.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
3、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? 答:父类:package test;public class FatherClass{public FatherClass(){System.out.println("FatherClass Create");}}子类:package test;import test.FatherClass;public class ChildClass extends FatherClass{public ChildClass()System.out.println("ChildClass Create"); }public static void main(String[] args) {FatherClass fc = new FatherClass(); ChildClass cc = new ChildClass();}}输出结果:C:>java test.ChildClassFatherClass CreateFatherClass CreateChildClass Create4、内部类的实现方式?答:示例代码如下:package test;public class OuterClass{** class InterClass{public InterClass(){System.out.println("InterClass Create"); }}public OuterClass(){InterClass ic = new InterClass(); System.out.println("OuterClass Create"); }public static void main(String[] args) {OuterClass oc = new OuterClass();}}输出结果:C:>java test/OuterClassInterClass CreateOuterClass Create再一个例题:public class OuterClass {** double d1 = 1.0;//insert code here}You need to insert an inner class declaration at line 3. Which two inner class declarations arevalid?(Choose two.)A. class InnerOne{public static double methoda() {return d1;}}B. public class InnerOne{static double methoda() {return d1;}}C. ** class InnerOne{double methoda() {return d1;}}D. static class InnerOne{protected double methoda() {return d1;}}E. abstract class InnerOne{public abstract double methoda();}说明如下:一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。
华为JAVA编程规范试题-推荐下载

第 2 页, 共 16 页
2、下面说法或者语句不符合公司编程规范的排版要求的是:
A.逗号、分号只在后面加空格; 比较操作符, 赋值操作符"="、 "+=",算术操
作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符
的前后加空格; "!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符
C. if ( writeToFile ) { writeFileThread.interrupt(); }
D. if (a >= b && c > d) { //program code }
E. 在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局 部不加空格。给操作符留空格时不要连续留两个以上空格
文档密级:
JAVA 编程规范试题
一、判断题(每题 2 分,共 28 分)
1、if, for, do, while, case, switch, default 等语句自占一行,且 if, for, do, while, switch, case 等语句的执行语句无论多少都要加括号{}。
2、包的注释内容要求包括:简述本包的作用、详细描述本包的内容、产品模块
性。不再有用的注释不要删除,使用@deprecated 表示此注释无效。
B.避免在注释中使用缩写,特别是不常用缩写;但是,注释也是可使用缩写,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA编程规范试题一、判断题(每题2分,共28分)1、if, for, do, while, case, switch, default 等语句自占一行,且if, for,do, while, switch, case等语句的执行语句无论多少都要加括号{}。
2、包的注释内容要求包括:简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权、生成日期等。
3、类注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者、新版本号和当天的日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。
4、对于方法内部用throw语句抛出的异常,必须在方法的注释中标明;对于所调用的其他方法所抛出的异常,在注释中要求说明所有的异常;对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
5、类名和接口使用完整的英文单词描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。
6、com.huawei.四级部门名称.项目名称,符合包命名规范。
7、不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。
8、划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的多样化。
9、一个方法不应抛出太多类型的异常,如果程序中需要分类处理异常,则将异常根据分类组织成继承关系。
10、switch 语句中的 case 关键字要和后面的常量保持一个空格;如果有特殊的需要要在switch语句中定义case以外的标签,需要在注释中说明。
11、没有被覆盖的友好方法和没有子类的友好类应该定义成final。
12、简单的类可以通过名字比较两个对象的类,推荐使用 getClass()或者instanceof()。
13、不要调用 Thread 类的 resume(), suspend(),sleep(), stop() 方法。
14、判断方法是否是重载,只关注方法名、参数个数、参数类型,不关注方法返回值;二、单选题(每题2分,共36分)1、下面的选项与公司的排版规范不相符的是A.如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在Java语言中括号已是最清晰的标志了。
B.DatabaseKey servicekey = null;key = getServiceKey();currentEventsCount = getCurrentEventsCount();if (currentEventsCount > 0 ){//...program code}C.if ( writeToFile ){writeFileThread.interrupt();}D.if (a >= b && c > d){//program code}E.在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。
给操作符留空格时不要连续留两个以上空格2、下面说法或者语句不符合公司编程规范的排版要求的是:A.逗号、分号只在后面加空格; 比较操作符, 赋值操作符"="、 "+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格; "!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前后不加空格;B.a *= 2;C.x = y&z;D. key--;3、有关各种注释内容,描述错误的是:A.成员变量注释内容:成员变量的意义、目的、功能,可能被用到的地方。
B.公有和保护方法注释内容:列出方法的一句话功能简述、功能详细描述、作者、输入参数、输出参数、返回值、违例等。
C.类和接口的注释内容:类的注释主要是一句话功能简述、功能详细描述,可根据需要列出:版本号、生成日期、作者、内容、功能、与其它类的关系等。
如果一个类存在Bug,请如实说明这些Bug。
D.文件注释内容有:文件名、版权说明、描述信息、生成日期、修改历史。
E.包的注释内容:简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权。
4、下面说法正确的是:A.编写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
不再有用的注释不要删除,使用@deprecated 表示此注释无效。
B.避免在注释中使用缩写,特别是不常用缩写;但是,注释也是可使用缩写,在使用缩写时或之前,应对缩写进行必要的说明。
C.在程序块的结束行下方加注释标记,以表明某程序块的结束。
D.注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,根据公司国际化的趋势,建议多使用英文。
5、下面说法错误的是:A.一些复杂的代码需要注释说明。
B.顺序实现流程的说明使用1、2、3、4在每个实现步骤部分的代码前面进行注释。
C.注释尽量使用中文注释和中文标点。
方法和类描述的第一句话尽量使用简洁明了的话概括一下功能,然后加以句号。
接下来的部分可以详细描述。
D.方法内的单行注释使用“//”或使用”/*…… */”。
6、下面语句或者描述不符合编程规范命名要求的是:A.OrderInformation, CustomerList, LogManager, LogConfig, SmpTransaction 符合类的命名规范。
B.Bean 类型的,建议命名以Bean 结尾——DataAccessBeanC.常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用static 修饰。
D. private List properties;7、下面的说法正确的是:A.非运行期异常是由外界运行环境决定异常抛出条件的异常,需要调用者明确考虑该异常出现时该如何处理方法,因此在做运行时异常体系设计时要根据错误的性质合理选择JAVA已定义的异常继承关系。
B.异常捕获后,如果不对该异常进行处理,则应该纪录日志或者ex.printStackTrace(),当然,若有特殊原因必须用注释加以说明。
C.文件名为空的时候,在方法内抛出的异常:if ( null = = fileName ){throw new Exception( “exception” );}D.应用程序可以捕获Error这种异常,但不要定义 Error的子类。
8、下列不符合编码规范的是:A. 数据库操作、IO操作等需要使用结束close()的对象必须在try-catch-finally 的finally中close()。
B. 数组声明的时候使用 int[] index ,而不要使用 int index[] 。
C. 所有的类必须重载toString() 方法,返回该类有意义的内容。
D. 自己抛出的异常必须要填写详细的描述信息。
9、下列错误使用异常的做法是()A. 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。
B. 一个方法不应抛出太多类型的异常。
throws/exception子句标明的异常最好不要超过三个。
C. 异常捕获尽量不要直接 catch (Exception ex),应该把异常细分处理。
D. 程序内抛出的异常本身就可说明异常的类型、抛出条件,可不填写详细的描述信息。
捕获异常后用exception.toString()取到详细信息后保存。
10、下列说法错误的是:A. 段代码各语句之间有实质性关联并且是完成同一件功能的,那么可考虑把此段代码构造成一个新的方法。
B. 源程序中关系较为紧密的代码应尽可能相邻。
C. 程序中可同时使用错误码和异常进行处理,推荐使用异常。
D. 方法参数建议不超过5个。
11、下面关于构建器的说法中不符合编程规范的是()A.不要在构建器中使用非 final 方法。
B.不要在抽象类的构建器中调用抽象方法。
C.在可能的情况下,总是为类定义一个缺省的构建器。
D.工具类(Utility)可定义私有构建器。
E.不要给保护类类定义 public 构建器。
12、下面的程序片断符合JTest规范的是()A.for(int i = 0; i < MAX_INDEX; i++ ){Apple apple = array[i];}B. public interface ServiceConst{int MAX_BLACK_SIZE = 100;}C.for(int i = 0; i < MAX_INDEX; i++ ){list.add(FruitFactory.getInstance().createApple());}D. String log = message + “Y”;13、下列说法错误的是()A. 尽可能的使用局部变量进行运算。
B. 不要使用静态集合,其内存占用增长没有边界。
C. 一个只有abstract方法、final static 属性的类应该定义成接口。
D. 使用 while(), sleep()代替 wait(), notify()。
14、下面说法错误的是()A.属性名不能与方法名相同。
B.方法重载的时候,一定要注意方法名相同。
C.方法的参数名不要和类中的方法名相同。
D.使用 equals() 比较两个类是否相同。
15、关于说法正确的是:A.使用StringBuffer的时候设置初始容量,推荐设置为1024。
B.使用 StringBuffer代替StringC.在国际化相关的处理逻辑,不要使用String。
D.不要通过名字比较两个对象的类,应该使用 instanceof()E.类调用方法的最大规模建议不超过20个。
16、下列关于finalize()的描述错误的有:A.在 finalize() 方法中一定要调用 super.finalize() 方法B.在 finalize() 方法中的 finally 中调用 super.finalize() 方法;C.不要在 finalize() 方法中删除监听器(Listeners);D.可以在finalize() 方法中删除监听器(Listeners);17、下列描述中不符合编程规范的有:A.不要使用空的for 、if 、while 语句;B.在 clone() 方法中应该而且必须使用 new一个父类的对象。