Java刷题面试系列习题(四)

本文涉及的产品
云解析DNS-重点域名监控,免费拨测 20万次(价值200元)
简介: Java刷题面试系列习题(四)

Java题目练习


⭕题目一:实现抽象方法


在这里插入图片描述


🌟代码演示

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // Sub是需要你定义的子类
        Base base = new Sub();

        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            base.setX(x);
            base.setY(y);
            System.out.println(base.calculate());
        }
    }

}

abstract class Base {

    private int x;
    private int y;

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    public int calculate() {
        if (avg() == 0) {
            return 0;
        } else {
            return sum() / avg();
        }
    }

    /**
     * 返回x和y的和
     */
    public abstract int sum();

    /**
     * 返回x和y的平均值
     */
    public abstract int avg();

}

class Sub extends Base {
    /**
     * 返回x和y的和
     */
    @Override
    public int sum() {


        return getX()+getY();
    }

    /**
     * 返回x和y的平均值
     */
    @Override
    public int avg() {
        return (getX()+getY())/2;
    }

    //write your code here......


}

💯思路解析

       本题目思路是:"补充逻辑增加两数相加即可"

⭕题目二:实现接口


在这里插入图片描述


🌟代码演示

import java.util.Scanner;
public class Main {

    public static void main(String[] args) {
        Comparator comparator = new ComparatorImpl();

        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            System.out.println(comparator.max(x, y));
        }
    }

}

interface Comparator {
    /**
     * 返回两个整数中的最大值
     */
    int max(int x, int y);
}

//write your code here......
class ComparatorImpl implements Comparator{
    @Override
    public int max(int x, int y) {
        return x > y ? x:y;
    }
}

💯思路解析

       本题目思路是:"补充实现类增加判断大小的逻辑即可"

⭕题目三:重写父类方法


在这里插入图片描述


🌟代码演示

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            Sub sub = new Sub(x, y);
            System.out.println(sub.sum());
        }
    }

}

class Base {

    private int x;
    private int y;

    public Base(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public final int getY() {
        return y;
    }

    public final int sum() {
        return getX() + getY();
    }

}

class Sub extends Base {

    public Sub(int x, int y) {
        super(x, y);
    }

    //write your code here......

    @Override
    public int getX() {
        return super.getX()*10;
    }
    }

💯思路解析

              本题目思路是:"重写方法即可"

⭕题目四:创建单例对象


在这里插入图片描述


🌟代码演示

public class Main {

    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        System.out.println(s1 == s2);
    }

}

class Singleton {

    private static Singleton instance;

    private Singleton() {

    }

    //write your code here......

    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }


}

💯思路解析

              本题目思路是:"就是经典的懒汉设计模式"

⭕题目五:动态字符串


在这里插入图片描述


🌟代码演示

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        StringBuilder sb=new StringBuilder(str);
        for(int i=sb.length()-3;i>=0;i-=3){
               sb.insert(i,",");
        } 
        System.out.print(sb.toString());
    }
}

💯思路解析

              本题目思路是:"输入字符串后转为 StringBuilder, StringBuilder有一个insert方法,可以按照索引插入指定的内容"

⭕题目六: 统计字符串中字母出现次数


在这里插入图片描述


🌟代码演示

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String string = "H e l l o ! n o w c o d e r";
        Scanner scanner = new Scanner(System.in);
        String word = scanner.next();
        
        int count=0;
        for (int i = 0; i < string.length(); i++) {
            if(string.charAt(i)==word.charAt(0)){
                count++;
            }
            
        }
        System.out.println(count);
    }
}

💯思路解析

              本题目思路是:"先统计原来字符串的长度,输入字符串后进行循环统计,原来字符串使用charAt进行一个一个比对即可"

⭕题目七: 十进制数转二进制数


在这里插入图片描述


🌟代码演示

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a=scanner.nextInt();
        System.out.println(Integer.toString(a,2));
    }
}

💯思路解析

              本题目思路是:"我们可以使用Integer类的toString()方法将十进制数转换为二进制数。此方法有两个参数,第一个参数是十进制数,第二个参数是我们要转换的基数。对于二进制,基数为2"

⭕题目八: 掷骰子游戏


在这里插入图片描述


🌟代码演示

import java.util.Random;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int seed = scanner.nextInt();
            Random random = new Random(seed);

            //write your code here......
            int a=random.nextInt(6)+1;
            System.out.println(a);
        }
    }
}

💯思路解析

     本题目思路是:

          " 产生随机数的公式为": 
          
                                  产生[a,b]范围的随机数

                         公式:
                                Random r=new Random(); 
         
                                int r1=r.nextInt(b-a+1)+a;

作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

目录
相关文章
|
3月前
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
6月前
|
缓存 Java 关系型数据库
2025 年最新华为 Java 面试题及答案,全方位打造面试宝典
Java面试高频考点与实践指南(150字摘要) 本文系统梳理了Java面试核心考点,包括Java基础(数据类型、面向对象特性、常用类使用)、并发编程(线程机制、锁原理、并发容器)、JVM(内存模型、GC算法、类加载机制)、Spring框架(IoC/AOP、Bean生命周期、事务管理)、数据库(MySQL引擎、事务隔离、索引优化)及分布式(CAP理论、ID生成、Redis缓存)。同时提供华为级实战代码,涵盖Spring Cloud Alibaba微服务、Sentinel限流、Seata分布式事务,以及完整的D
359 1
|
5月前
|
缓存 Java API
Java 面试实操指南与最新技术结合的实战攻略
本指南涵盖Java 17+新特性、Spring Boot 3微服务、响应式编程、容器化部署与数据缓存实操,结合代码案例解析高频面试技术点,助你掌握最新Java技术栈,提升实战能力,轻松应对Java中高级岗位面试。
475 0
|
5月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
251 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
3月前
|
算法 Java
50道java基础面试题
50道java基础面试题
|
6月前
|
算法 架构师 Java
Java 开发岗及 java 架构师百度校招历年经典面试题汇总
以下是百度校招Java岗位面试题精选摘要(150字): Java开发岗重点关注集合类、并发和系统设计。HashMap线程安全可通过Collections.synchronizedMap()或ConcurrentHashMap实现,后者采用分段锁提升并发性能。负载均衡算法包括轮询、加权轮询和最少连接数,一致性哈希可均匀分布请求。Redis持久化有RDB(快照恢复快)和AOF(日志更安全)两种方式。架构师岗涉及JMM内存模型、happens-before原则和无锁数据结构(基于CAS)。
180 5
|
6月前
|
安全 Java API
2025 年 Java 校招面试常见问题及详细答案汇总
本资料涵盖Java校招常见面试题,包括Java基础、并发编程、JVM、Spring框架、分布式与微服务等核心知识点,并提供详细解析与实操代码,助力2025校招备战。
311 1
|
5月前
|
缓存 Java 关系型数据库
Java 面试经验总结与最新 BAT 面试资料整理含核心考点的 Java 面试经验及最新 BAT 面试资料
本文汇总了Java面试经验与BAT等大厂常见面试考点,涵盖心态准备、简历优化、面试技巧及Java基础、多线程、JVM、数据库、框架等核心技术点,并附实际代码示例,助力高效备战Java面试。
195 0
|
5月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
269 0