一、JavaOOP 面试题

1、short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1; 有错吗?

前面这个有错,s1是short型,s1+1是int型,不能显式转化为short型。可以强转,修改为s1=(short(s1+1)。后面这个正确。

2、重载和重写的区别

重载是一个类多态的表现,重写是父类与子类间多态的表现。

重载:在一个类中具有相同的方法名,不同的入参称为重载。重载的方法可以改变方法的返回值类型。

重写:在子类中定义的方法与父类中的方法有相同的方法名和入参,称为重写。

3、数组实例化有几种方式?

①静态初始化:在定义数组是直接为数组元素赋值,可以使用大括号括起来,用逗号分隔。

int[] arr = {1,2,3};

②动态初始化:定义数组是指定数组长度,而不指定元素的值。

int[] arr = new int[10];

③匿名数组:在创建数组时不指定数组名称,直接将数组元素赋值给数组变量。

int[] arr = new int[]{1,2,3};

④多维数组的初始化:多维数组可以使用静态初始化或动态初始化。

 

4、Java 中各种数据默认值(基本类型能存储数值的大小?)

byte(0),short(0),int(0),long(0),float(0.0),double(0.0),boolean(false),char(ascii码0对应的符号,NuL空字符)

 

包装类默认为null(装箱和拆箱?)

 

 

string(null))(字符串常量池?)

 

数组是一样的,每个位置都有默认值

 

5、Object 类常用方法有那些?(反射?)

getClass:获取引用中存储的实际对象类型

hashCode:获取对象的哈希值

equals:比较两个对象地址是否相同(重写equals?)

toString:获取对象的字符串形式

clone:保护方法,实现对象的浅拷贝,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。(深拷贝和浅拷贝?)

finalize: 保护方法,不需要手动调用,在垃圾回收时由垃圾回收器调用。(垃圾回收机制?)

(参考:Object类中的常用方法_object方法_emo的野犬的博客-CSDN博客

 

wait方法:会导致线程进入等待状态,直到它被其他线程调用notify或者notifyAll方法后被唤醒。该方法必须在同步方法中调用,当前线程必须持有锁,否则直接调用会抛出异常《IllegalMonitorStateException》。wait(long time)可以设置等待时间,调用后当前线程进入睡眠状态直到:

一、调用notify或notifyAll方法

二、其他线程调用interrupt方法中断。

三、超出时间间隔。

此时线程就可以调度了。如果被中断会抛出interruptException异常。

 

notify方法:该方法唤醒在等待该对象的某个线程。

notifyAll方法:该方法唤醒所有因调用wait方法而在等待状态的线程。

两个方法都只能在同步代码块执行,当前线程必须持有锁,否则一样会抛异常。

(参考:Object类的常用方法_object类的方法_学、渣的博客-CSDN博客

(线程的几种状态?异步、并发编程?)

 

6、java 中是值传递引用传递?

7、形参与实参区别

8、构造方法能不能重写?能不能重载?

9、内部类与静态内部类的区别?

10、Static 关键字有什么作用?

11、final 在 java 中的作用,有哪些用法?

12、String str=”aaa”,与 String str=new String(“aaa”)一样吗?

13、讲下 java 中的 math 类有那些常用方法?

14、Char 类型能不能转成 int 类型?能不能转化成 string 类型,能不能转成 double 类型

15、什么是拆装箱?

16、Java 中的包装类都是那些?

17、一个 java 类中包含那些内容?

18、那针对浮点型 数据运算出现的误差的问题,你怎么解决?

19、面向对象的特征有哪些方面?

20、访问修饰符 public,private,protected,以及不写(默认) 时的区别?

21、接口有什么特点?

22、抽象类和接口的区别?

23、Hashcode 的作用

24、普通类与抽象类有什么区别?

25、什么是接口?为什么需要接口?

26、接口有什么特点?

27、拷贝和浅拷贝的区别是什么?

28、JDBC 操作的步骤

29、什么时候用 assert

30、数组有没有 length()这个方法? String 有没有 length()这个方法

31、用最有效率的方法算出 2 乘以 8 等于几?

32、String 和 StringBuilder、StringBuffer 的区别?

33、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?

34、一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制?

35、Java 中的 final 关键字有哪些用法?
————————————————
版权声明:本文为CSDN博主「ZHAOHUODIAN888」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ZHAOHUODIAN888/article/details/127071884

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开发阳光旅行网app中用户下单功能,可实现用户添加订单并完善出行人信息、修改订单,删除订单以及打印行程信息等功能。 具体功能要求如下: (1)显示系统主菜单 包括添加出行订单、查看我的出行订单、修改订单信息、删除出行人、查看行程、退出系统6项功能,其他功能本项目不做要求,当用户选择功能编号后可进入执行相应功能。执行结果如图1所示。 图1 主菜单 (2)添加出行订单 填写出行日期、联系人手机号码、循环录入出行人信息。 出行人信息包括: 出行人类别:成人、儿童(1.2m以下)、老人(65岁以上) 姓名 年龄(如选择类别为老人,输入年龄不足65岁的,显示提示信息“对不起,老人订单年龄需为65岁以上!”) 如果是儿童,需确定是否占床 每成功录入一条出行人信息后,显示出其详细信息,并计算出行金额。定价如下: 成人:2000元/人 儿童:免费,如需占床另加30元 老人:半价,即1000元/人 当一条出行人信息录入完毕后,提示“是否继续添加(Y/N)?”,此处不区分大小写,当输入y或Y时继续录入下一条,否则显示订单信息,包括: 出行日期 联系人手机号码 订单总金额(即所有出行人定单金额之和) 最后显示主菜单。执行效果如图2所示。 图2 添加出行订单 (3)查看我的出行订单信息 查看我的出行订单:查看所录入的订单信息。包括出行日期、联系人手机号码、所有出行人信息,运行效果如图3所示。 图3 查看我的出行订单 (4)修改行程信息 可修改出行日期、联系人手机号码,要求手机号码必须为11位,否则抛出异常信息,提示“手机号码必须为11位”,运行效果如果4所示。 图4 手机号码不是11位 正确修改后,显示修改后的信息,并提示“修改成功!”。如图5所示。 图5 修改订单成功 (5)删除出行人 填写要删除的出行人姓名,执行删除操作,删除成功后给出提示“删除成功!”,如图6所示。如果输入姓名错误,则提示“对不起,定单中不包含此游客信息!”如图7所示。 图6 删除出行人成功 图7 删除出行人失败 (6)查看行程 显示本次旅行行程信息。运行效果如图8所示。 图8 查看行程 (7)退出系统 退出当前系统,显示“欢迎下次再来。”如图9所示。 三、要求与实现步骤 (一)不使用数据库,使用对象和集合存储数据 (二)定义实体类(成人订单、儿童订单、老人订单),儿童订单、老人订单为成人订单的子类。实体类至少包含但不局限于以上3个。 (三)在各实体类中均需实现各自计算订单价格、显示订单信息的方法,使用方法的重写。 (四)定义工具类,实现查看我的出行订单、添加订单、修改行程信息、删除出行人、查看行程等方法。需使用到对象传参。 (五)使用泛型集合存储所有出行人信息,使用集合的遍历实现查看订单信息、统计订单总金额、删除出行人等功能。 (六)显示信息时,只有儿童出行人需显示是否占座,需使用面向对象多态实现。 (七)修改行程信息时,当手机号码录入错误时需使用throw手动抛出异常。 (八)定义测试类,完成项目功能菜单以及整体流程,调用相应方法实现具体功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值