当前位置: 首页 > news >正文

国庆中秋特辑(六)大学生常见30道宝藏编程面试题

在这里插入图片描述

以下是 30 道大学生 Java 面试常见编程面试题和答案,包含完整代码:

  1. 什么是 Java 中的 main 方法?
    答:main 方法是 Java 程序的入口点。它是一个特殊的方法,不需要被声明。当 Java 运行时系统执行一个 Java 程序时,它首先运行 main 方法。main 方法应该具有以下签名:public static void main(String[] args)。
  2. 如何在 Java 中创建一个新的对象?
    答:在 Java 中,可以使用关键字"new"来创建一个新的对象。例如,要创建一个名为"myObject"的新对象,可以使用以下代码:
MyClass myObject = new MyClass();  
  1. 什么是 Java 中的构造函数?
    答:构造函数是一种特殊的方法,用于创建和初始化对象。它与类同名,并且没有返回类型。Java 会自动调用构造函数,当创建类的新对象时。
class MyClass {  int a;MyClass() {  a = 10;  }  
}
  1. 如何在 Java 中访问类的属性?
    答:在 Java 中,可以使用点号(.)运算符来访问类的属性。例如,如果一个类有属性 name 和 age,可以这样访问:
MyClass obj = new MyClass();  
obj.name = "John";  
obj.age = 30;  
  1. 什么是 Java 中的访问修饰符?
    答:访问修饰符是用于限制其他类对类中成员(属性和方法)访问的修饰符。Java 中的访问修饰符有四种:public、protected、default(即不加任何修饰符)和 private。
// public  
public class PublicClass {  public int publicProperty = 10;public void publicMethod() {  System.out.println("This is a public method.");  }  
}
// protected  
protected class ProtectedClass {  protected int protectedProperty = 20;protected void protectedMethod() {  System.out.println("This is a protected method.");  }  
}
// default (no modifier)  
class DefaultClass {  int defaultProperty = 30;void defaultMethod() {  System.out.println("This is a default method.");  }  
}
// private  
class PrivateClass {  private int privateProperty = 40;private void privateMethod() {  System.out.println("This is a private method.");  }  
}
  1. 如何实现 Java 中的单例模式?
    答:单例模式是一种设计模式,确保一个类只有一个实例。可以使用懒汉式(线程安全)和饿汉式(线程不安全)来实现单例模式。
// 懒汉式 (线程安全)  
class Singleton {  private static Singleton instance;private Singleton() {  // private constructor to prevent instantiation  }public static synchronized Singleton getInstance() {  if (instance == null) {  instance = new Singleton();  }  return instance;  }  
}
// 饿汉式 (线程不安全)  
class Singleton {  private static final Singleton instance = new Singleton();private Singleton() {  // private constructor to prevent instantiation  }public static Singleton getInstance() {  return instance;  }  
}
  1. 什么是 Java 中的静态变量和静态方法?
    答:静态变量和静态方法属于类,而不是类的实例。静态变量在类加载时分配内存,并且只分配一次,直到程序结束才被释放。静态方法可以直接通过类名来调用,不需要创建类的实例。
class MyClass {  static int staticProperty = 10;static void staticMethod() {  System.out.println("This is a static method.");  }  
}
public class Main {  public static void main(String[] args) {  System.out.println("Static property: " + MyClass.staticProperty);  MyClass.staticMethod();  }  
}
  1. 什么是 Java 中的继承?
    答:继承是 Java 面向对象编程中的一种特性,它允许一个类(子类)继承另一个类(父类)的属性和方法。
    Java 中的继承是一种代码复用机制,它允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以扩展父类的功能,也可以根据自己的需求覆盖或新增方法。继承的关键字是"extends"。
    以下是一个简单的 Java 继承代码示例:
// 父类  
class Animal {  String name;// 父类构造方法  public Animal(String name) {  this.name = name;  }// 父类方法  public void makeSound() {  System.out.println(name + " makes a sound");  }  
}
// 子类,继承自 Animal  
class Dog extends Animal {  String breed;// 子类构造方法,调用父类构造方法  public Dog(String name, String breed) {  super(name); // 调用父类构造方法  this.breed = breed;  }// 子类方法,覆盖父类方法  @Override  public void makeSound() {  System.out.println(name + " barks");  }// 子类新增方法  public void doTrick() {  System.out.println(name + " does a trick");  }  
}
public class Main {  public static void main(String[] args) {  Dog myDog = new Dog("Buddy", "Golden Retriever");  myDog.makeSound(); // 输出:Buddy barks  myDog.doTrick(); // 输出:Buddy does a trick  }  
}

在这个示例中,我们定义了一个父类Animal和一个子类Dog,子类继承了父类的属性和方法。我们创建了一个Dog对象,并调用了其方法和属性。

