1200页Java架构面试专题及答案
小编整理不易,对这份1200页Java架构面试专题及答案感兴趣劳烦帮忙转发/点赞
百度、字节、美团等大厂常见面试题
实现
/**
-
Created with IntelliJ IDEA.
-
@author : cunyu
-
@version : 1.0
-
@email : 747731461@qq.com
-
@website : https://cunyu1943.github.io
-
@date : 2021/6/4 10:48
-
@project : Java 编程实例
-
@package : PACKAGE_NAME
-
@className : Example27
-
@description :
*/
public class Example27 {
public static void main(String[] args) {
// 默认是素数
boolean flag = false;
int count = 0;
System.out.println(“100 内的素数:”);
for (int i = 2; i < 100; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
// 能除尽,则表示不是素数,跳出当次内循环
if (i % j == 0) {
flag = true;
break;
} else {
flag = false;
}
}
// 如果是素数,则打印并计数,然后每行打印 5 个
if (flag == false) {
count++;
System.out.print(i + “\t”);
if (count % 5 == 0) {
System.out.println();
}
}
}
}
}
结果
题目
对 10 个数进行排序。
分析
可以用两者方法,将 10 个数放到数组之后,可以利用内置的 Arrays.sort()
方法进行排序,也可以用冒泡排序;
实现
import java.util.Arrays;
import java.util.Scanner;
/**
-
Created with IntelliJ IDEA.
-
@author : cunyu
-
@version : 1.0
-
@email : 747731461@qq.com
-
@website : https://cunyu1943.github.io
-
@date : 2021/6/4 10:57
-
@project : Java 编程实例
-
@package : PACKAGE_NAME
-
@className : Example28
-
@description :
*/
public class Example28 {
public static void main(String[] args) {
int[] arr = new int[10];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.println(“输入第 " + (i + 1) + " 个数”);
arr[i] = scanner.nextInt();
}
// 1、直接调用内置方法
// Arrays.sort(arr);
// System.out.println(“内置方法排序后的数组:” + Arrays.toString(arr));
// 2、冒泡
for (int i = 0; i < 10; i++) {
for (int j = i + 1; j < 10; j++) {
if (arr[i] > arr[j]) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
System.out.println(“冒泡排序后:” + Arrays.toString(arr));
}
}
结果
题目
求 3 * 3 矩阵对角线元素之和。
分析
定义一个二维数组来存放矩阵元素,然后将对角元素进行相加求和即可(对角线元素的一维和二维索引一样)。
实现
import java.util.Scanner;
/**
-
Created with IntelliJ IDEA.
-
@author : cunyu
-
@version : 1.0
-
@email : 747731461@qq.com
-
@website : https://cunyu1943.github.io
-
@date : 2021/6/4 11:07
-
@project : Java 编程实例
-
@package : PACKAGE_NAME
-
@className : Example29
-
@description :
*/
public class Example29 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[][] matrix = new int[3][3];
System.out.println(“输入矩阵元素(共 9 个)”);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
matrix[i][j] = scanner.nextInt();
}
}
System.out.println(“输入的矩阵为:”);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(matrix[i][j] + “\t\t”);
}
System.out.println();
}
// 对角线元素之和
int sum = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == j) {
sum += matrix[i][j];
}
}
}
System.out.println(“对角线元素之和:” + sum);
}
}
结果
题目
有一个已经排好序的数组,现插入一个数,要求按原来的规律将其插入数组中。
分析
言尽于此,完结
无论是一个初级的 coder,高级的程序员,还是顶级的系统架构师,应该都有深刻的领会到设计模式的重要性。
- 第一,设计模式能让专业人之间交流方便,如下:
程序员A:这里我用了XXX设计模式
程序员B:那我大致了解你程序的设计思路了
- 第二,易维护
项目经理:今天客户有这样一个需求…
程序员:明白了,这里我使用了XXX设计模式,所以改起来很快
- 第三,设计模式是编程经验的总结
程序员A:B,你怎么想到要这样去构建你的代码
程序员B:在我学习了XXX设计模式之后,好像自然而然就感觉这样写能避免一些问题
- 第四,学习设计模式并不是必须的
程序员A:B,你这段代码使用的是XXX设计模式对吗?
程序员B:不好意思,我没有学习过设计模式,但是我的经验告诉我是这样写的
从设计思想解读开源框架,一步一步到Spring、Spring5、SpringMVC、MyBatis等源码解读,我都已收集整理全套,篇幅有限,这块只是详细的解说了23种设计模式,整理的文件如下图一览无余!
搜集费时费力,能看到此处的都是真爱!
程序员A:B,你这段代码使用的是XXX设计模式对吗?
程序员B:不好意思,我没有学习过设计模式,但是我的经验告诉我是这样写的
[外链图片转存中…(img-M7Hfu58F-1714898233250)]
从设计思想解读开源框架,一步一步到Spring、Spring5、SpringMVC、MyBatis等源码解读,我都已收集整理全套,篇幅有限,这块只是详细的解说了23种设计模式,整理的文件如下图一览无余!
[外链图片转存中…(img-i0PffKZi-1714898233250)]
搜集费时费力,能看到此处的都是真爱!