Java学习第三天

发布时间:2026/7/16 17:57:53
Java学习第三天 、第一部分1、循环嵌套使用在嵌套循环使用的时候可以把需要循环的内容转换成一个多行多列的图形外层循环控制行数有几行一般就循环几次内层循环控制列数有几列就循环几次package com.day4.test1; public class Demo02 { public static void main(String[] args) { /* 每次输出一个*号,最终输出这个图形 ***** ***** ***** ***** */ for (int i 0; i 4; i) { for (int j 0; j 5; j) { System.out.print(*); } System.out.println(); } /* i ***** 3 0 3-i ***** 2 1 ***** 1 2 ***** 0 3 每次可以输出一个 空格 或者一个 * */ for (int i 0; i 4; i) { //控制打印空格,循环次数不是固定跟外面的第几行的值挂钩 for (int j 0; j 3 - i ; j) { System.out.print( ); } //控制打印* for (int j 0; j 5; j) { System.out.print(*); } System.out.println(); } /* * i * 1 3 0 3-i ** 2 2 1 *** 3 1 2 **** 4 0 3 每次可以输出一个 空格 或者一个 * */ for (int i 0; i 4; i) { //控制打印空格,循环次数不是固定跟外面的第几行的值挂钩 for (int j 0; j 3 - i ; j) { System.out.print( ); } //控制打印* for (int j 0; j i1; j) { System.out.print(*); } System.out.println(); } /* * i * 1 3 0 3-i *** 3 2 1 ***** 5 1 2 ******* 7 0 3 每次可以输出一个 空格 或者一个 * */ for (int i 0; i 4; i) { //控制打印空格,循环次数不是固定跟外面的第几行的值挂钩 for (int j 0; j 3 - i ; j) { System.out.print( ); } //控制打印* for (int j 0; j 2*i1; j) { System.out.print(*); } System.out.println(); } } }乘法口诀表public class Demo01 { public static void main(String[] args) { for (int i 1; i 9; i) { for (int j 1; j i; j) { System.out.printf(%d × %d %d \t,j,i,(j*i)); } System.out.println(); } } }2、控制语句关键字break、continue、returnbreak表示跳出整个循环可以用在循环或者switch语句中continue表示跳出当次循环继续下次循环在循环中使用return结束方法的使用不会继续执行public class Demo02 { public static void main(String[] args) { //break跳出多重循环 for (int i 1; i 5; i) { for (int j 1; j 5; j) { if(j3){ break ; } System.out.print(j); } System.out.println(); } } }3、方法函数创建使用重要概念方法就是把需要执行的一些功能代码整合到一起给这段代码去一个名字封装好以后可以通过这个名字调用方法完成这个方法中的功能执行。Java中的方法就是面向对象的核心概念方法必须要学会使用方法需要声明在一个类中语法修饰符 返回值类型 方法名参数列表{方法功能代码return 返回值}修饰符目前固定写法---------public static返回值类型表示将来正规哪个发执行后需要返回的结果类型就是之前的学习的数据类型int、float、double之类的可以是基本类型也可以是引用类型如果没有返回值写void方法名遵循标识符规范取的一个名称小驼峰式----------getName参数列表将来调用方法可以传入的数据列表参数列表写法数据类型 变量名比如 addint aint b功能代码将来方法需要执行的功能的代码return如果返回值类型需要返回值那么就需要使用把return把值返回如果返回值类型不需要返回值那么不写return调用无返回值的方法----无参数 方法名----有参数 方法名数值调用有返回值的方法----无参数 返回值类型 变量 方法名();System.out.println(变量);----有参数 返回值类型 变量 方法名(数值);System.out.println(变量);package com.day4.test2; public class Demo02 { public static void main(String[] args) { //方法声明使用 //调用方法并执行方法需要在main方法完成 int result add(10, 20); System.out.println(result); //调用无返回值无参数的方法 getSum(); //调用没有返回值有参数的方法 getSum(10,20); //调用有返回值的方法没参数的方法 System.out.println(getSum1()); //可以直接输出调用方法结果第一种 int sum1 getSum1(); //可以将结果赋值给一个变量第二种 System.out.println(sum1); int num 100 getSum1(); //可以把结果直接带入到运算中第三种 System.out.println(num); //调用有返回值有参数的方法 int sum2 getSum1(10, 100); System.out.println(10-100之间的和: sum2); } //方法是写在类里面main方法的外面 //写一个求和的方法 可以让用户传入2个数值完成数值的求和 public static int add(int x ,int y){ int sum x y; return sum; } //1无返回值 无参数 执行一些特定功能直接在方法中把需求执行完毕 // 不需要用户传值 也不需要用户处理结果 //写一个方法调用后可以输出1-100的和 public static void getSum(){ int sum 0; for (int i 0; i 101; i) { sum i; } System.out.println(1-100的求和是: sum); } //2无返回值 有参数 : 需要用户传入数值去获取不同的结果 不需要再处理返回结果 //调用方法后让用户传入2个值计算这两个值之间的数值的和 public static void getSum(int a,int b){ int sum 0; for (int i a; i b ; i) { sum i; } System.out.printf(%d~%d之间的数值的和是:%d \n,a,b,sum); } //3有返回值 无参数 执行固定的内容把结果返回给用户用户自行处理结果 //写个方法返回1-100的和给用户继续使用 public static int getSum1(){ int sum 0; for (int i 0; i 101; i) { sum i; } return sum; //把求和的结果返回 } //4有返回值 有参数 可以让调用者传入值得到想要的结果后返回给调用者自己处理 //写一个方法计算任意两个数值的和并把结果返回 public static int getSum1(int a,int b){ int sum 0; for (int i a; i b ; i) { sum i; } return sum; } }package com.day4.test2; public class Demo03 { public static void main(String[] args) { getMul(5); } //方法写在类中 //写一个函数可以实现让调用者传入一个数值后计算这个值的阶乘 //5的阶乘 5 * 4 * 3 * 2 * 1 public static void getMul(int n){ int result 1; for (int i 5; i 1 ; i--) { result * i; } System.out.println(n 的阶乘是: result); }4、方法递归调用方法在自己内部调用自己的一种用法package com.day4.test2; public class Demo03 { public static void main(String[] args) { //调用其他类中的函数需要通过 类名.方法名() System.out.println(method(100)); System.out.println(mul(5)); } //方法的递归调用 //使用递归计算1-10的和 10987654321 public static int method(int n){ if (n 1) return 1; return n method(n-1); } //递归实现阶乘---大数字×小数字倒序计算 public static int mul(int n){ if (n 1) return 1; return n * mul(n - 1); } // }5、字符串声明引用数据类型的使用-------字符串String字符串是一个引用类型有两种创建变量的方式一种和基本类型的写法一样另一种是按照引用类型的创建方式使用new 关键字去创建 将来通过字符串的变量可以调用String类中的各种方法去完成一些操作①String 变量 字符串;②String 变量 new String(字符串);package com.day4.test3; public class Demo02 { public static void main(String[] args) { //字符串的创建 int a 10; String s1 hello; String s2 hello; System.out.println(s1); System.out.println(s2); System.out.println(s1 s2); //true //使用new关键字申请堆内存空间 String s3 new String(hello); String s4 new String(hello); System.out.println(s3); System.out.println(s4); System.out.println(s3 s4); //false System.out.println(s1 s3); // false } }6、内存划分上方代码例题讲解如下7、JVM 中内存的划分内存划分位5 个区域暂时先了解栈和堆的区别1栈是一个有序空间遵循先进后出的特点 堆空间数据无序存放2栈空间所占内存较小堆空间所占内存较大3栈空间存放基本数据类型 堆空间存放引用数据类型4栈空间使用的时候不需要手动申请 堆空间使用的时候需要使用 new 关键字申请