国庆中秋特辑(六)大学生常见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博客 翻到了两年前写文章,有了不一样的观点。 先说一样的想法吧:数据(输入)>>优化模型(处理)>>结果方案(输出)。优化是其中最重要的…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
