28对象序列化

合集下载

笔试题及答案

笔试题及答案

笔试题及答案(二)(总10页) --本页仅作预览文档封面,使用时请删除本页--一.选择题(共50题,每题2分,共100分。

多选题选不全或选错都不得分。

) 1.以下属于面向对象的特征的是(C,D)。

(两项)A) 重载B) 重写C) 封装D) 继承2.以下代码运行输出是(C)public class Person{private String name=”Person”;int age=0;}public class Child extends Person{public String grade;public static void main(String[] args){Person p = new Child();}}A) 输出:PersonB) 没有输出C) 编译出错D) 运行出错3.在使用super 和this关键字时,以下描述正确的是(A)A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过B) super()和this()不一定要放在构造方法内第一行C) this()和super()可以同时出现在一个构造函数中D) this()和super()可以在static环境中使用,包括static方法和static语句块4.以下对封装的描述正确的是(D)A) 只能对一个类中的方法进行封装,不能对属性进行封装B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用C) 封装的意义不大,因此在编码时尽量不要使用D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性5.以下对继承的描述错误的是(A)A) Java中的继承允许一个子类继承多个父类B) 父类更具有通用性,子类更具体C) Java中的继承存在着传递性D) 当实例化子类时会递归调用父类中的构造方法6.以下程序的运行结果是(D)class Person{public Person(){is a Person”);}}public class Teacher extends Person{private String name=”tom”;public Teacher(){is a teacher”);super();}public static void main(String[] args){Teacher teacher = new Teacher();}}A) this is a Personthis is a teachertomB) this is a teacherthis is a PersontomC) 运行出错D) 编译有两处错误7.以下说法错误的是()A) super.方法()可以调用父类的所有非私有方法B) super()可以调用父类的所有非私有构造函数C) super.属性可以调用父类的所有非私有属性D) this和super关键字可以出现在同一个构造函数中8.以下关于final关键字说法错误的是(A,C)(两项)A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性B) final修饰的类肯定不能被继承C) final修饰的方法不能被重载D) final修饰的变量不允许被再次赋值9.访问修饰符作用范围由大到小是(D)A) private-default-protected-publicB) public-default-protected-privateC) private-protected-default-publicD) public-protected-default-private10.以下(D)不是Object类的方法A) clone()B) finalize()C) toString()D) hasNext()11.多态的表现形式有(A)A) 重写B) 抽象C) 继承D) 封装12.以下对重载描述错误的是(B)A) 方法重载只能发生在一个类的内部B) 构造方法不能重载C) 重载要求方法名相同,参数列表不同D) 方法的返回值类型不是区分方法重载的条件13.以下(D)添加到ComputerBook中不会出错class Book{protected int getPrice(){return 30;}}public class ComputerBook extends Book{}A) protected float getPrice(){}B) protected int getPrice(int page){}C) int getPrice(){}D) public int getPrice(){return 10;}14.以下对抽象类的描述正确的是(C)A) 抽象类没有构造方法B) 抽象类必须提供抽象方法C) 有抽象方法的类一定是抽象类D) 抽象类可以通过new关键字直接实例化15.以下对接口描述错误的有(D)A) 接口没有提供构造方法B) 接口中的方法默认使用public、abstract修饰C) 接口中的属性默认使用public、static、final修饰D) 接口不允许多继承16.以下代码,描述正确的有(A)interface IDemo{public static final String name;1void print();2public void getInfo();3}abstract class Person implements IDemo{4public void print(){}}A) 第1行错误,没有给变量赋值B) 第2行错误,方法没有修饰符C) 第4行错误,没有实现接口的全部方法D) 第3行错误,没有方法的实现17.接口和抽象类描述正确的有(B,C)(两项)A) 抽象类没有构造函数B) 接口没有构造函数C) 抽象类不允许多继承D) 接口中的方法可以有方法体18.以下描述错误的有(C)A) abstract 可以修饰类、接口、方法B) abstract修饰的类主要用于被继承C) abstract 可以修饰变量D) abstract修饰的类,其子类也可以是abstract修饰的19.以下描述正确的有(B)A) 方法的重写应用在一个类的内部B) 方法的重载与返回值类型无关C) 构造方法不能重载D) 构造方法可以重写20.以下程序运行结果是(A)public class Test extends Father{private String name=”test”;public static void main(String[] args){Test test = new Test();}}class Father{private String name=”father”;public String getName() {return name;}}A) fatherB) testC) 编译出错D) 运行出错,无输出21.以下对异常的描述不正确的有(C)A) 异常分为Error和ExceptionB) Throwable是所有异常类的父类C) Exception是所有异常类父类D) Exception包括RuntimeException和RuntimeException之外的异常22.在try-catch-finally语句块中,以下可以单独与finally一起使用的是(B)A) catchB) tryC) throwsD) throw23.下面代码运行结果是(B)public class Demo{public int add(int a,int b){try{return a+b;}catch(Exception e){语句块”);}finally{语句块”);}return 0;}public static void main(String[] args){Demo demo = new Demo();和是:”+(9,34));}}A) 编译异常B) finally语句块和是:43C) 和是:43 finally语句块D) catch语句块和是:4324.以下描述不正确的有(D)A) try块不可以省略B) 可以使用多重catch块C) finally块可以省略D) catch块和finally块可以同时省略25.以下对自定义异常描述正确的是(C)A) 自定义异常必须继承ExceptionB) 自定义异常可以继承自ErrorC) 自定义异常可以更加明确定位异常出错的位置和给出详细出错信息D) 程序中已经提供了丰富的异常类,使用自定义异常没有意义26.以下程序运行结果是(D)public class Test {public int div(int a, int b) {try {return a / b;}catch(Exception e){}catch(NullPointerException e){}catch (ArithmeticException e) {} finally {}return 0;}public static void main(String[] args) {Test demo = new Test();商是:” + (9, 0));}}A) Exception finally 商是:0B) ArithmeticException finally 商是:0C) finally商是:0D) 编译报错27. 以下对TCP和UDP描述正确的是(D)A) TCP不能提供数据的可靠性B) UDP能够保证数据库的可靠性C) TCP数据传输效率高于UDPD) UDP数据传输效率高于TCP28. 在Java中,下面对于构造函数的描述正确的是(D)。