  1. 计算两个数之和
public class Sum {  public static void main(String[] args) {  int a = 10;  int b = 20;  int sum = a + b;  System.out.println("两数之和为:" + sum);  }  
}
  1. 计算两个数之差
public class Difference {  public static void main(String[] args) {  int a = 10;  int b = 20;  int difference = a - b;  System.out.println("两数之差为:" + difference);  }  
}
  1. 计算两个数之积
public class Product {  public static void main(String[] args) {  int a = 10;  int b = 20;  int product = a * b;  System.out.println("两数之积为:" + product);  }  
}
  1. 计算两个数之商
public class Quotient {  public static void main(String[] args) {  int a = 10;  int b = 20;  int quotient = a / b;  System.out.println("两数之商为:" + quotient);  }  
}
  1. 判断一个数是否为偶数
public class EvenNumber {  public static void main(String[] args) {  int number = 20;  if (isEven(number)) {  System.out.println(number + " 是偶数");  } else {  System.out.println(number + " 不是偶数");  }  }public static boolean isEven(int number) {  return number % 2 == 0;  }  
}
  1. 判断一个数是否为奇数
public class OddNumber {  public static void main(String[] args) {  int number = 20;  if (isOdd(number)) {  System.out.println(number + " 是奇数");  } else {  System.out.println(number + " 不是奇数");  }  }public static boolean isOdd(int number) {  return number % 2!= 0;  }  
}
  1. 打印九九乘法表
public class MultiplicationTable {  public static void main(String[] args) {  for (int i = 1; i <= 9; i++) {  for (int j = 1; j <= i; j++) {  System.out.print(j + " * " + i + " = " + (i * j) + "\t");  }  System.out.println();  }  }  
}
  1. 替换字符串中的空格
public class StringReplacer {  public static void main(String[] args) {  String input = "Hello World";  String output = replaceSpace(input);  System.out.println(output);  }public static String replaceSpace(String input) {  return input.replace(" ", "_");  }  
}
  1. 计算字符串中字符的数量
public class StringCounter {  public static void main(String[] args) {  String input = "Hello World";  int count = countCharacters(input);  System.out.println("字符数量:" + count);  }public static int countCharacters(String input) {  return input.length();  }  
}
  1. 判断字符串是否为回文字符串
public class Palindrome {  public static void main(String[] args) {  String input = "madam";  if (isPalindrome(input)) {  System.out.println(input + " 是回文字符串");  } else {  System.out.println(input + " 不是回文字符串}    }    public static boolean isPalindrome(String input) {    int left = 0;    int right = input.length() - 1;    while (left < right) {    if (input.charAt(left)!= input.charAt(right)) {    return false;    }    left++;    right--;    }    return true;    }    
}
  1. 题目:实现一个简单的 Java 多线程程序。
    答案:
public class MultiThreading {  public static void main(String[] args) {  Thread t1 = new Thread(new PrintName("Thread-1"));  Thread t2 = new Thread(new PrintName("Thread-2"));  t1.start();  t2.start();  }static class PrintName implements Runnable {  private String name;public PrintName(String name) {  this.name = name;  }@Override  public void run() {  for (int i = 0; i < 10; i++) {  System.out.println(name + " - " + i);  try {  Thread.sleep(100);  } catch (InterruptedException e) {  e.printStackTrace();  }  }  }  }  
}
  1. 题目:实现一个 Java 类,该类有一个私有构造函数和一个公共静态方法,该方法返回该类的实例。
    答案:
public class Singleton {  private Singleton() {  }public static Singleton getInstance() {  return new Singleton();  }  
}
  1. 题目:实现一个 Java 类,该类有一个字符串和一个方法,该方法返回字符串的反转字符串。
    答案:
public class StringReverse {  private String str;public StringReverse(String str) {  this.str = str;  }public String reverse() {  StringBuilder sb = new StringBuilder();  for (int i = str.length() - 1; i >= 0; i--) {  sb.append(str.charAt(i));  }  return sb.toString();  }  
}
  1. 题目:实现一个 Java 接口,该接口有一个方法,该方法返回一个字符串,该字符串表示接口的实现。
    答案:
public interface MyInterface {  String getString();  
}
  1. 题目:实现一个 Java 抽象类,该类有两个抽象方法和一个具体方法,该具体方法实现两个抽象方法。
    答案:
public abstract class MyAbstractClass {  public abstract void abstractMethod1();  public abstract void abstractMethod2();public void specificMethod() {  abstractMethod1();  abstractMethod2();  }  
}
  1. 题目:实现一个 Java 类,该类有一个字符串和一个方法,该方法将字符串转换为大写。
    答案:
public class StringToUpperCase {  private String str;public StringToUpperCase(String str) {  this.str = str;  }public String toUpperCase() {  StringBuilder sb = new StringBuilder();  for (int i = 0; i < str.length(); i++) {  sb.append(Character.toUpperCase(str.charAt(i)));  }  return sb.toString();  }  
}
  1. 题目:实现一个 Java 类,该类有一个整数和一个方法,该方法将整数转换为字符串。
    答案:
public class IntegerToString {  private int num;public IntegerToString(int num) {  this.num = num;  }public String toString() {  return Integer.toString(num);  }  
}
  1. 题目:实现一个 Java 类,该类有一个字符串和一个方法,该方法将字符串转换为整数。
    答案:
public class StringToInteger {  private String str;public StringToInteger(String str) {  this.str = str;  }public int toInteger() {  return Integer.parseInt(str);  }  
}
  1. 题目:实现一个 Java 类,该类有一个字符串和一个方法,该方法将字符串分割成子字符串数组。
    答案:
    下面是一个实现这个需求的 Java 类:
public class StringSplitter {private String str;public StringSplitter(String str) {  this.str = str;  }public String[] split(int maxLength) {  if (maxLength <= 0) {  throw new IllegalArgumentException("Max length must be greater than 0");  }String[] substrings = new String[str.length() / maxLength];  int index = 0;for (int i = 0; i < str.length(); i += maxLength) {  substrings[index++] = str.substring(i, Math.min(i + maxLength, str.length()));  }return substrings;  }public static void main(String[] args) {  StringSplitter splitter = new StringSplitter("This is a test string");  String[] substrings = splitter.split(4);for (String substring : substrings) {  System.out.println(substring);  }  }  
}

这个类有一个字符串属性 str 和一个 split 方法,该方法接受一个整数参数 maxLength,用于指定子字符串的最大长度。split 方法将字符串分割成子字符串数组,并返回该数组。在 main 方法中,我们创建了一个 StringSplitter 对象,并使用 split 方法将字符串分割成最大长度为 4 的子字符串数组。然后,我们遍历并打印这些子字符串。

