Java学习第十五天
第十五天,有不对之处麻烦各位指正return语句的补充:
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语言吧常用的数据结构都已经写好了,可以直接使用
和数据结构通常一起出现的是:算法
算法:排序算法,查找算法等等
栈方法:
//局部变量:只在方法体中有效,方法结束之后,局部变量的内存就释放了
//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");
}
} 纯手打,如果有不对之处希望各位大佬指出,感激不尽{:1_893:}(电脑重装系统,今天先到这里) 蛮好的,加油 Java 难吗?好找工作吗?工资高吗?
Java 难吗?好找工作吗?工资高吗? 真厉害,加油 可以的,祝愿早日成为大佬 感觉不错 其实不用main方法这么麻烦,用junit直接test就行 大佬 ,带带弟弟好吗,弟弟想和你一起学习!
页:
[1]
2