在C#中,Json的序列化和反序列化的几种方式总结

在C#中,Json的序列化和反序列化的几种方式总结

在C#中,Json的序列化和反序列化的⼏种⽅式总结在这篇⽂章中,我们将会学到如何使⽤C#,来序列化对象成为Json格式的数据,以及如何反序列化Json数据到对象。

⾸先,解释⼀下jsonJson【javascript对象表⽰⽅法】,它是⼀个轻量级的数据交换格式,我们可以很简单的来读取和写它,并且它很容易被计算机转化和⽣成,它是完全独⽴于语⾔的。

Json⽀持下⾯两种数据结构:键值对的集合--各种不同的编程语⾔,都⽀持这种数据结构;有序的列表类型值的集合--这其中包含数组,集合,⽮量,或者序列,等等。

Json有下⾯⼏种表现形式1.对象⼀个没有顺序的“键/值”,⼀个对象以花括号“{”开始,并以花括号"}"结束,在每⼀个“键”的后⾯,有⼀个冒号,并且使⽤逗号来分隔多个键值对。

例如:1var user = {"name":"Manas","gender":"Male","birthday":"1987-8-8"}2.数组设置值的顺序,⼀个数组以中括号"["开始,并以中括号"]"结束,并且所有的值使⽤逗号分隔,例如:1var userlist = [{"user":{"name":"Manas","gender":"Male","birthday":"1987-8-8"}},2 {"user":{"name":"Mohapatra","Male":"Female","birthday":"1987-7-7"}}]3.字符串任意数量的Unicode字符,使⽤引号做标记,并使⽤反斜杠来分隔。

Newtonsoft.Json序列化和反序列化以及时间格式2

Newtonsoft.Json序列化和反序列化以及时间格式2

Newtonsoft.Json序列化和反序列化以及时间格式2⼀、JSON使⽤JsonPropertyAttribute重命名属性名1.先创建⼀个Movie对象,然后在其属性上添加JsonProperty,并指定重命名的名称。

注意:属性Name和Director已指定。

[csharp]1. using System;2. using System.Collections.Generic;3. using System.Linq;4. using System.Text;5. using GongHuiNewtonsoft.Json;6.7. namespace JSONDemo8. {9. public class Movie10. {11. [JsonProperty("name")]12. public string Name { get; set; }13.14. [JsonProperty("Chinese Director")]15. public string Director { get; set; }16.17. public int ReleaseYear { get; set; }18. }19. }2.实例化Movie对象,然后序列化。

[csharp]1. using System;2. using System.Collections.Generic;3. using System.Linq;4. using System.Text;5. using System.Data;6. using GongHuiNewtonsoft.Json;7. using GongHuiNewtonsoft.Json.Serialization;8. using GongHuiNewtonsoft.Json.Converters;9.10. namespace JSONDemo11. {12. class Program13. {14. static void Main(string[] args)15. {16. Movie m = new Movie17. {18. Name = "⾮诚勿扰1",19. Director = "冯⼩刚",20. ReleaseYear = 200821. };22.23. string json = JsonConvert.SerializeObject(m, Formatting.Indented);24. Console.WriteLine(json);25. }26. }27. }3.运⾏结果,注意:属性ReleaseYear未被重命名。

java中writeobject的用法

java中writeobject的用法

java中writeobject的用法Java中的writeObject()是一个序列化方法,它用于将Java对象转化为二进制形式以便存储到文件中或通过网络传输。

这个方法是Java中的一个重要功能,它可以让我们将一个序列化对象写入到输出流中,并将其保存到磁盘上或者发送到另一个程序。

下面,我们将更详细地介绍Java中writeObject()的用法。

1.创建一个实现了Serializable接口的类在Java中,如果想要使用writeObject()方法,我们需要创建一个实现了Serializable接口的类。

这是因为Serializable接口标记了一个类可以被序列化,表明它的内部状态可以被存储到磁盘或者通过网络传输。

例如,我们可以创建一个名为Person的类,并让它实现Serializable接口:public class Person implements Serializable {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}//省略getter和setter方法}2.使用ObjectOutputStream类将对象写入文件中一旦一个Serializable类被创建,我们就可以使用writeObject()方法将实例对象写入到文件中。

我们需要使用Java的ObjectOutputStream类来将对象写入到输出流中。

ObjectOutputStream类包含了许多方法,它们可以用于序列化和写入各种不同类型的Java对象。

下面是一个例子:try {FileOutputStream fileOut = newFileOutputStream("person.ser");ObjectOutputStream out = new ObjectOutputStream(fileOut); Person person = new Person("Tom", 28);out.writeObject(person);out.close();fileOut.close();} catch (IOException i) {i.printStackTrace();}在这个例子中,我们创建了一个Person类的实例对象,并使用ObjectOutputStream的writeObject()方法将其写入到person.ser文件中。

java类与对象选择题附加答案解析

java类与对象选择题附加答案解析

Java 类与对象选择题练习附加答案解析1. 以下关于Java类的描述,正确的是:A. 类是对象的实例。

B. 类可以包含属性和方法。

C. 类不能继承其他类。

D. 类只能包含一个方法。

答案: B。

解析:类是对象的蓝图或模板,可以包含属性(成员变量)和方法(成员函数)。

2. 在Java中,要创建一个类的对象,应使用哪个关键字?A. newB. createC. instantiateD. make答案: A。

解析:在Java中,使用`new`关键字来创建类的对象。

3. 在以下关于构造方法的描述中,正确的是:A. 构造方法必须有返回类型。

B. 构造方法的名称必须与类名相同。

C. 构造方法可以是静态的。

D. 构造方法可以重载但不能覆盖。

答案: B。

解析:构造方法的名称必须与类名相同,并且没有返回类型(包括void)。

构造方法可以重载(多个同名但参数不同的方法),但不能覆盖(重写父类方法)。

4. 如果`MyClass`类有一个名为`display`的方法,且`myObject`是`MyClass`类的一个实例,如何调用该方法?A. display();B. MyClass.display();C. myObject.display();D. MyClass::display();答案: C。

解析:通过对象实例`myObject`来调用类的非静态方法`display`。

5. 以下哪个选项是关于`this`关键字的正确描述?A. `this`关键字指向类的超类(父类)。

B. `this`关键字只能在静态方法中使用。

C. `this`关键字引用当前对象的实例。

D. `this`关键字用于创建新的对象。

答案: C。

解析:`this`关键字引用当前对象的实例,可以在类的方法和构造方法中使用来引用当前对象的成员变量或方法。

6. 在Java中,如果类B继承自类A,且类A是基类,则下列哪个选项是正确的?A. 类B是类A的超类。

【计算机应用】_虚拟仿真_期刊发文热词逐年推荐_20140726

【计算机应用】_虚拟仿真_期刊发文热词逐年推荐_20140726
2008年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
空间描述 移动机器人 球面反射 环路由协议 特殊效果 点播 灾难机理模型 灾难事故仿真 灭火救援 漫画 混合虚拟现实技术 混合整数线性规划(milp) 波分复用 步长法 模糊控制 模拟训练 模拟 模型优化 概率密度函数 样机建模 机械臂 有限状态机 曲率提取法 数字模型 拓扑结构 拓扑控制 感知权重分析器 恒虚警处理 弹簧-质点模型 异构无线传感器网络 并行环境 布料仿真 局部路径规划 对等网络 室外声场 实时生成 实时 夸张 多源注意力 多感知融合 声线跟踪 图像合成 启发式 可缩放矢量图形 可碰撞集 双四元数 参数获取 动目标检测 动态流量 动力学仿真 力反馈 关节模型 光纤网络 供应链协作
推荐指数 3 3 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2010年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
ห้องสมุดไป่ตู้
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

java笔试——选择题

Java基础笔试题一.选择题(共50题,每题2分,共100分。

多选题选不全或选错都不得分。

)1.以下属于面向对象的特征的是(C,D)。

(两项)A) 重载B) 重写C) 封装D) 继承2.以下代码运行输出是(C)public class Person{private String name=”Person”;int age=0;}public class Child extends Person{public String grade;public static void main(String[] args){Person p = new Child();System.out.println();}}A) 输出:Person B) 没有输出C) 编译出错D) 运行出错解答:子类不能访问父类私有成员3.在使用super 和this关键字时,以下描述正确的是(A)A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过B) super()和this()不一定要放在构造方法内第一行C) this()和super()可以同时出现在一个构造函数中D) this()和super()可以在static环境中使用,包括static方法和static语句块4.以下对封装的描述正确的是(D)A) 只能对一个类中的方法进行封装,不能对属性进行封装B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用C) 封装的意义不大,因此在编码时尽量不要使用D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性5.以下对继承的描述错误的是(A)A) Java中的继承允许一个子类继承多个父类B) 父类更具有通用性,子类更具体C) Java中的继承存在着传递性D) 当实例化子类时会递归调用父类中的构造方法6.以下程序的运行结果是(D)class Person{public Person(){System.out.println(“this is a Person”);}}public class Teacher extends Person{private String name=”tom”;public Teacher(){System.out.println(“this is a teacher”);super();}public static void main(String[] args){Teacher teacher = new Teacher();System.out.println();}}A) this is a Personthis is a teachertomB) this is a teacherthis is a PersontomC) 运行出错D) 编译有两处错误7.以下说法错误的是(D)A) super.方法()可以调用父类的所有非私有方法B) super()可以调用父类的所有非私有构造函数C) super.属性可以调用父类的所有非私有属性D) this和super关键字可以出现在同一个构造函数中8.以下关于final关键字说法错误的是(A,C)(两项)A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性B) final修饰的类肯定不能被继承C) final修饰的方法不能被重载D) final修饰的变量不允许被再次赋值9.访问修饰符作用范围由大到小是(D)A) private-default-protected-public B) public-default-protected-private C) private-protected-default-public D) public-protected-default-private 10.以下(D)不是Object类的方法A) clone()B) finalize()C) toString()D) hasNext()11.多态的表现形式有(A)A) 重写B) 抽象C) 继承D) 封装12.以下对重载描述错误的是(B)A) 方法重载只能发生在一个类的内部B) 构造方法不能重载C) 重载要求方法名相同,参数列表不同D) 方法的返回值类型不是区分方法重载的条件13.以下(D)添加到ComputerBook中不会出错class Book{protected int getPrice(){return 30;}}public class ComputerBook extends Book{}A) protected float getPrice(){}B) protected int getPrice(int page){}C) int getPrice(){}D) public int getPrice(){return 10;}14.以下对抽象类的描述正确的是(C)A) 抽象类没有构造方法B) 抽象类必须提供抽象方法C) 有抽象方法的类一定是抽象类D) 抽象类可以通过new关键字直接实例化15.以下对接口描述错误的有(D)A) 接口没有提供构造方法B) 接口中的方法默认使用public、abstract修饰C) 接口中的属性默认使用public、static、final修饰D) 接口不允许多继承16.以下代码,描述正确的有(A)interface IDemo{public static final String name;1void print();2public void getInfo();3}abstract class Person implements IDemo{4public void print(){}}A) 第1行错误,没有给变量赋值B) 第2行错误,方法没有修饰符C) 第4行错误,没有实现接口的全部方法D) 第3行错误,没有方法的实现17.接口和抽象类描述正确的有(B,C)(两项)A) 抽象类没有构造函数B) 接口没有构造函数C) 抽象类不允许多继承D) 接口中的方法可以有方法体18.以下描述错误的有(C)A) abstract 可以修饰类、接口、方法B) abstract修饰的类主要用于被继承C) abstract 可以修饰变量D) abstract修饰的类,其子类也可以是abstract修饰的19.以下描述正确的有(B)A) 方法的重写应用在一个类的内部B) 方法的重载与返回值类型无关C) 构造方法不能重载D) 构造方法可以重写20.以下程序运行结果是(A)public class Test extends Father{private String name=”test”;public static void main(String[] args){Test test = new Test();System.out.println(test.getName());}}class Father{private String name=”father”;public String getName() {return name;}}A) father B) test C) 编译出错D) 运行出错,无输出21.以下对异常的描述不正确的有(C)A) 异常分为Error和Exception B) Throwable是所有异常类的父类C) Exception是所有异常类父类D) Exception包括RuntimeException和RuntimeException 之外的异常22.在try-catch-finally语句块中,以下可以单独与finally一起使用的是(B)A) catch B) try C) throws D) throw23.下面代码运行结果是(B)public class Demo{public int add(int a,int b){try{return a+b;}catch(Exception e){System.out.println(“catch 语句块”);}finally{System.out.println(“finally 语句块”);}return 0;}public static void main(String[] args){Demo demo = new Demo();System.out.println(“和是:”+demo.add(9,34));}}A) 编译异常B) finally语句块和是:43C) 和是:43 finally语句块D) catch语句块和是:4324.以下描述不正确的有(D)A) try块不可以省略B) 可以使用多重catch块C) finally块可以省略D) catch块和finally块可以同时省略25.以下对自定义异常描述正确的是(C)A) 自定义异常必须继承Exception B) 自定义异常可以继承自ErrorC) 自定义异常可以更加明确定位异常出错的位置和给出详细出错信息D) 程序中已经提供了丰富的异常类,使用自定义异常没有意义26.以下程序运行结果是(D)public class Test {public int div(int a, int b) {try {return a / b;}catch(Exception e){System.out.println(“Exception”);}catch(NullPointerException e){System.out.println(“ArithmeticException”);}catch (ArithmeticException e) {System.out.println(“ArithmeticException”);} finally {System.out.println(“finally”);}return 0;}public static void main(String[] args) {Test demo = new Test();System.out.println(“商是:” + demo.div(9, 0));}}A) Exception finally 商是:0 B) ArithmeticException finally 商是:0C) finally商是:0 D) 编译报错27. 以下对TCP和UDP描述正确的是(D)A) TCP不能提供数据的可靠性B) UDP能够保证数据库的可靠性C) TCP数据传输效率高于UDP D) UDP数据传输效率高于TCP28. 在Java中,下面对于构造函数的描述正确的是(D)。