  1. 编写一个 Java 类,实现克隆(clone)功能。
public class Cloneable {  private int id;  private String name;public Cloneable(int id, String name) {  this.id = id;  this.name = name;  }public Object clone() throws CloneNotSupportedException {  return super.clone();  }@Override  protected void finalize() throws Throwable {  super.finalize();  System.out.println("Cloneable object " + this.id + " has been cloned");  }  
}
  1. 实现 Java 中的深拷贝和浅拷贝。
public class Cloneable {  private int id;  private String name;public Cloneable(int id, String name) {  this.id = id;  this.name = name;  }public Object deepClone() {  if (this instanceof Cloneable) {  try {  return (Cloneable) super.clone();  } catch (CloneNotSupportedException e) {  throw new RuntimeException("Failed to deep clone", e);  }  }  return null;  }public Object shallowClone() {  return super.clone();  }  
}
  1. 实现 Java 中的抽象类和抽象方法。
public abstract class Animal {  private String name;public abstract void makeSound();public Animal(String name) {  this.name = name;  }public String getName() {  return name;  }  
}
public class Dog extends Animal {  private String breed;public Dog(String name, String breed) {  super(name);  this.breed = breed;  }@Override  public void makeSound() {  System.out.println(name + " barks");  }public String getBreed() {  return breed;  }  
}

相关文章:

国庆中秋特辑(六)大学生常见30道宝藏编程面试题

以下是 30 道大学生 Java 面试常见编程面试题和答案&#xff0c;包含完整代码&#xff1a; 什么是 Java 中的 main 方法&#xff1f; 答&#xff1a;main 方法是 Java 程序的入口点。它是一个特殊的方法&#xff0c;不需要被声明。当 Java 运行时系统执行一个 Java 程序时&…...

Centos7 安装mysql 8.0.34

Centos7 安装mysql 8.0.34 准备工作 centos7 服务器 xshell 安装教程 安装并配置 在安装MySQL之前&#xff0c;我们应该确保系统已经更新到最新的软件包和安全补丁。打开终端&#xff0c;输入以下命令来更新系统 yum update为了方便安装MySQL&#xff0c;我们需要下载并…...

如何在 Google Earth 中创建轨迹、路线并制作动画

如何创建航迹 https://kurviger.de/en Google 地球飞行教程(天桥动画) 选择合适的点 &#xff08;可调整视图快照&#xff09;点击录制&#xff0c;依次点击图标即可...

蓝桥杯每日一题2023.9.30

蓝桥杯大赛历届真题 - C&C 大学 B 组 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 对于此题&#xff0c;首先想到了dfs进行一一找寻&#xff0c;注意每次不要将重复的算进去&#xff0c;故我们每次循环可以记录一个开始的位置&#xff0c;下一次到这个位置时&#xff0c;…...

springboot和vue:十、vue2和vue3的差异+组件间的传值

首先用vue-cli创建一个vue2的项目。 vue2和vue3的差异 main.js的语法有所差别。 vue2是 import Vue from vue import App from ./App.vuenew Vue({render: h > h(App), }).$mount(#app)vue3是 import { createApp } from vue import App from ./App.vuecreateApp(App).…...

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)

文章目录 新建数据库新建表 增、删、改、查select 查找insert 添加delete 删除update 修改where 扩展 < > < > ! <> 比较运算符and or 逻辑运算符between...and... 介于..和..之间in 包含like 模糊查询is null 为空的 查询扩展order by 排序limit start coun…...

vue-cli搭建过程(HBuilder X搭建)

vue.js:前端主流框架&#xff08;对某一方面技术完整的封装&#xff0c;是一套完善的解决方案&#xff09; vue-cli搭建项目&#xff08;官方提供脚手架&#xff09; vue脚手架&#xff1a;是一套项目搭建的快捷方式&#xff0c;可以将项目中的依赖集成进来&#xff0c;生成统…...

MySQL索引:结构、语法、分类和优化

MySQL索引是数据库中非常关键的性能优化手段。它们提供了快速访问数据的方法&#xff0c;同时也可以极大地提高查询效率。本文将深入介绍MySQL索引的结构、语法、分类&#xff0c;以及如何使用Profile和EXPLAIN来优化查询性能&#xff0c;带有详细的实例演示。 索引结构 MySQ…...

Vue中添加旋转动画

// transform: scale(1.2) rotate(-180deg); 放大 旋转 // transform: rotate(-180deg); 旋转 <i class"el-icon-close"></i>i {font-size: 20px;line-height: 24px;transition: transform 0.2s linear;}i:hover {color: red;transform-origin: cen…...

基于SSM农产品商城系统

基于SSM农产品商城系统的设计与实现&#xff0c;前后端分离&#xff0c;文档 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 农产品列表 产品详情 个人中心 登陆界面 管…...

基于matlab创作简易表白代码

一、程序 以下是一个基于MATLAB的简单表白代码&#xff1a; % 表白代码 clc; % 清除命令行窗口 clear; % 清除所有变量 close all; % 关闭所有图形窗口 % 输入被表白者的名字 name input(请输入被表白者的名字&#xff1a;, s); % 显示表白信息 fprintf(\n); fprintf(亲爱的…...

pandas

一、pandas初级 安装matplotlib:pip install matplotlib 安装pandas:pip install pandas 本地C:\Users\Administrator\pip&#xff0c;在此目录配置清华园的远程下载 配置内容&#xff1a; [global] index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-ho…...

使用关键字interface来声明使用接口-PHP8知识详解

继承特性简化了对象、类的创建&#xff0c;增加了代码的可重用性。但是php8只支持单继承&#xff0c;如果想实现多继承&#xff0c;就需要使用接口。PHP8可以实现多个接口。 接口类通过关键字interface来声明&#xff0c;接口中不能声明变量&#xff0c;只能使用关键字const声明…...

计算机毕业设计 基于SSM的高校毕业论文管理系统小程序的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb;…...

【Java 进阶篇】JDBC查询操作详解

在数据库编程中&#xff0c;查询是一项非常常见且重要的操作。JDBC&#xff08;Java Database Connectivity&#xff09;提供了丰富的API来执行各种类型的查询操作。本篇博客将详细介绍如何使用JDBC进行查询操作&#xff0c;包括连接数据库、创建查询语句、执行查询、处理结果集…...

我的企业证书是正常的但是下载应用app到手机提示无法安装“app名字”无法安装此app,因为无法验证其完整性解决方案

我的企业证书是正常的但是下载应用app到手机提示无法安装“app名字”无法安装此app&#xff0c;因为无法验证其完整性解决方案 首先&#xff0c;确保您从可信任的来源下载并安装企业开发者签名过的应用程序。如果您不确定应用程序的来源&#xff0c;建议您联系应用程序提供者…...

【数据结构】排序(2)—冒泡排序 快速排序

目录 一. 冒泡排序 基本思想 代码实现 时间和空间复杂度 稳定性 二. 快速排序 基本思想 代码实现 hoare法 挖坑法 前后指针法 时间和空间复杂度 稳定性 一. 冒泡排序 基本思想 冒泡排序是一种交换排序。两两比较数组元素&#xff0c;如果是逆序(即排列顺序与排序后…...

Redis与分布式-分布式锁

接上文 Redis与分布式-集群搭建 1.分布式锁 为了解决上述问题&#xff0c;可以利用分布式锁来实现。 重新复制一份redis&#xff0c;配置文件都是刚下载时候的不用更改&#xff0c;然后启动redis服务和redis客户。 redis存在这样的命令&#xff1a;和set命令差不多&#xff0…...

docker安装nginx详解

创建html的挂载目录docker volume create nginx8020 创建conf的挂载目录mkdir -p /opt/nginx/conf 拉取镜像docker pull nginx 初始化挂载目录的配置文件docker run --rm --name nginx-short -p 8020:80 -d nginx docker cp nginx-short:/etc/nginx/nginx.conf /opt/nginx/…...

优化思考二

优化思考一_云湖在成长的博客-CSDN博客 翻到了两年前写文章&#xff0c;有了不一样的观点。 先说一样的想法吧&#xff1a;数据&#xff08;输入&#xff09;>>优化模型&#xff08;处理&#xff09;>>结果方案&#xff08;输出&#xff09;。优化是其中最重要的…...

Pixel Mind Decoder 异常情绪监测:在系统日志中定位用户不满信号

Pixel Mind Decoder 异常情绪监测&#xff1a;在系统日志中定位用户不满信号 1. 运维场景中的情绪危机 你有没有遇到过这种情况&#xff1a;系统运行一切正常&#xff0c;监控指标全绿&#xff0c;但用户满意度却在悄悄下滑&#xff1f;等到收到大量投诉时&#xff0c;问题已…...

Pixel Couplet Gen 生成效果对比分析:不同参数下的对联质量评估

Pixel Couplet Gen 生成效果对比分析&#xff1a;不同参数下的对联质量评估 1. 引言&#xff1a;当AI遇上传统对联 春节贴对联是中国延续千年的文化传统&#xff0c;但创作一副既工整又有新意的对联并非易事。Pixel Couplet Gen作为一款AI对联生成工具&#xff0c;通过调整Te…...

nli-distilroberta-base参数解析与调优指南:关键配置项详解

nli-distilroberta-base参数解析与调优指南&#xff1a;关键配置项详解 1. 引言 如果你正在使用nli-distilroberta-base模型进行自然语言推理任务&#xff0c;可能会遇到这样的困惑&#xff1a;为什么同样的模型在不同机器上运行速度差异这么大&#xff1f;为什么有时候推理结…...

如何高效解决网页视频下载难题:VideoDownloadHelper智能解析工具全解析

如何高效解决网页视频下载难题&#xff1a;VideoDownloadHelper智能解析工具全解析 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 在数字化内…...

洛雪音乐音源修复实战指南:从零开始的插件化解决方案

洛雪音乐音源修复实战指南&#xff1a;从零开始的插件化解决方案 【免费下载链接】New_lxmusic_source 六音音源修复版 项目地址: https://gitcode.com/gh_mirrors/ne/New_lxmusic_source 当你点击播放按钮却只看到加载动画无限循环&#xff0c;当搜索结果永远停留在&qu…...

用Python的igraph和leidenalg搞定知识图谱布局:一个科研领域的可视化实战

科研知识图谱实战&#xff1a;用PythonLeiden算法揭示学科交叉规律 当你在文献海洋中寻找研究方向时&#xff0c;是否曾被复杂的学科交叉关系困扰&#xff1f;传统的关键词共现分析已经不能满足现代科研的需求。本文将带你用Python的igraph和leidenalg构建一个能自动识别学科社…...

OBS多平台直播同步解决方案:从配置到优化的完整指南

OBS多平台直播同步解决方案&#xff1a;从配置到优化的完整指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 在当今内容创作领域&#xff0c;多平台同步直播已成为扩大受众覆盖的关键…...

万象视界灵坛惊艳案例:浅蓝格点背景中生成的‘同步率’进度条动态响应过程

万象视界灵坛惊艳案例&#xff1a;浅蓝格点背景中生成的"同步率"进度条动态响应过程 1. 效果展示概述 在视觉识别领域&#xff0c;传统界面往往显得单调乏味。万象视界灵坛通过创新的像素风格设计&#xff0c;将复杂的语义对齐过程转化为一场视觉盛宴。本次展示的核…...

Phi-4-mini-reasoning企业落地案例:集成至内部知识库的逻辑问答模块

Phi-4-mini-reasoning企业落地案例&#xff1a;集成至内部知识库的逻辑问答模块 1. 项目背景与需求 企业内部知识库系统通常面临一个共同挑战&#xff1a;员工在查找专业问题时&#xff0c;往往需要花费大量时间筛选信息&#xff0c;特别是涉及数学计算、逻辑推理等需要多步分…...

QwQ-32B多模态应用实践:文本与图像联合处理

QwQ-32B多模态应用实践&#xff1a;文本与图像联合处理 最近在折腾AI模型的时候&#xff0c;发现很多朋友对多模态应用特别感兴趣。所谓多模态&#xff0c;简单说就是让AI能同时理解文字和图片&#xff0c;甚至还能把两者结合起来处理。这听起来挺酷的&#xff0c;但实际操作起…...