むし 2023-04-19 13:37 采纳率: 71.4%
浏览 36
已结题

初学者问下关于java静态方法的问题

本人才刚入行java开发一两个月, 对于静态方法一直有一点不太明白。
比方说下面这块代码

@Data
public final class JsonResult {

    /**
     * 业务状态码
     */
    private Integer code;

    /**
     * 错误时的消息
     */
    private String message;

    /**
     * 处理成功时,需要响应到客户端的数据
     */
    private Object data;

    public static JsonResult fail(Integer code, String message) {
        JsonResult jsonResult = new JsonResult();
        jsonResult.code = code;
        jsonResult.message = message;
        return jsonResult;
    }
}

现在假设有两个用户在办理业务时都出错了,需要在controller层调用 JsonResult.fail 这个方法返回客户端。
A用户输入的参数是 JsonResult.fail(500, "A的错误"),
B用户输入的参数是 JsonResult.fail(500, "B的错误"),
如果A用户在return的时候正好时间片到了并把时间片分配给了B用户, 然后B用户在return的时候时间片恰好又到了, 此时如果A用户抢到了时间片, 会把B的信息, 也就是(500, "B的错误"), 这个信息发给A用户吗? 为什么?

  • 写回答

2条回答 默认 最新

  • 於黾 2023-04-19 13:43
    关注

    方法虽然是静态的,但是调用方法的主体不是静态的呀,这跟时间片有什么关系,你学多线程学瓦特了
    在不同的调用中,形参、局部变量、返回值这些占据的是不同的内存,所以弄不混
    在你理解中静态函数就是把返回值写进静态变量里然后不同的线程去抢,那能对吗

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月19日

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题