むし 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日

悬赏问题

  • ¥150 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装