国庆中秋特辑(六)大学生常见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博客 翻到了两年前写文章,有了不一样的观点。 先说一样的想法吧:数据(输入)>>优化模型(处理)>>结果方案(输出)。优化是其中最重要的…...
大模型微调概览
文章目录 微调 和 高效微调高效微调技术方法概述高效微调方法一:LoRA高效微调方法二: Prefix Tuning高效微调方法三: Prompt Tuning高效微调方法四: P-Tuning v2基于强化学习的进阶微调方法RLHF 训练流程微调 和 高效微调 微调,Fine-Tuning, 一般指全参数的微调(全量微调),…...
利用norm.ppfnorm.interval分别计算正态置信区间[实例]
scipy.stats.norm.ppf用于计算正态分布的累积分布函数CDF的逆函数,也称为百分位点函数。它的作用是根据给定的概率值,计算对应的随机变量值。scipy.stats.norm.interval:用于计算正态分布的置信区间,可指定均值和标准差。scipy.st…...
计算机网络各层设备
计算机网络通常被分为七层,每一层都有对应的设备。以下是各层设备的简要介绍: 物理层(Physical Layer):负责传输二进制数据位流的物理媒体和设备,例如网线、光纤、中继器、集线器等。 数据链路层…...
java this用法
在Java中,this是一个关键字,表示当前对象。它可以用来引用当前对象的实例变量、实例方法或者调用当前对象的构造方法。在本文中,我们将深入探讨Java中this关键字的用法。 1. 引用当前对象的实例变量 在Java中,this关键字可以用来…...
【AI视野·今日NLP 自然语言处理论文速览 第四十六期】Tue, 3 Oct 2023
AI视野今日CS.NLP 自然语言处理论文速览 Tue, 3 Oct 2023 (showing first 100 of 110 entries) Totally 100 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Its MBR All the Way Down: Modern Generation Techniques Through the …...
Unity ddx与ddy
有关Unity的dx与dy的概念 引用的文章 1link 2link 3link 4link 有关概念 我们知道在光栅化的时刻,GPUs会在同一时刻并行运行很多Fragment Shader,但是并不是一个pixel一个pixel去执行的,而是将其组织在2x2的一组pixels分块中,…...
bootstrap.xml 和applicaiton.properties和applicaiton.yml的区别和联系
当谈到Spring Boot应用程序的配置时,有三个关键文件经常被提到:bootstrap.xml、application.properties和application.yml。这些文件在应用程序的不同阶段起着不同的作用,并在配置应用程序属性时有一些区别和联系。本文将探讨这些文件的作用、…...
基于被囊群优化的BP神经网络(分类应用) - 附代码
基于被囊群优化的BP神经网络(分类应用) - 附代码 文章目录 基于被囊群优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.被囊群优化BP神经网络3.1 BP神经网络参数设置3.2 被囊群算法应用 4.测试结果&#x…...
我的第一个react.js 的router工程
react.js 开发的时候,都是针对一个页面的,多个页面就要用Router了,本文介绍我在vscode 下的第一个router 工程。 我在学习react.js 前端开发,学到router 路由的时候有点犯难了。经过1-2天的努力,终于完成了第一个工程…...
XXPermissions权限请求框架
官网 项目地址:Github博文地址:一句代码搞定权限请求,从未如此简单 框架亮点 一马当先:首款适配 Android 13 的权限请求框架简洁易用:采用链式调用的方式,使用只需一句代码体积感人:功能在同类…...
眼科医院网站设计怎么做/天津优化网络公司的建议
首先我们打开一个测试用的文档。 然后,如果我们需要隐藏某一列,则选中这一列。 在【开始】选项卡的“单元格”组中单击【格式】按钮 在打开的下拉菜单中选择【隐藏和取消隐藏】,根据下级菜单中的相关命令来进行行列的隐藏操作。 选择【隐藏行…...
上海做网站的费用/站长之家是什么
C是一种编程语言,但又不是一种单一的编程语言,它可以包含以下四种子语言,也即C的四个组成部分: 1、C部分。C语言的基本语法,内置类型、预处理、数组、指针等。 2、面向对象部分。类,封装、继承、多态、虚…...
怎么选择合肥网站建设/福州百度快速优化
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid1811 思路:先处理‘‘,全部合并为同一个节点,然后在拓扑排序就可以了。。。 拓扑排序知识: *如果一次入队入度为零的点大于1则说明拓扑排序序列不唯一*如果排序的…...
网站推广预算/网址最全的浏览器
ThinkPHP3.2判断是否为手机端访问并跳转到另一个模块的方法 目录结构 公共模块Common,Home模块,Mobile模块配置Application/Common/Conf/config.php文件 MODULE_ALLOW_LIST > Home,Mobile接下来配置Application/Common/Common/function.php文件 添加…...
wordpress文章指定数量/上海优化外包
当前位置:我的异常网 Java Web开发 插入数据库错误插入数据库错误www.myexceptions.net 网友分享于:2013-08-03 浏览:6次插入数据库异常往mysql里面的表里插数据,表里的字段见下面定义的这一片,下面的代码是往数据库里插得jsp&…...
全国网站制作公司排名/网络营销的六大特征
额的本本上两个版本不一样的XP,早就想卸载掉一个,最头疼的是两个XP都在C盘,搞的C盘好乱啊!闲来没事就想在俺的本本上装个Linux系统,做了U盘启动盘后进入PE,就不知道怎么搞了,因为如果使用ghost的话…...