2024-12-7【Java基础】【循环语句】,2024年最新spring自动装配原理面试题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

// 2. 在判定和打印水仙花数的过程中,拼接空格, 但不换行,并在打印后让count变量+1,记录打印过的数量

System.out.print(i + " ");

count++;

// 3. 在每一次count变量+1后,判断是否到达了2的倍数,是的话,换行

if(count % 2 == 0){

System.out.println();

}

}

}

}

}

  • 本题要点:

  • 今后如果需求带有统计xxx,请先想到计数器变量

  • 计数器变量定义的位置,必须在循环外部

3. while循环


3.1 循环语句-while循环

  • while循环完整格式:

初始化语句;

while (条件判断语句) {

循环体语句;

条件控制语句;

}

  • while循环执行流程:

①执行初始化语句

②执行条件判断语句,看其结果是true还是false

​ 如果是false,循环结束

​ 如果是true,继续执行

③执行循环体语句

④执行条件控制语句

⑤回到②继续

  • 示例代码:

public class WhileDemo {

public static void main(String[] args) {

//需求:在控制台输出5次"HelloWorld"

//for循环实现

for(int i=1; i<=5; i++) {

System.out.println(“HelloWorld”);

}

System.out.println(“--------”);

//while循环实现

int j = 1;

while(j<=5) {

System.out.println(“HelloWorld”);

j++;

}

}

}

3.2 while循环案例-珠穆朗玛峰

  • 需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?

  • 示例代码:

public class WhileTest {

public static void main(String[] args) {

//定义一个计数器,初始值为0

int count = 0;

//定义纸张厚度

double paper = 0.1;

//定义珠穆朗玛峰的高度

int zf = 8844430;

//因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环

//折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度

while(paper <= zf) {

//循环的执行过程中每次纸张折叠,纸张的厚度要加倍

paper *= 2;

//在循环中执行累加,对应折叠了多少次

count++;

}

//打印计数器的值

System.out.println(“需要折叠:” + count + “次”);

}

}

4. 循环细节


4.1 循环语句-dowhile循环

  • 完整格式:

初始化语句;

do {

循环体语句;

条件控制语句;

}while(条件判断语句);

  • 执行流程:

① 执行初始化语句

② 执行循环体语句

③ 执行条件控制语句

④ 执行条件判断语句,看其结果是true还是false

如果是false,循环结束

如果是true,继续执行

⑤ 回到②继续

  • 示例代码:

public class DoWhileDemo {

public static void main(String[] args) {

//需求:在控制台输出5次"HelloWorld"

//for循环实现

for(int i=1; i<=5; i++) {

System.out.println(“HelloWorld”);

}

System.out.println(“--------”);

//do…while循环实现

int j = 1;

do {

System.out.println(“HelloWorld”);

j++;

}while(j<=5);

}

}

4.2 三种循环的区别

  • 三种循环的区别

  • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)

  • do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

  • for循环和while的区别

  • 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了

  • 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用

  • 死循环(无限循环)的三种格式

  1. for(;;){}

  2. while(true){}

  3. do {} while(true);

4.3 死循环

  • 死循环格式

for死循环格式 :

for(;😉{

}

while死循环格式 :

while(true){

}

do…while死循环格式 :

do{

}while(true);

  • 死循环案例

public static void main(String[] args) {

/*

for(;😉{

System.out.println(“我停不下来了~”);

}

*/

/*

while(true){

System.out.println(“我停不下来了~”);

}

*/

do{

System.out.println(“我停不下来了~”);

}while(true);

System.out.println(“看看我能被执行吗?~”); // 无法访问的语句

}

}

4.4 跳转控制语句

  • 跳转控制语句(break)

  • 跳出循环,结束循环

  • 跳转控制语句(continue)

  • 跳过本次循环,继续下次循环

  • 注意: continue只能在循环中进行使用!

public class Demo1Continue {

public static void main(String[] args){

for(int i = 1; i <= 24; i++){

if(i == 4){

continue;

}

System.out.println(i + “层到了~”);

}

}

}

public class Demo2Break {

public static void main(String[] args){

for(int i = 20; i <= 80; i++){

if(i == 60){

break; // 结束整个循环

}

System.out.println(i + “岁正在上班”);

}

}

}

import java.util.Scanner;

