Java静态方法

标签 java static

我是 java 新手,我想知道是否可以从静态方法返回对象? 由于静态方法在类上运行......我在这里有点困惑。 另外,如果多个线程尝试调用它怎么办?

class Test
{
    public static test(List<String> input) {
        List<List<String>> res = new ... ;
        // some code
        return res;
    }
}

最佳答案

从静态方法返回对象没有问题。

您的示例也适用于多线程。每个线程都会在堆上创建一个不同的对象并返回对其的引用 - 所以没有问题,该对象不是共享的。

静态方法不对类进行操作。他们只是绑定(bind)到类而不是该类的成员。这意味着它们无权访问该类的任何非静态成员。除此之外,它们与非静态方法没有太大区别。

如果您的静态方法访问(写入或读取)静态成员,那么它可能会出现多线程问题,除非您使用锁定。

关于Java静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8253109/

相关文章:

java - 在 Java 中测试 while 循环中的条件然后退出 while 循环

java - 什么是 FTL 文件

PHP:以静态方法连接到数据库

html - 如何使用 CMD/Powershell 同时创建多个 html/文本文件

c++ - 跨文件共享静态变量 : namespace vs class

java - 构造函数在非静态 block 之前调用?

python - 如何根据构造函数参数初始化静态成员?

java - 如何在支持 J2ME 的设备中获取设备、制造商和型号?

java - Java 如何像 C 那样写/读硬件端口? (outb、inb 等..)

java - 创建聊天室应用程序时出现问题