国庆中秋特辑(六)大学生常见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博客 翻到了两年前写文章,有了不一样的观点。 先说一样的想法吧:数据(输入)>>优化模型(处理)>>结果方案(输出)。优化是其中最重要的…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