FastJson解析、序列化及反序列化

<groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
二、序列化
1.创建实体类(根据json的key值创建对象属性)
1 package cn.xiaobing.pojo;
38
this.datas = datas;
39 }
40 @Override
41 public String toString() {
42
return "ResultJson [status=" + status + ", message=" + message + ", datas=" + datas + "]";
43 }
44
45 }
3.利用fastJson实现json字符串的反序列化
1 package cn.xiaobing.json; 2 3 import java.util.Map; 4 import com.alibaba.fastjson.JSONObject; 5 import cn.xiaobing.pojo.ResultJson; 6 7 /**利用fastJson实现json字符串的反序列化 8 * @author Administrator 9 */ 10 public class jsonDemo01 { 11 //提供json字符串{"status":"1","message":"登录成功"} 12 static String jsonString = "{\"status\":\"1\",\"message\":\"登录成功\"}"; 13 static String multilayerJsonString = "{\"status\":\"1\",\"message\":\"登录成功\",\"datas\":{\"name\":\"Tom\",\"age\":\"18\",\"phone\":\"18888888888\"}}"; 14 /** 15 * 利用fastJson实现json字符串反序列化为对象 16 */

【计算机工程与设计】_java_期刊发文热词逐年推荐_20140725


科研热词 java 通用分组无线业务 模型检测 模型-视图-控制器 框架 构件 抽象 安全通信 可扩展标记语言 xml struts java媒体框架 java内容仓库 ajax 高级加密标准 面向方面编程 非阻塞模式 集装箱码头 集成模式 集成化医疗卫生企业 集成 随机插入 通用分组无线服务 远程监控 软件测试 软件构件 软交换 路径分析 跨平台 资源监控接口 谓词抽象 规则引擎技术 行动推理 虚拟机 虚拟专用网络 蓝牙 自然语言处理 网络视频会议 网络故障管理系统 网络挖掘 缓存技术 组合 组件 线程 约束检查 约束处理规则 系统资源监控 系统设计与分析 第三方电子商务 程序验证 程序分析 移动电话
移动地理信息系统 监控视频 用户界面组件 状态爆炸 混淆 测试 流演算 流媒体传输与控制 模板引擎 模型.视图.控制器 标准数据接口 查询性能优化模型 构件模型 智能体 文法 文档对象模型 文档分类 数据验证 数据共享 数字签名 教学支持系统 敏捷化 支撑平台 推荐 控制流 控制反转 拥塞 报警 技术框架 手绘形状 手机视频监控 手机 心理咨询 形状识别 异步消息 并发程序 平台 布尔程序 巴克斯范式 工作流模型 工作流 封装 对象关系映射 家庭网关 客户端/服务器 实时传输 安全套接层协议 存储集群 字节代码 多学科协同设计 多主体系统 多agent 复用机制 基于构件的开发
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

Java基础笔试题

Java基础笔试题⼀.选择题(共50题,每题2分,共100分。

多选题选不全或选错都不得分。

)1.以下属于⾯向对象的特征的是(C,D)。

(两项)A) 重载B) 重写C) 封装D) 继承解析:⾯向对象的三⼤特性:封装、继承、多态。

