当前位置:网站首页 > Java基础 > 正文

java基础 笔试题



概要

最近在求职找工作,从网上找了一些Java笔试题来做,很多都是基础题,其中包含了一些关键的知识点,如父子类执行顺序等问题。题目来源参考博客。

题目

1. 以指定编码输出字符串,如“utf-8”
代码实现如下:

 

2.给定整型数组用冒泡法升序排序
代码实现如下:

 

3.求阶乘
这里采用递归求解,也可以通过循环求解。
代码实现如下:

 

4.给定字母字符串按每个字母升序排序
代码实现如下:

 

5.给定数字字符串按数字大小升序排序
代码实现如下:

 

6.给定一个整型数组输出只出现过一次的数
代码实现如下:

 

7.实现一个单例模式
单例模式是常用设计模式中的一种
以下用两种方法实现单例模式

  • 饥饿式单例
    在类还没有初始化之前就已经产生类的实例了,所以是线程安全的。
    实现代码如下:
 
  • 双重检锁式单例
    在使用时才创建单例对象,因为在创建时检查单例对象是否为null和使用了synchronize锁住类,确保单例以及线程安全。
    实现代码如下:
 

8.字符串变量
实现代码如下:

 

9.父子类基础问题
Java中继承问题一个常考的题目,其中包括父子类加载顺序问题和子类隐藏父类的成员变量方法以及子类覆盖父类的方法。

  • 父子类加载顺序问题
    先看父类代码:
 
java基础 笔试题
父类执行结果图

可以看到父类中加载顺序为:父类的静态代码块--父类主程序--父类的非静态代码块--父类的有参构造方法--父类的普通方法。

  • 子类继承父类加载顺序
    如果只是父类加载顺序并不是很复杂,但是如果通过子类中继承,子类中加载顺序就变得稍微有些复杂。
    以下为子类代码:
 
子类中执行结果图

子类中继承父类后执行顺序发生了一些变化,加载顺序可以分为三个部分,第一部分为:父类的静态代码--子类的静态代码块--子类主程序,在这部分只执行一次不管后面有多少实例 。第二部分new了一个父类实例,执行顺序为:父类的非静态代码块--父类的有参构造方法--父类的普通方法。第三部分new了一个子类实例,执行顺序为:父类的非静态代码块--父类的无参构造方法--子类的非静态代码块--子类的有参构造方法--子类的普通方法。

  • 子类隐藏父类的成员变量,子类覆盖父类的方法
    父类代码如下:
 

子类代码如下:

 

测试类代码:

 

测试类执行结果图

通过执行结果可以看出,子类可以覆盖父类的同名方法,子类可以隐藏父类的同名成员变量,但是在子类转换为父类型时同名成员变量为父类的值。


相关概念如下:

隐藏和覆盖的规则

1.父类的实例变量和静态变量能被子类的同名变量隐藏
2.父类的静态方法被子类的同名静态方法隐藏
3.父类的实例方法被子类的同名实例方法覆盖
4.不能用子类的静态方法隐藏父类中同样标示(也就是返回值 名字 参数都一样)的实例方法
5.不能用子类的实例方法覆盖 父类中同样标示的静态方法
6.这点儿请注意,就是变量只会被隐藏 不会被覆盖 ,无论他是实例变量还是静态变量,而且子类的静态变量可以隐藏父类的实例变量,子类的实例变量可以隐藏父类的静态变量

小结

版权声明


相关文章:

  • java高手真经_编程基础卷2025-04-02 08:02:04
  • java8基础2025-04-02 08:02:04
  • 基础学java书籍2025-04-02 08:02:04
  • java基础流程图解2025-04-02 08:02:04
  • java调优基础2025-04-02 08:02:04
  • java基础6832025-04-02 08:02:04
  • java游戏编程基础2025-04-02 08:02:04
  • java nio基础2025-04-02 08:02:04
  • 济南java基础编程2025-04-02 08:02:04
  • java基础117讲2025-04-02 08:02:04