java学习之初级篇 switch case语句结构跟break及字符串类型在栈与堆存放的方式描述

在switch (被匹配值)
case 匹配值 1
System.out.println(“是否退出_1”);
case 匹配值 2
System.out.println(“是否退出_2”);
case 匹配值 3
System.out.println(“是否退出_3”);
case 匹配值 4
System.out.println(“是否退出_4”);
break;
case 匹配值 5
System.out.println(“是否退出_5”);
case 匹配值 6
System.out.println(“是否退出_6”);
上面一段示例:
想要说明的是:如果 我输入的值匹配了 2号,那么会打印出
是否退出_2
是否退出_3
是否退出_4
遇到 break然后才会退出!
如果到了第4不还是没有break,那么这个程序会将接下来的所以打印值都会打印出来!
所以,最好是每匹配一个后面都加上一个break;视情况而定

注意:在for 循环 跟 while循环中;break 是跳出整个循环,
i 的值为 15
比如: while(i>3){
if(i<8)
break;
i–;
}
那么当 i 为7的时候,就会跳出整个while循环,而不是跳出if判断!

关于:8种基本类型存放及相关的包装类
其中,最为特别的是String 这个包装类
java内存分为五个区域
其中栈 存放变量值,在使命完成会被清除掉
而堆是通过某些算法(java有一本相关内存的书籍,可以进行参考),多次核对后,才会进行清除,并且存放在不同的区域中,直到完全清除!
那么 String 这个类在栈中是完全独立内存,如何理解:
String s1 = “abc”;
String s2 = new String(“abc”);
值相等,但是地址不等!这是变量值,所以存放在栈中,一个存放在堆中!
但是:
int i = 1;
Integer x = new Integer(1);
那么 i 这个变量跟 x这个变量 不管是值,还是地址都是想等,也就是说栈中的变量是共享的同一个地址的!

       但是如果String用了new关键字就会有一点不一样!会存放在堆中,而堆的存放方式不是共享的!
        比如:
        String s1 = new String("abc");
        String s2 = new String("abc");
        s1 跟 s2 的值相当,但是使用 “==” 却是false 也就是内存地址不相等!
        当然,因为有了new 关键字是显示存放的,所以是存放在堆中!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值