吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 971|回复: 11
收起左侧

[学习记录] Java学习第十五天

[复制链接]
HAIHAIHEI 发表于 2022-3-29 22:22
第十五天,有不对之处麻烦各位指正
return语句的补充:
[Java] 纯文本查看 复制代码
public class return语句的使用{
	public static void main(String[] args){
	//调用方法
	int result =m();
	System.out.println(result);//1
	
	//调用x方法
	int result1 =x(true);
	System.out.println("result1 ="+result1);
	
	//再次调用x方法
	int result2 =x(false);
	System.out.println("result2 ="+result2);





	}
	//错误:缺少返回语句
	/*
	public static int m(){
		boolean flag = true;//编译器不负责运行程序,编译器只讲道理 
		//对于编译器来说,编译器只知道flag变量是boolean类型
		//所以编译器认为flag可能是true,有可能是false

		if(flag){
		//编译器觉得:以下代码可能会执行,也可能不会执行
		//编译器为了确保程序不出现任何异常,所以编译器说:缺少返回语句
		return 1;
		}
	}
	*/

	/*
	//修改1:
	public static int m(){
		boolean flag = true;
		if(flag){
		return 1;
		}else{//带有else分支的可以保证一定会有一个分支执行
		return 0;
		}
	}
	*/

	/*
	//修改2:类似于1的变形
	public static int m(){
		boolean flag = true;
		if(flag){//如果return 1;执行了,你们下面代码就不执行了,如果return 1;没执行,那return 0;执行
		return 1;
			//错误:无法访问的语句
			//System.out.println("Hello 52");//同样不执行,不管哪个return语句执行,都不会执行该语句
			//在同一个域当中,return语句下面不能编写其他代码
		}
		return 0;
		}
	*/

	public static int m(){
	boolean flag = true;
	return flag?1:0;
	}

	public static int x(boolean flag){
	return flag?1:0;
	}

}


JVM(Java虚拟机)中主要的三块内存空间:
堆区,堆内存:后期补充
方法区:类加载器classloader,将硬盘上的xxx.class字节码文件装载到jvm的时候,会将字节码文件存放到方法区当中。也就是说方法区中储存的是代码片段。因为类需要加载,所以方法区当中最先有代码。
栈(stack)内存:栈,在方法被调用的时候,该方法需要内存空间在栈中分配

一种非常经典的数据结构:
栈数据结构:stack
数据结构通常是:存储数据的容器,而该容器可能存在不同的结构,数据结构和Java语言实际上是没有关系的,数据结构实际上是一门独立的学科
常见的数据结构有:数组,链表,图,二叉树,栈,队列...,Java语言吧常用的数据结构都已经写好了,可以直接使用
和数据结构通常一起出现的是:算法
算法:排序算法,查找算法等等

栈方法:
[Java] 纯文本查看 复制代码
//局部变量:只在方法体中有效,方法结束之后,局部变量的内存就释放了
//jvm三块主要内存:栈内存,堆内存,方法区内存
//方法区最先有数据:方法区中放代码片段。存放class字节码
//栈内存:方法调用的时候,方法需要的内存空间在栈中分配
//方法不调用是不会在栈中分配空间的

//方法只有在调用的时候才会在栈中分配空间并且调用时就是压栈
//方法执行结束之后,该方法所需的内存空间就会释放,此时发生弹栈动作

//方法调用叫做:压栈,分配空间
//方法结束叫做:弹栈,释放空间

//栈中储存:方法运行过程中需要的内存,以及栈中储存方法的局部变量

public class Test{
//主方法,入口
	public static void main(String[] args){
	
	//int a=100;
	//这个赋值原理是:讲a变量中保持的100这个数字复制一份传给b变量
	//所以a和b是两个不同的内存空间,是两个局部变量
	//int b=a;
	 
	System.out.println("main begin");
	int x=100;
	m1(x); 
	System.out.println("main over");
	}

	public static void m1(int i){
	System.out.println("m1 begin");
	m2(i);
	System.out.println("m1 over");
	}

	public static void m2(int i){
	System.out.println("m2 begin");
	m3(i);
	System.out.println("m2 over");
	}

	public static void m3(int i){
	System.out.println("m3 begin");
	System.out.println("Hello");
	System.out.println("m3 over");
	}
}

免费评分

参与人数 4吾爱币 +4 热心值 +3 收起 理由
skiss + 1 + 1 谢谢@Thanks!
Songzhiqiang + 1 + 1 热心回复!
lgc81034 + 1 谢谢@Thanks!
raycerlane + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| HAIHAIHEI 发表于 2022-3-29 22:23
纯手打,如果有不对之处希望各位大佬指出,感激不尽(电脑重装系统,今天先到这里)
WuXiaoYao 发表于 2022-3-29 22:25
stone-liu 发表于 2022-3-29 22:27
yanjiunan 发表于 2022-3-29 23:07

Java 难吗?  好找工作吗?  工资高吗?
shubiao 发表于 2022-3-29 23:18
真厉害,加油
PromiseI 发表于 2022-3-29 23:20
可以的,祝愿早日成为大佬
wda114514 发表于 2022-3-29 23:28
感觉不错
se34218 发表于 2022-3-30 09:41
其实不用main方法这么麻烦,用junit直接test就行
lidasha521 发表于 2022-3-30 15:54
大佬 ,带带弟弟好吗,弟弟想和你一起学习!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 08:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表