java基础 笔试题

java基础 笔试题概要 最近在求职找工作 从网上找了一些 Java 笔试题来做 很多都是基础题 其中包含了一些关键的知识点 如父子类执行顺序等问题 题目来源参考博客 题目 1 以指定编码输出字符串 如 utf 8 代码实现如下 2 给定整型数组用冒泡法升序排序 代码实现如下 3 求阶乘 这里采用递归求解 也可以通过循环求解 代码实现如下 4 给定字母字符串按每个字母升序排序 代码实现如下 5

大家好,我是讯享网,很高兴认识大家。



概要

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

题目

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

 
讯享网 

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

讯享网

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

 

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

讯享网

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

 

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

 

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

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

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

 

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

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

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

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

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

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

子类代码如下:

 

测试类代码:

 

测试类执行结果图

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


相关概念如下:

隐藏和覆盖的规则

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

小结

小讯
上一篇 2024-12-27 13:46
下一篇 2024-12-30 12:24

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/431.html