Java学习笔记2024/2/1

1. 循环高级

1.1 无限循环

package com.angus.loopAdvanced.infiniteLoop_1;public class note {public static void main(String[] args) {//无限循环:循环一直停不下来//for循环//while循环 ->最常用,因为不知道循环的范围或者次数//do...while循环//        for (;;){
//            System.out.println("学习");
//        }//        while (true){
//            System.out.println("学习");
//        }//        do {
//            System.out.println("学习");
//        } while (true);//无限循环的下面不能再写其他的代码了,因为执行不到System.out.println("^^");}
}

1.2 跳转控制语句

package com.angus.loopAdvanced.jumpControlStatement_2;public class demo1 {public static void main(String[] args) {//1.跳过某次循环for (int i = 1; i <= 5; i++) {if (i == 3) {//跳过这次循环,继续下次循环continue;}System.out.println(i);}System.out.println("^^");}
}
package com.angus.loopAdvanced.jumpControlStatement_2;public class demo2 {public static void main(String[] args) {//2.结束整个循环for (int i = 1; i <= 5; i++) {System.out.println(i);if (i == 3) {//结束整个循环break;}}System.out.println("^^");}
}
package com.angus.loopAdvanced.jumpControlStatement_2;public class test1 {public static void main(String[] args) {/*朋友聚会的时候可能会玩一个游戏:逢7过游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说过:过需求:使用程序在控制台打印出1-100之间的满足逢七必过规则的数据*///随笔//自己做的分析太混乱了,先模仿教学视频java老师的,之后再形成自己的//分析://个位7 十位7 7倍数//1 2 3 4 5 6 过 8 9 10 11 12 13 过 15 16 过 18 19 20 过...//69 过 过 ... 80//1.得到1-100之间的每一个数//开始: 1//结束: 100for (int i = 1; i <= 100; i++) {//2.判断每一个数字,如果符合规范,就打印过,如果不符合就打印真实的数字if (i/1%10 == 7 || i/10%10 == 7 || i%7 == 0) {System.out.println("过");continue;}System.out.println(i);}System.out.println("^^");}
}
package com.angus.loopAdvanced.jumpControlStatement_2;import java.util.Scanner;public class test2 {public static void main(String[] args) {/*需求:键盘录入一个大于等于2的整数 x ,计算并返回 x 的 平方根 。结果只保留整数部分 ,小数部分将被舍去 。*///分析://平方根 16的平方根4//      4的平方根2//10//1 * 1 = 1 < 10//2 * 2 = 4 < 10//3 * 3 = 9 < 10//4 * 4 = 16 > 10//推断: 10的平方根是在3~4之间//20//1 * 1 = 1 < 20//2 * 2 = 4 < 20//3 * 3 = 9 < 20//4 * 4 = 16 < 20//5 * 5 = 25 > 20//推断: 10的平方根是在4~5之间//在代码当中//从1开始循环,拿着数字的平方跟原来的数字进行比较//如果小于的,那么继续往后判断//如果相等,那么当前数字就是平方根//如果大于的,那么前一个数字就是平方根的整数部分//1.键盘录入一个整数Scanner scanner = new Scanner(System.in);System.out.println("请输入一个整数");int number = scanner.nextInt();//2.从1开始循环判断//开始: 1 结束: numberfor (int i = 1; i <= number; i++) {//用i * i 再跟number进行比较//怎么比,用关系运算符if (i*i==number){System.out.println(i + "就是" + number + "的平方根");//随笔//案例代码可以自己照着写也可以复制粘贴,建议有些自己写[大框架],有些复制粘贴[小细节],//老师的思路分析复制粘贴就行了,//不然太费时间了而且思维也会在跟着打字的同时被禁锢,//要的是变通的思维不是盲目的思维//老师的分析下面可以自己再解析分析//这也是锻炼自己的思维//一旦找到了,循环就可以停止了,后面的数字就不需要再找了,提高代码的运行效率。break;} else if (i * i > number) {System.out.println((i - 1) + "就是" + number + "平方根的整数部分");break;}}System.out.println("^^");}
}
package com.angus.loopAdvanced.jumpControlStatement_2;import java.util.Scanner;public class test3 {public static void main(String[] args) {//随笔//思维要具有结构化,流程化//如果听一下就打一下,思维很容易混乱//所以之前的我才会建议先听完一整个知识点再去整理笔记//不只是整理笔记,还有重新理一下思路,再写一次代码加分析//但是随笔可以随时整理//需求:键盘录入一个正整数 x ,判断该整数是否为一个质数。//质数://如果一个整数只能被1和本身整除,那么这个数就是质数。否则这个数叫做合数//所以想要找到质数我们只要将它本身和1排除在外,//再看看在它和1之间有没有能够将它整除的数,//有就不是质数,没有就是质数//7 = 1 * 7 质数//8 = 1 * 8  2 * 4 合数//分析://1.键盘录入一个正整数//numberScanner sc = new Scanner(System.in);System.out.println("请输入一个正整数");int number = sc.nextInt();//9//定义一个变量,表示标记//标记着number是否为一个质数//true: 是一个质数//false : 不是一个质数//表示最初就认为number是一个质数boolean flag = true;//2.判断//写一个循环,从2开始判断,一直判断到number-1为止//看这个范围之内,有没有数字可以被number整除for (int i = 2; i < number; i++) {
//i 依次表示这个范围之内的每一个数字
//看number是否能被i整除就可以了if(number % i == 0){// 9 % 2 = 1flag = false;
//System.out.println(number + "不是一个质数");break;}/* else {
System.out.println(number + "是一个质数");}}*/
//只有当这个循环结束了,表示这个范围之内所有的数字都判断完毕了
//此时才能断定number是一个质数}if(flag){System.out.println(number + "是一个质数");}else{System.out.println(number + "不是一个质数");}System.out.println("^^");}
}
package com.angus.loopAdvanced.jumpControlStatement_2;public class test3_3 {public static void main(String[] args) {//test3的优化//随笔//计算器快捷键: win+R输calc// 100000// 2 ~ 99999//循环的次数:将近10万次//推荐一个简化的思路//81//1 * 81//3 * 27//9 * 9//以81的平方根9,为中心//而且假设 a * b = 81//那么a和b中,其中有一个必定是小于等于9的。//另一个是大于等于9的。//我们要找的就是那个小于等于9的//假设,都是大于9 --- 9.1 * 9.1 > 81//假设,都是小于9 --- 8.9 * 8.9 < 81//其中一个数字一定是小于等于平方根//另外一个数字一定是大于等于平方根int number = 81;//如果这个范围之内,所有的数字都不能被number整除//那么number就一定是一个质数。
/*for (int i = 2; i <= number的平方根; i++) {}
*/System.out.println("^^");}
}
package com.angus.loopAdvanced.jumpControlStatement_2;
//1.导包import java.util.Random;public class test4 {public static void main(String[] args) {//先获取一个随机数。//范围:0~10//2.创建对象Random random = new Random();//3.生成随机数//判断技巧://在小括号中,书写的是生成随机数的范围//这个范围一定是从0开始的。//到这个数-1结束//口诀:包头不包尾,包左不包右for (int i = 0; i < 5; i++) {int number = random.nextInt(10);// 0 ~ 9System.out.println(number);}System.out.println("^^");}
}
package com.angus.loopAdvanced.jumpControlStatement_2;import java.util.Random;public class test5 {public static void main(String[] args) {//需求://随机数范围:1~100//创建对象Random r = new Random();//生成随机数int number = r.nextInt(100) + 1;//1  ~ 100System.out.println(number);//解析://1.100-1=99//2.99+1=100//3.r.nextInt(100)//4.r.nextInt(100) + 1//秘诀//用来生成任意数到任意数之间的随机数 7 ~15//1.让这个范围头尾都减去一个值,让这个范围从0开始  -7   0~8//2.尾巴+1       8 + 1 = 9//3.最终的结果,再加上第一步减去的值。/* Random r = new Random();int number = r.nextInt(9) + 7;// 7 ~ 15//   0 ~ 8  + 7System.out.println(number);*///解析://1.15-7=8//2.8+1=9//3.r.nextInt(9)//4.r.nextInt(9) + 7//总结://1.要求的范围->大范围值-小范围值=值1//2.值1+1=值2//3.值2的随机数表达式//4.值2的随机数表达式+小范围值System.out.println("^^");}
}
package com.angus.loopAdvanced.jumpControlStatement_2;
//导包Random,导包Scanner
import java.util.Random;
import java.util.Scanner;public class test6 {public static void main(String[] args) {//需求:程序自动生成一个1-100之间的随机数字,//使用程序实现猜出这个数字是多少?//分析://1.生成一个1-100之间的随机数字//2.猜这个数字是多少//3.如果猜一次猜不中,就需要不断猜,直到猜中为止//4.先写里面再写外面,//意思就是先写判断再写循环//意思就是判断一次后再不断重复判断//判断一次的情况就是先写里面的意思//不断判断就是再写外面的意思//1.生成一个1-100之间的随机数字//创建Random对象Random r = new Random();//生成随机数 需要写在死循环的外面,不然就会一直生成新的随机数int number = r.nextInt(100) + 1;
//        //2.猜这个数字是多少
//        Scanner sc = new Scanner(System.in);
//        System.out.println("请输入你要猜的数字");
//        //键盘录入
//        int guessNumber = sc.nextInt(); //需要放在死循环的里面,这样才不会一直重复打印,原因就是死循环一旦执行到一条语句就会无限执行下去//不知道循环次数或范围用whilewhile (true){ //死循环,无限循环//2.猜这个数字是多少Scanner scanner = new Scanner(System.in);System.out.println("请输入你要猜的数字");//键盘录入 需要放在死循环的里面,这样才不会一直重复打印,原因就是死循环一旦执行到一条语句就会无限执行下去int guessNumber = scanner.nextInt();if (guessNumber > number) {System.out.println("大了");} else if (guessNumber < number) {System.out.println("小了");} else {System.out.println("猜中了");break; //猜中了就break跳出死循环}}//随笔
//反思
//代码还是得自己独立写一遍,理解理解代码原理
//还是自己分析吧,这样更乱了,而且还把自己绕晕了
//最重要的是自己独立分析才能巩固学的知识点
//之前的方案pass pass pass
//那和抄袭没什么区别了都我发现
//还是得自己再重新独立写一遍才能真正掌握
//不过就是有点慢服了...
//我就当是磨刀不误砍柴工了
//那两句话得提醒一下自己了
//1.学我者生,似我者寄
//2.你看懂了,不去写,其实你还是不懂。
//重新简单总结一下自己的学习方法: 就是老师写完一个练习就跟着他写这个练习,写完后再继续后面的优化改进什么的
System.out.println("^^");}
}
package com.angus.loopAdvanced.jumpControlStatement_2;import java.util.Random;
import java.util.Scanner;public class test6_6 {public static void main(String[] args) {//加一个保底活动Random r = new Random();int number = r.nextInt(100) + 1;int count = 0;while (true){Scanner scanner = new Scanner(System.in);System.out.println("请输入你要猜的数字");int guessNumber = scanner.nextInt();count++;if (count == 3){System.out.println("保底了");break;}if (guessNumber > number) {System.out.println("大了");} else if (guessNumber < number) {System.out.println("小了");} else {System.out.println("猜中了");break;}}System.out.println("^^");}
}

2. 数组

2.1 数组介绍

package com.angus.array.introductionToArray_1;public class note {public static void main(String[] args) {//什么是数组呢?//数组指的是一种容器,可以用来存储同种数据类型的多个值//但也不用限定死,还要考虑隐式转换//例如:int类型的数组容器(boolean错 byte对 short对 int对 double错)//    double类型的数组容器(byte对 int对 long对 double对)//建议:容器的类型和存储的类型保持一致System.out.println("^^");}
}

2.2 数组的定义与静态初始化

package com.angus.array.definitionAndDynamicInitializationOfArray_2;public class note {public static void main(String[] args) {//知识点一//数组的定义//以前定义变量时: int a = 0; -> int a 叫做定义, = 0 叫做赋值//定义数组就比定义变量多了个[]//定义数组有两种格式,常用第一种//格式一:  数据类型 [] 数组名//例子:      int  [] array//格式二:  数据类型 数组名 []//例子:      int  array []//数组定义之后只有一个名字,容器还没出现//知识点二//数组的初始化//初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程//数组初始化的两种方式//静态初始化//动态初始化//数组的静态初始化//简化格式: 数据类型[] 数组名 = {元素1,元素2,元素3...};//例子:      int[]   array1 = {1, 2, 3};//         double[] array2 = {1.1, 1.2 ,1.3};System.out.println("^^");}
}
package com.angus.array.definitionAndDynamicInitializationOfArray_2;public class demo1 {public static void main(String[] args) {//需求1:定义数组存储5个学生的年龄int[] arr1 = {11,12,13,14,15};//需求2:定义数组存储3个学生的姓名String[] arr2 = {"aadad","阿达","大大"};//需求3:定义数组存储4个学生的身高 1.93double[] arr3 = {1.5,1.6,1.7,1.8};  // [D@b4c966a 数组的地址值->表示数组在内存中的位置   有4个数->表示数组的长度System.out.println(arr3);//扩展://解释一下地址值的格式含义  [D@b4c966a//[ :表示当前是一个数组//D:表示当前数组里面的元素都是double类型的//@:表示一个间隔符号。(固定格式)//b4c966a:才是数组真正的地址值,(十六进制)//平时我们习惯性的会把这个整体叫做数组的地址值。System.out.println("^^");}
}

2.3 数组元素访问

package com.angus.array.arrayElementAccess_3;public class note {public static void main(String[] args) {//数组元素访问//格式: 数组名[索引];//索引:也叫做下标,角标//索引的特点:从0开始,逐个+1增长,连续不断System.out.println("^^");}
}
package com.angus.array.arrayElementAccess_3;public class demo1 {public static void main(String[] args) {//题目//利用索引对数组中的元素进行访问//获取数组里面的元素//格式: 数组名[索引]//获取数组中的元素//可以直接获取//也可以间接使用变量获取//获取数组中的第一个元素int[] arr = {1,2,3,4,5};//1.直接获取System.out.println(arr[0]);//2.间接获取int a = arr[0];System.out.println(a);System.out.println("^^");}
}
package com.angus.array.arrayElementAccess_3;public class demo2 {public static void main(String[] args) {//题目//把数据存储到数组当中//格式:  数组名[索引] = 具体数据/变量;//细节:一旦覆盖之后,原来的数据就不存在了。int[] arr = {1,2,3,4,5};arr[0] = 1000;  //把1000赋值给arr的0索引int a = arr[0];System.out.println(a);System.out.println("^^");}
}

未完待续...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】某闯关类手游用户流失预测

Final Project: 某闯关类手游用户流失预测 1 案例简介 手游在当下的日常娱乐中占据着主导性地位&#xff0c;成为人们生活中放松身心的一种有效途径。近年来&#xff0c;各种类型的手游&#xff0c;尤其是闯关类的休闲手游&#xff0c;由于其对碎片化时间的利用取得了非常广泛…

分组函数应用(sql+python)总结

经常会遇见对某个字段进行分组、统计等&#xff0c;其中还包括一些比较细致的问题&#xff0c;有时往往会忘记&#xff0c;这里做个记录。 文章目录 1. sql的分组&#xff08;group by/ over()&#xff09;2. PYTHON分组函数使用groupby 1. sql的分组&#xff08;group by/ ov…

服务器未启动而端口进程仍在运行如何查看并杀死

首先登录服务器然后查看当前监听的端口&#xff1a; sudo netstat -tuln比如这里的8080&#xff0c;我们此时并未启动服务器&#xff0c;但是它却正在运行&#xff0c;这会导致服务器刚启动就秒挂。如果没有日志的话会让人有点疑惑&#xff0c;这种情况可能是之前运行了该进程…

openssl3.2 - 官方demo学习 - pkcs12 - pkread.c

文章目录 openssl3.2 - 官方demo学习 - pkcs12 - pkread.c概述笔记END openssl3.2 - 官方demo学习 - pkcs12 - pkread.c 概述 openssl3.2 - 官方demo学习 - 索引贴 将官方demos的pkread.c 过了一下. 只要有正确的.P12证书和导出口令, 这个实验做起来很快. 程序功能, 读.P12文…

网络编程练习题(TCP)

基础练习 package test1;import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket;public class Server {public static void main(String[] args) throws IOException {ServerSoc…

代码随想录day17--二叉树的应用5

LeetCode654.最大二叉树 题目描述&#xff1a; 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后…

鸿蒙开发-UI-页面路由

鸿蒙开发-UI-组件 鸿蒙开发-UI-组件2 鸿蒙开发-UI-组件3 鸿蒙开发-UI-气泡/菜单 文章目录 一、基本概念 二、页面跳转 1.router基本概念 2.使用场景 3.页面跳转参数传递 三、页面返回 1.普通页面返回 2.页面返回前增加一个询问框 1.系统默认询问框 2.自定义询问框 总…

EtherCAT FP介绍系列文章—UDP gateway

EtherCAT主站上的Mailbox Gateway功能&#xff0c;可以用于将EtherCAT mailbox相关协议从外部设备的工具通过邮箱网关路由到EtherCAT从站设备。在EtherCAT规范中定义的所有邮箱协议在此功能中都可用&#xff0c;例如CoE, FoE, VoE, SoE。 但是&#xff0c;这里特别注意的是Mai…

雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Mohist 1.20.2服务器教程,我的世界MOD和插件服开服教程。

雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Mohist 1.20.2服务器教程&#xff0c;我的世界MOD和插件服开服教程。 本教程演示安装的MC服是Mohist 1.20.2版&#xff0c;其他版本也可以参考本教程&#xff0c;差别不大。 本教程使用Docker来运行mc服&#xff0c;可以方…

UserWarning: Glyph 39640 missing from current font问题

是因为不支持中文字体导致的&#xff0c;设置为一个支持中文的字体就行了。 另外&#xff0c;上面的改动会引起负号显示为方块&#xff0c;需要额外再加一条设置。 在中文系统上 import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei] # 设置为一个支持…

【leetcode刷刷】39. 组合总和、40.组合总和II、131.分割回文串

39. 组合总和 一开始写的时候没注意到可以重复&#xff0c;注意到可以重复之后就去掉了start_index&#xff0c;但是出现了类似[2,2,3][2,3,2]这种重复。看了题解之后&#xff0c;发现加上start_index&#xff0c;但是进for循环的时候start_index还是i&#xff0c;这样就是既可…

爬虫代理如何被合理使用?静态IP怎么助力网络爬虫采集数据?

随着互联网的发展&#xff0c;网络爬虫作为一种重要的数据采集手段&#xff0c;被广泛应用于各个领域。但在实际使用中&#xff0c;很多用户会遇到IP被封禁、数据采集受限等问题&#xff0c;这些问题往往是由于不合理的代理使用导致的。本文将重点介绍如何合理使用爬虫代理&…

C#,斯特林数(Stirling Number)的算法与源代码

1 斯特林数 在组合数学&#xff0c;斯特林数可指两类数&#xff0c;第一类斯特林数和第二类斯特林数&#xff0c;都是由18世纪数学家James Stirling提出的。它们自18世纪以来一直吸引许多数学家的兴趣&#xff0c;如欧拉、柯西、西尔沃斯特和凯莱等。后来哥本哈根&#xff08;…

Docker容器引擎私有仓库的搭建和管理

目录 一、私有仓库搭建和管理 &#xff08;一&#xff09;搭建本地私有仓库 1.拉取registry镜像 2.修改docker配置文件并重启 3.运行registry容器 4.给镜像打标签 5.上传到私有仓库 6.查看私有仓库的所有镜像 7.从私有仓库拉取镜像 &#xff08;1&#xff09;删除cen…

开源机器人ros 基本概念详细介绍

ROS&#xff08;Robot Operating System&#xff09;的基本概念构成了整个系统的框架和运作方式。以下是一些核心的基本概念&#xff1a; 1. 节点&#xff08;Nodes&#xff09;&#xff1a; - 节点是ROS图中的基本执行单元&#xff0c;它是运行单个任务的一个进程。节点可以…

网络协议 UDP协议

网络协议 UDP协议 在之前的文章中有对UDP协议套接字的使用进行讲解&#xff0c;本文主要对UDP协议进行一些理论补充。 文章目录 网络协议 UDP协议1. 概念2. UDP协议格式2.1 数据报长度2.2 校验和/检验和2.2.1 CRC校验2.2.2 MD5算法 1. 概念 UDP&#xff0c;即User Datagram P…

gitlab操作手册

git操作篇 1. 项目克隆 git clone gitgitlab.test.cn:pro/project1.git2. 项目的提交 注&#xff1a;如果要查看文件的状态可以用git status命令&#xff1a; 如上图所示&#xff0c;文件已经修改了。 3. 项目的推送 git push origin feature/test01注&#xff1a;如果要查…

Qt应用软件【协议篇】modbus-tcp示例

文章目录 APIModbus TCP 主机(客户端)示例Modbus TCP 从机(服务器)示例API QModbusDevice: 所有 Modbus 设备的基类,提供了设备的基本功能,例如连接、断开连接、状态和错误处理。QModbusClient: 用于实现 Modbus 客户端功能的基类。它派生自 QModbusDevice。QModbusServ…

nodejs+vue+ElementUi宠物领养救助网站0w6wc

宠物领养救助平台采用B/S架构&#xff0c;数据库是MySQL。网站的搭建与开发采用了先进的nodejs进行编写&#xff0c;使用了vue框架。该系统从两个对象&#xff1a;由管理员和用户来对系统进行设计构建。主要功能包括&#xff1a;个人信息修改&#xff0c;对用户、宠物类别、宠物…

深信服技术认证“SCSA-S”划重点:安全事件管理处置

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信…