zoukankan      html  css  js  c++  java
  • Java 基础考察代码

    在学习Java Reference时,无意中浏览到一篇博客,看到了下面代码。

    请问下面代码输出什么?为什么?

    此段代码很细节,遂记录。

     1 import java.lang.ref.WeakReference;
     2 import java.util.WeakHashMap;
     3 
     4 /**
     5  * 很不错的一个示例
     6  * 考察对象的内存分配,常量池,字符串对象的创建细节
     7  * 弱引用,异常的处理逻辑
     8  */
     9 public class WeakDemo {
    10     public static void main(String[] args) {
    11         System.out.println(get());
    12 
    13     }
    14 
    15     public static String get(){
    16         // 使用下面 两种字符串创建的方式,得出的结果相同吗
    17         //String a = new String("a"); // 1
    18         String a = "a"; // 2
    19         WeakReference<String> b = new WeakReference<>(a);
    20         WeakHashMap<String, Integer> weakHashMap = new WeakHashMap<>();
    21         weakHashMap.put(b.get(), 1);
    22         a = null;
    23         System.gc();
    24         String c = "";
    25         try{
    26             c = b.get().replace("a", "b");
    27             return c;
    28         }catch (Exception e){
    29             c = "c";
    30             return c;
    31         }finally {
    32             c += "d";
    33             return c + "e";
    34         }
    35     }
    36 }

    知识点1: 字符串对象的初始化

    知识点2: 异常的处理逻辑

    知识点3: 弱引用

  • 相关阅读:
    使用dfs求解全排列
    并查集
    Best Cow Line
    Saruman's Army
    Fence Repair
    Laking Counting
    淘宝商品定向爬取
    爬取股票信息
    python中的正则表达式的使用

  • 原文地址:https://www.cnblogs.com/yelao/p/12582457.html
Copyright © 2011-2022 走看看