java种的一段代码,对于资源和效率的对比,请大佬们说一下哪种方法最好,并指点下各自的优缺点

代码片段1
public class UrlConfig {

private static Set<String> notFilter = new HashSet<String>();

static {
    final String url1 = "/login/get_code";
    final String url2 = "/login/check_code";
    final String url3 = "/login/token/verify";
    final String url4 = "/login/logout";
    final String url5 = "/login/verify";
    Set<String> set = new HashSet<>(Arrays.asList(url1, url2, url3, url4, url5));
    notFilter = Collections.unmodifiableSet(set);
}

public static Set<String> getNotFilter() {
    return notFilter;
}

}

代码片段2
public class UrlConfig {

private static final Set<String> ALLOWED_PATHS = Collections.unmodifiableSet(new HashSet<>(
    Arrays.asList("/login/logout",
        "/login/get_code",
        "/login/check_code",
        "/login/token/verify",
        "/login/verify")));

}

用到的地方:
boolean allowedPath = UrlConfig.getNotFilter().contains(path);

请问是片段1的效率好,还是片段2的效率好呢?
大佬指点

非热区的代码,怎么写效率都一样。
所谓热区,就是频繁调用,耗时很大的地方。

好比问坐火车,坐在前面的车厢是不是比后面的车厢是否先到达目的地。

效率不相上下,都差不多

效率是基本一致,第一段代码浪费了一点内存
改成

private static  final Set<String> notFilter;

这个new浪费了

这样改后2段代码编译后其实是一样的(还拿火车举例,不是车头车尾,而是相邻的座位,没什么区别),只是代码写的看着区别很大的样子