小编Adi*_*lai的帖子

Java堆栈和堆内存管理

我想知道如何在以下程序中分配内存:

public class MemoryClass {

    public static void main(final String[] args) {
        int i = 0;
        MemoryClass memoryClass = new MemoryClass();
        memoryClass.myMethod(memoryClass);
    }

    private void myMethod(final Object obj) {
        int i = 1;
        String s = "HelloWorld!";

    }

}
Run Code Online (Sandbox Code Playgroud)

现在,据我所知,下图描述了内存分配的发生方式:
基本运行时内存分配


在上图中,堆栈存储器中的内存,objs实际上是对它们放置在堆内存中的" 实际对象 " 的引用.
以下是我想到的一系列问题:

  1. 哪里的方法小号存储?
  2. 如果我创建了另一个MemoryClass内部对象myMethod,JVM会在堆栈内存中再次为相同的方法分配内存吗?
  3. JVM myMethod是否会在执行完成后立即释放分配的内存,如果是,它将如何管理问题2中提到的情况(仅当JVM多次为同一方法分配内存时才适用).
  4. 如果我只声明了s并且没有初始化它,那么JVM是否仍会为所有java.lang.String类的方法分配内存,如果是这样,为什么呢?

java memory memory-management heap-memory stack-memory

19
推荐指数
2
解决办法
1万
查看次数

Collection.stream()的实现

我已经在JDK 1.8上工作了几天,在那里我遇到了一些与此类似的代码:

List<Integer> list = Arrays.asList(1,2,3,4,5);
list.stream();
Run Code Online (Sandbox Code Playgroud)

现在,对于使用streams(java.util.stream)的人来说,它看起来既简单又干净,我找不到实现该java.util.Collection.stream()方法的实际类.

当我说list.stream():我有以下问题:

  1. java.util.stream.Stream从哪里得到的?
  2. 他们是如何实现它而不实际"扰乱"现有的集合?(假设他们没有触及它们)

我也尝试过的单证看java.util.AbstractCollectionjava.util.AbstractList,但未能找到它.

java java-8 java-stream

17
推荐指数
4
解决办法
1838
查看次数

基于spring的组动态POJO验证

考虑以下pojo以供参考:

public class User{

    private  String username;
    private String firstName;
    private String middleName;
    private String lastName;
    private String phone;

    //getters and setters

}
Run Code Online (Sandbox Code Playgroud)

我的应用程序基本上是基于spring-boot的REST API,它公开了两个端点,一个用于创建用户,另一个用于检索用户.

"用户"属于某些类别,group-a,group-b等,我从post请求的标题中获取.

我需要在运行时验证用户数据,验证可能会因用户组而有所不同.

例如,属于组-a的用户可能将电话号码作为可选字段,而对于某些其他组,它可能是必填字段.

正则表达式也可能因其组而异.

我需要能够配置spring,以某种方式动态验证我的pojo一旦创建它们各自的验证集就会根据它们的组触发.

也许我可以创建一个yml/xml配置,允许我启用它?

我宁愿不标注我private String phone@NotNull@Pattern.

我的配置如下:

public class NotNullValidator implements Validator {
    private String group;
    private Object target;

    public String getGroup() {
        return group;
    }

    public void setGroup(String group) {
        this.group = group;
    }

    public Object getTarget() {
        return target;
    } …
Run Code Online (Sandbox Code Playgroud)

java validation spring jackson spring-boot

12
推荐指数
2
解决办法
2662
查看次数

如何解析嵌入JavaScript对象内的字符串的html?

的jsfiddle

<script>
  angular.module('module', []);

  angular.module('module').controller('hello', function($scope) {
    $scope.obj = {
      "text": "<u>HelloWorld</u>"
    };

  });

</script>

<body>

  <div ng-app='module' ng-controller='hello'>
    Current:{{obj.text}}

    <br>
    <br> Expected:<u>HelloWorld</u>
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

我试图读取存储在JSON中的对象,然后将其打印在我的网页上.

我已经提供了上面代码的链接.

我期待输出是一个字符串"HelloWorld",它是下划线.

PS:

  • 我无法编辑JSON
  • obj是被提取的对象,我无法共享JSON所以我使用了硬编码值.

html javascript angularjs

5
推荐指数
1
解决办法
64
查看次数