public class Test {

public static void main (String[] args){

lo:while(true){

System.out.println(“请输入您要查看的星期数:”);

System.out.println(“(如无需继续查看,请输入0退出程序)”);

// 1. 键盘录入星期数据,使用变量接收

Scanner sc = new Scanner(System.in);

int week = sc.nextInt();

// 2. 多情况判断,采用switch语句实现

switch(week){

// 3. 在不同的case中,输出对应的减肥计划

case 0:

System.out.println(“感谢您的使用”);

break lo;

case 1:

System.out.println(“跑步”);

break;

case 2:

System.out.println(“游泳”);

break;

case 3:

System.out.println(“慢走”);

break;

case 4:

System.out.println(“动感单车”);

break;

case 5:

System.out.println(“拳击”);

break;

case 6:

System.out.println(“爬山”);

break;

case 7:

System.out.println(“好好吃一顿”);

break;

default:

System.out.println(“您的输入有误”);

break;

}

}

}

}

5. Random


5.1 Random产生随机数(掌握)

  • 概述:

  • Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能

  • API后续课程详细讲解,现在可以简单理解为Java已经写好的代码

  • 使用步骤:

  1. 导入包

import java.util.Random;

  1. 创建对象

Random r = new Random();

  1. 产生随机数

int num = r.nextInt(10);

解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19

  • 示例代码:

import java.util.Random;

public class Demo1Random {

/*

Random : 产生随机数

  1. 导包 : import java.util.Random;

导包的动作必须出现在类定义的上面

  1. 创建对象 : Random r = new Random();

上面这个格式里面,r 是变量名,可以变,其他的都不允许变

  1. 获取随机数 : int number = r.nextInt(10); //获取数据的范围:[0,10) 包括0,不包括10

上面这个格式里面,number是变量名,可以变,数字10可以变。其他的都不允许变

需求: 产生随机数1-10之间的

*/

public static void main(String[] args){

// 2. 创建对象

Random r = new Random();

for(int i = 1; i <= 10; i++){

// 3. 获取随机数

int num = r.nextInt(10) + 1; // 1-10

System.out.println(num);

}

}

}

5.3 Random练习-猜数字(应用)

  • 需求:

程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?

当猜错的时候根据不同情况给出相应的提示

A. 如果猜的数字比真实数字大,提示你猜的数据大了

B. 如果猜的数字比真实数字小,提示你猜的数据小了

C. 如果猜的数字与真实数字相等,提示恭喜你猜中了

  • 示例代码:

import java.util.Scanner;

import java.util.Random;

public class Test {

public static void main(String[] args){

// 1. 准备Random和Scanner对象, 分别用于产生随机数和键盘录入

Random r = new Random();

Scanner sc = new Scanner(System.in);

// 2. 使用Random产生一个1-100之间的数, 作为要猜的数

int randomNum = r.nextInt(100) + 1;

// 5. 以上内容需要多次进行, 但无法预估用户输入几次可以猜测正确, 使用while(true)死循环包裹

while(true){

// 3. 键盘录入用户猜的的数据

System.out.println(“请输入您猜的数据:”);

int num = sc.nextInt();

// 4. 使用录入的数据(用户猜的数据)和随机数(要猜的数据)进行比较, 并给出提示

if(num > randomNum){

System.out.println(“猜大了”);

}else if(num < randomNum){

System.out.println(“猜小了”);

}else{

// 6. 猜对之后, break结束.

System.out.println(“恭喜,猜中了”);

break;

}

}

System.out.println(“感谢您的使用”);

}
}

结局:总结+分享

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了Java互联网工程师面试1000题,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱

  • Java互联网工程师面试1000题

image.png

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的 《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。

  • 程序员代码面试指南–IT名企算法与数据结构题目最优解

image.png

  • 其余像设计模式,建议可以看看下面这4份PDF(已经整理)

image.png

  • 更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

image.png

以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了Java互联网工程师面试1000题,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱

  • Java互联网工程师面试1000题

[外链图片转存中…(img-5jNTOd6r-1713587628988)]

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的 《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。

  • 程序员代码面试指南–IT名企算法与数据结构题目最优解

[外链图片转存中…(img-jOMGq6l8-1713587628988)]

  • 其余像设计模式,建议可以看看下面这4份PDF(已经整理)

[外链图片转存中…(img-QEvjriQ8-1713587628988)]

  • 更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

[外链图片转存中…(img-pUKOQmfW-1713587628989)]

以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-c3x0uq2C-1713587628989)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值