2.以下代码运⾏输出是(C)public class Person{private String name=”Person”;int age=0;}public class Child extends Person{public String grade;public static void main(String[] args){Person p = new Child();System.out.println();}}A) 输出:PersonB) 没有输出C) 编译出错D) 运⾏出错解析:⼦类不能直接调⽤⽗类私有成员变量。

3.在使⽤super 和this关键字时,以下描述正确的是(A)A) 在⼦类构造⽅法中使⽤super()显⽰调⽤⽗类的构造⽅法,super()必须写在⼦类构造⽅法的第⼀⾏,否则编译不通过B) super()和this()不⼀定要放在构造⽅法内第⼀⾏C) this()和super()可以同时出现在⼀个构造函数中D) this()和super()可以在static环境中使⽤,包括static⽅法和static语句块4.以下对封装的描述正确的是(D)A) 只能对⼀个类中的⽅法进⾏封装,不能对属性进⾏封装B) 如果⼦类继承了⽗类,对于⽗类中进⾏封装的⽅法,⼦类仍然可以直接调⽤C) 封装的意义不⼤,因此在编码时尽量不要使⽤D) 封装的主要作⽤在于对外隐藏内部实现细节,增强程序的安全性5.以下对继承的描述错误的是(A)A) Java中的继承允许⼀个⼦类继承多个⽗类B) ⽗类更具有通⽤性,⼦类更具体C) Java中的继承存在着传递性D) 当实例化⼦类时会递归调⽤⽗类中的构造⽅法6.以下程序的运⾏结果是(D)class Person{public Person(){System.out.println(“this is a Person”);}}public class Teacher extends Person{private String name=”tom”;public Teacher(){System.out.println(“this is a teacher”);super();}public static void main(String[] args){Teacher teacher = new Teacher();System.out.println();}}A) this is a Personthis is a teachertomB) this is a teacherthis is a PersontomC) 运⾏出错D) 编译有两处错误7.以下说法错误的是()A) super.⽅法()可以调⽤⽗类的所有⾮私有⽅法B) super()可以调⽤⽗类的所有⾮私有构造函数C) super.属性可以调⽤⽗类的所有⾮私有属性D) this和super关键字可以出现在同⼀个构造函数中8.以下关于final关键字说法错误的是(A,C)(两项)A) final是java中的修饰符,可以修饰类、接⼝、抽象类、⽅法和属性B) final修饰的类肯定不能被继承C) final修饰的⽅法不能被重载D) final修饰的变量不允许被再次赋值9.访问修饰符作⽤范围由⼤到⼩是(D)A) private-default-protected-publicB) public-default-protected-privateC) private-protected-default-publicD) public-protected-default-private10.以下(D)不是Object类的⽅法A) clone()B) finalize()C) toString()D) hasNext()11.多态的表现形式有(A)A) 重写B) 抽象C) 继承D) 封装12.以下对重载描述错误的是(B)A) ⽅法重载只能发⽣在⼀个类的内部B) 构造⽅法不能重载C) 重载要求⽅法名相同,参数列表不同D) ⽅法的返回值类型不是区分⽅法重载的条件13.以下(D)添加到ComputerBook中不会出错class Book{protected int getPrice(){return 30;}}public class ComputerBook extends Book{}A) protected float getPrice(){}B) protected int getPrice(int page){}C) int getPrice(){}D) public int getPrice(){return 10;}14.以下对抽象类的描述正确的是(C)A) 抽象类没有构造⽅法B) 抽象类必须提供抽象⽅法C) 有抽象⽅法的类⼀定是抽象类D) 抽象类可以通过new关键字直接实例化15.以下对接⼝描述错误的有(D)A) 接⼝没有提供构造⽅法B) 接⼝中的⽅法默认使⽤public、abstract修饰C) 接⼝中的属性默认使⽤public、static、final修饰D) 接⼝不允许多继承16.以下代码,描述正确的有(A)interface IDemo{public static final String name;1void print();2public void getInfo();3}abstract class Person implements IDemo{4public void print(){}}A) 第1⾏错误,没有给变量赋值B) 第2⾏错误,⽅法没有修饰符C) 第4⾏错误,没有实现接⼝的全部⽅法D) 第3⾏错误,没有⽅法的实现17.接⼝和抽象类描述正确的有(B,C)(两项)A) 抽象类没有构造函数B) 接⼝没有构造函数C) 抽象类不允许多继承D) 接⼝中的⽅法可以有⽅法体18.以下描述错误的有(C)A) abstract 可以修饰类、接⼝、⽅法B) abstract修饰的类主要⽤于被继承C) abstract 可以修饰变量D) abstract修饰的类,其⼦类也可以是abstract修饰的19.以下描述正确的有(B)A) ⽅法的重写应⽤在⼀个类的内部B) ⽅法的重载与返回值类型⽆关C) 构造⽅法不能重载D) 构造⽅法可以重写20.以下程序运⾏结果是(A)public class Test extends Father{private String name=”test”;public static void main(String[] args){Test test = new Test();System.out.println(test.getName());}}class Father{private String name=”father”;public String getName() {return name;}}A) fatherB) testC) 编译出错D) 运⾏出错,⽆输出21.以下对异常的描述不正确的有(C)A) 异常分为Error和ExceptionB) Throwable是所有异常类的⽗类C) Exception是所有异常类⽗类D) Exception包括RuntimeException和RuntimeException之外的异常22.在try-catch-finally语句块中,以下可以单独与finally⼀起使⽤的是(B)A) catchB) tryC) throwsD) throw23.下⾯代码运⾏结果是(B)public class Demo{public int add(int a,int b){try{return a+b;}catch(Exception e){System.out.println(“catch 语句块”);}finally{System.out.println(“finally 语句块”);}return 0;}public static void main(String[] args){Demo demo = new Demo();System.out.println(“和是:”+demo.add(9,34));}}A) 编译异常B) finally语句块和是:43C) 和是:43 finally语句块D) catch语句块和是:4324.以下描述不正确的有(D)A) try块不可以省略B) 可以使⽤多重catch块C) finally块可以省略D) catch块和finally块可以同时省略25.以下对⾃定义异常描述正确的是(C)A) ⾃定义异常必须继承ExceptionB) ⾃定义异常可以继承⾃ErrorC) ⾃定义异常可以更加明确定位异常出错的位置和给出详细出错信息D) 程序中已经提供了丰富的异常类,使⽤⾃定义异常没有意义26.以下程序运⾏结果是(D)public class Test {public int div(int a, int b) {try {return a / b;}catch(Exception e){System.out.println(“Exception”);}catch(NullPointerException e){System.out.println(“ArithmeticException”);}catch (ArithmeticException e) {System.out.println(“ArithmeticException”);} finally {System.out.println(“finally”);}return 0;}public static void main(String[] args) {Test demo = new Test();System.out.println(“商是:” + demo.div(9, 0));}}A) Exception finally 商是:0B) ArithmeticException finally 商是:0C) finally商是:0D) 编译报错解析:在写异常处理的时候,⼀定要把异常范围⼩的放在前⾯,范围⼤的放在后⾯,Exception这个异常的根类⼀定要放在最后⼀个catch⾥⾯。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档