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

以下是 30 道大学生 Java 面试常见编程面试题和答案,包含完整代码:
- 什么是 Java 中的 main 方法?
答:main 方法是 Java 程序的入口点。它是一个特殊的方法,不需要被声明。当 Java 运行时系统执行一个 Java 程序时,它首先运行 main 方法。main 方法应该具有以下签名:public static void main(String[] args)。 - 如何在 Java 中创建一个新的对象?
答:在 Java 中,可以使用关键字"new"来创建一个新的对象。例如,要创建一个名为"myObject"的新对象,可以使用以下代码:
MyClass myObject = new MyClass();
- 什么是 Java 中的构造函数?
答:构造函数是一种特殊的方法,用于创建和初始化对象。它与类同名,并且没有返回类型。Java 会自动调用构造函数,当创建类的新对象时。
class MyClass { int a;MyClass() { a = 10; }
}
- 如何在 Java 中访问类的属性?
答:在 Java 中,可以使用点号(.)运算符来访问类的属性。例如,如果一个类有属性 name 和 age,可以这样访问:
MyClass obj = new MyClass();
obj.name = "John";
obj.age = 30;
- 什么是 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."); }
}
- 如何实现 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; }
}
- 什么是 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(); }
}
- 什么是 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对象,并调用了其方法和属性。
- 计算两个数之和
public class Sum { public static void main(String[] args) { int a = 10; int b = 20; int sum = a + b; System.out.println("两数之和为:" + sum); }
}
- 计算两个数之差
public class Difference { public static void main(String[] args) { int a = 10; int b = 20; int difference = a - b; System.out.println("两数之差为:" + difference); }
}
- 计算两个数之积
public class Product { public static void main(String[] args) { int a = 10; int b = 20; int product = a * b; System.out.println("两数之积为:" + product); }
}
- 计算两个数之商
public class Quotient { public static void main(String[] args) { int a = 10; int b = 20; int quotient = a / b; System.out.println("两数之商为:" + quotient); }
}
- 判断一个数是否为偶数
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; }
}
- 判断一个数是否为奇数
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; }
}
- 打印九九乘法表
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(); } }
}
- 替换字符串中的空格
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(" ", "_"); }
}
- 计算字符串中字符的数量
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(); }
}
- 判断字符串是否为回文字符串
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; }
}
- 题目:实现一个简单的 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(); } } } }
}
- 题目:实现一个 Java 类,该类有一个私有构造函数和一个公共静态方法,该方法返回该类的实例。
答案:
public class Singleton { private Singleton() { }public static Singleton getInstance() { return new Singleton(); }
}
- 题目:实现一个 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(); }
}
- 题目:实现一个 Java 接口,该接口有一个方法,该方法返回一个字符串,该字符串表示接口的实现。
答案:
public interface MyInterface { String getString();
}
- 题目:实现一个 Java 抽象类,该类有两个抽象方法和一个具体方法,该具体方法实现两个抽象方法。
答案:
public abstract class MyAbstractClass { public abstract void abstractMethod1(); public abstract void abstractMethod2();public void specificMethod() { abstractMethod1(); abstractMethod2(); }
}
- 题目:实现一个 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(); }
}
- 题目:实现一个 Java 类,该类有一个整数和一个方法,该方法将整数转换为字符串。
答案:
public class IntegerToString { private int num;public IntegerToString(int num) { this.num = num; }public String toString() { return Integer.toString(num); }
}
- 题目:实现一个 Java 类,该类有一个字符串和一个方法,该方法将字符串转换为整数。
答案:
public class StringToInteger { private String str;public StringToInteger(String str) { this.str = str; }public int toInteger() { return Integer.parseInt(str); }
}
- 题目:实现一个 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 的子字符串数组。然后,我们遍历并打印这些子字符串。
- 编写一个 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"); }
}
- 实现 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(); }
}
- 实现 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 面试常见编程面试题和答案,包含完整代码: 什么是 Java 中的 main 方法? 答:main 方法是 Java 程序的入口点。它是一个特殊的方法,不需要被声明。当 Java 运行时系统执行一个 Java 程序时&…...
Centos7 安装mysql 8.0.34
Centos7 安装mysql 8.0.34 准备工作 centos7 服务器 xshell 安装教程 安装并配置 在安装MySQL之前,我们应该确保系统已经更新到最新的软件包和安全补丁。打开终端,输入以下命令来更新系统 yum update为了方便安装MySQL,我们需要下载并…...
如何在 Google Earth 中创建轨迹、路线并制作动画
如何创建航迹 https://kurviger.de/en Google 地球飞行教程(天桥动画) 选择合适的点 (可调整视图快照)点击录制,依次点击图标即可...
蓝桥杯每日一题2023.9.30
蓝桥杯大赛历届真题 - C&C 大学 B 组 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 对于此题,首先想到了dfs进行一一找寻,注意每次不要将重复的算进去,故我们每次循环可以记录一个开始的位置,下一次到这个位置时,…...
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:前端主流框架(对某一方面技术完整的封装,是一套完善的解决方案) vue-cli搭建项目(官方提供脚手架) vue脚手架:是一套项目搭建的快捷方式,可以将项目中的依赖集成进来,生成统…...
MySQL索引:结构、语法、分类和优化
MySQL索引是数据库中非常关键的性能优化手段。它们提供了快速访问数据的方法,同时也可以极大地提高查询效率。本文将深入介绍MySQL索引的结构、语法、分类,以及如何使用Profile和EXPLAIN来优化查询性能,带有详细的实例演示。 索引结构 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农产品商城系统的设计与实现,前后端分离,文档 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 农产品列表 产品详情 个人中心 登陆界面 管…...
基于matlab创作简易表白代码
一、程序 以下是一个基于MATLAB的简单表白代码: % 表白代码 clc; % 清除命令行窗口 clear; % 清除所有变量 close all; % 关闭所有图形窗口 % 输入被表白者的名字 name input(请输入被表白者的名字:, s); % 显示表白信息 fprintf(\n); fprintf(亲爱的…...
pandas
一、pandas初级 安装matplotlib:pip install matplotlib 安装pandas:pip install pandas 本地C:\Users\Administrator\pip,在此目录配置清华园的远程下载 配置内容: [global] index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-ho…...
使用关键字interface来声明使用接口-PHP8知识详解
继承特性简化了对象、类的创建,增加了代码的可重用性。但是php8只支持单继承,如果想实现多继承,就需要使用接口。PHP8可以实现多个接口。 接口类通过关键字interface来声明,接口中不能声明变量,只能使用关键字const声明…...
计算机毕业设计 基于SSM的高校毕业论文管理系统小程序的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻…...
【Java 进阶篇】JDBC查询操作详解
在数据库编程中,查询是一项非常常见且重要的操作。JDBC(Java Database Connectivity)提供了丰富的API来执行各种类型的查询操作。本篇博客将详细介绍如何使用JDBC进行查询操作,包括连接数据库、创建查询语句、执行查询、处理结果集…...
我的企业证书是正常的但是下载应用app到手机提示无法安装“app名字”无法安装此app,因为无法验证其完整性解决方案
我的企业证书是正常的但是下载应用app到手机提示无法安装“app名字”无法安装此app,因为无法验证其完整性解决方案 首先,确保您从可信任的来源下载并安装企业开发者签名过的应用程序。如果您不确定应用程序的来源,建议您联系应用程序提供者…...
【数据结构】排序(2)—冒泡排序 快速排序
目录 一. 冒泡排序 基本思想 代码实现 时间和空间复杂度 稳定性 二. 快速排序 基本思想 代码实现 hoare法 挖坑法 前后指针法 时间和空间复杂度 稳定性 一. 冒泡排序 基本思想 冒泡排序是一种交换排序。两两比较数组元素,如果是逆序(即排列顺序与排序后…...
Redis与分布式-分布式锁
接上文 Redis与分布式-集群搭建 1.分布式锁 为了解决上述问题,可以利用分布式锁来实现。 重新复制一份redis,配置文件都是刚下载时候的不用更改,然后启动redis服务和redis客户。 redis存在这样的命令:和set命令差不多࿰…...
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博客 翻到了两年前写文章,有了不一样的观点。 先说一样的想法吧:数据(输入)>>优化模型(处理)>>结果方案(输出)。优化是其中最重要的…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
