J2SE总结(一)

递归:

在一个方法内部对自身进行调用;
这里写图片描述
上图中的method方法里面又调用了method方法;

Java格式:

这里写图片描述

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  

}  

这里写图片描述
程序执行过程:
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),和堆内存相比栈内存非常快。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
本书内容非常全面,涵盖了《Java编程思想》、《Java学习笔记》等书籍所有知识要点,并结合作者自己经验总结而编写,内容丰富程度胜过一切书籍 众所周知,一般书籍为了销售需要,往往很少的知识点,却需要添加大量的废话、例子,以增加书本厚度,使得阅读者需要花大量时间去看、理出要点,非常浪费时间,本电子书仅仅为了作者查阅资料用而编写,因此内容虽丰富,但却非常精简,结构清晰,语言简洁,非常易于理解,可大大节省了阅读者的学习时间,欢迎下载 目录: .....Java语言认识 ..........概述 ..........Java语言认识 ..........Java底层平台认识 .....JDK安装与配置 ..........安装JDK ..........设置环境变量 ..........虚拟机的内存 .....JDK工具使用 ..........javac.exe(编译) ..........java.exe(运行) ..........javadoc.exe(生成文档) ..........jar.exe(打包) ..........native2ascii.exe(转码) ..........apt.exe(注解处理工具) .....Java语法入门 ..........概述 ..........变量与数据类型 ..........标识符 ..........运算符 ..........控制台输入输出 ..........流程控制 ..........数组的使用 .....字符串和正则表达式 ..........字符串 ..........正则表达式 .....类和对象 ..........类的对象的使用 ..........自定义类 ..........自定义时使用修饰符 .....继承和多态 ..........继承(扩展) ..........多态 .....接口和抽象类 ..........接口和抽象类 ..........接口和抽象类相关设计模式 .....GUI(图形用户界面)和Applet ..........GUI_添加组件 ..........GUI_添加事件 ..........GUI_双缓冲作图 ..........Applet .....异常处理 ..........概述 ..........异常处理 ..........自定义异常 .....断言 ..........概述 ..........使用断言 .....枚举 ..........概述 ..........定义枚举 .....泛型 ..........概述 ..........定义泛型类 .....注解(Annotation) ..........概述 ..........注解的定义/使用/解析 .....I/O_体系 ..........认识IO ..........Java中的IO .....I/O_BIO ..........I/O流对象与使用 ..........文件相关类的使用 .....集合 ..........概述 ..........集合API .....线程 ..........概念 ..........操作线程 ..........线程安全-使用同步 ..........线程池-ThreadPoolExecutor .....反射 ..........概述 ..........Class类 ..........类的加载 ..........操作对象

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值