Java基础补充

变量池是存储字符串常量的。

栈是弄方法的(基本数据类型在这)。

堆是保存new的参数(引用数据类型是在这,所以他通过形参会改变)。

方法区是存储方法有些啥。

类只加载一次。

jdk1.7前叫方法区,1.8改名元空间。

堆区

堆是java虚拟机所管理的内存中最大的一块内存区域,也是被各个线程共享的内存区域,该内存区域存放了对象实例及数组(但不是所有的对象实例都在堆中)。

如果new了一个字符串常量,会先索引到堆中,堆有索引到常量池中。

实参在堆区。

方法区

主要就是存放从class文件里加载进来的类的,而且常量池(存放字符串常量)也是在这块区域内的。

静态变量、静态方法在该区域,所以对象共享。

栈区

每个线程在创建时都会创建一个栈,其内部保存一个个的栈帧(Stack Frame),对应着一次次的Java方法调用。从main函数开始压栈。

形参变量随方法的创建在栈区。随方法释放而释放。

[JAVA基础] 成员变量和局部变量(一看就懂的总结归纳篇)_局部变量的值,成员变量和参数列表中的变量进行了访问或改变-CSDN博客

重载是参数列表不同就好(数量,类别,顺序)

switch可以遍历那些数据类型,可以遍历byte short int char String 枚举,因为switch是讲数据转换成int型,所以比int小的可以,浮点数不可以。

 静态变量随类加载就加载了,不是随对象加载而加载。优于对象存在。

使用sc读取键盘输入时,如果先使用nextint()在使用nextline()会跳过字符串的输入。要改用next()

原因就是,你在输入的时候,你输入的所有内容(包括空格和回车)都会存在缓冲区,next(), nextInt()这些会从缓冲区中读取你的输入,但是在遇到空格或者回车的时候会停止,不会将空格或者回车读入,而只有nextLine()会将空格和回车读入。所以在我第一次输入数字并敲下回车后,这个回车并没有被nextInt()读入,而是留在了缓冲区,并被nextLine()读到了这个回车,所以nextLine()直接就返回了,程序会直接结束。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值