欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

J2SE总结(一)

程序员文章站 2022-05-12 14:19:05
...

递归:

在一个方法内部对自身进行调用;
J2SE总结(一)
上图中的method方法里面又调用了method方法;

Java格式:

J2SE总结(一)

public static void m2(int i){
    if(i>3)
        return;
    System.out.println(i+j);
}

和C#的区别在于java的大括号在第一行结尾;
缩进Shift+Tab是一个很好用的快捷键;


三目条件运算符:

语法格式:x?y:z
x为boolean类型,x的结果为True则三目运算结果为y的值,否则为z的值;

例:

int score = 80; int x = -100;
string type = score < 60 ? "不及格" :"及格";
system.out.println("type=" + type);

80 > 60结果为False,结果为及格;


程序运行中堆和栈是如何分配的: 以一个简单程序为例:

package com.journaldev.test;  

public class Memory {  

    public static void main(String[] args) { // Line 1  
        int i=1; // Line 2  
        Object obj = new Object(); // Line 3  
        Memory mem = new Memory(); // Line 4  
        mem.foo(obj); // Line 5  
    } // Line 9  

    private void foo(Object param) { // Line 6  
        String str = param.toString(); //// Line 7  
        System.out.println(str);  
    } // Line 8  

}  

J2SE总结(一)
程序执行过程:
1)main()方法线程在栈内存中创建;
2)obj和mem在堆中创建;
3)调用foo()方法时候,引用foo()方法在栈中创建;
4)第七行String在堆空间中String池中运行;
5)foo()方法在第八行结束,堆中foo()方法占用的内存块被释放;
6)第九行,main()方法结束,栈为main()方法创建的内存空间销毁;程序结束;

堆和栈的区别:
1、应用程序所有的部分都使用堆内存,然后栈内存通过一个线程运行来使用。
2、不论对象什么时候创建,他都会存储在堆内存中,栈内存包含它的引用。栈内存只包含原始值变量好和堆中对象变量的引用。
3、存储在堆中的对象是全局可以被访问的,然而栈内存不能被其他线程所访问。
4、栈中的内存管理使用LIFO的方式完成,而堆内存的管理要更复杂了,因为它是全局被访问的。
5、栈内存是生命周期很短的,然而堆内存的生命周期从程序的运行开始到运行结束
6、和堆内存比,栈内存要小的多,因为明确使用了内存分配规则(LIFO),和堆内存相比栈内存非常快。

相关标签: J2SE