会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132834个问题

问题:老师,为什么我的数组静态初始化用普通遍历无法遍历出来呢,以及动态初始化都无法遍历出来?

代码:

public class Exam {
    private String subject;
    private int score;

    @Override
    public String toString() {
        return "Exam{" +
                "subject='" + subject + '\'' +
                ", score=" + score +
                '}';
    }

    public Exam(String subject, int score){
        this.subject = subject;
        this.score = score;

    }
}

class Main{
    public static void main(String[] args) {
        //数组的静态初始化
        Exam [] exams = {new Exam("java",60),
                         new Exam("python",70),
                         new Exam("Big_Data",80),
                         new Exam("AI",90),};
         //普通遍历
        for (int j=0;j< exams.length;j++){
            System.out.println(exams);
        }
        //for-each遍历
        for(Exam a : exams){
            System.out.println(a);
        }

        Exam [] exams2;
        exams2 = new Exam[4];
        Exam e1 = new Exam("java",60);
        Exam e2 = new Exam("python",70);
        Exam e3 = new Exam("Big_Data",80);
        Exam e4 = new Exam("AI",90);
        
        //普通遍历
        for(int i=0;i<exams2.length;i++){
            System.out.println(exams2);
        }
        
        //for-each遍历
        for (Exam b : exams2){
            System.out.println(b);
        }
    }
}

运行结果:}NPV}$I~5ORHDP7EBN~W_C4.png



JAVA 全系列/第一阶段:JAVA 快速入门/数组和数据存储 35837楼
Python 全系列/第十四阶段:Python 爬虫开发/scrapy框架使用(旧) 35839楼
JAVA 全系列/第九阶段:权限控制与安全认证/Shiro(旧) 35841楼
Python 全系列/第四阶段:函数式编程和核心特性/生成器、迭代器、动态性 35843楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 35844楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 35848楼

from multiprocessing import Process, Semaphore, Lock, Queue
import time

empty = Semaphore(2)
full = Semaphore(0)
lock = Lock()


class Consumer(Process):
    def __init__(self, buffer):
        Process.__init__(self)
        self.buffer = buffer

    def run(self):
        while True:
            full.acquire()
            lock.acquire()
            info = self.buffer.get()
            print('Consumer pop an element',info)
            time.sleep(1)
            lock.release()
            empty.release()


class Producer(Process):
    def __init__(self, buffer):
        Process.__init__(self)
        self.buffer = buffer

    def run(self):
        while True:
            empty.acquire()
            lock.acquire()
            self.buffer.put('bmt')
            print('Producer append an element')
            time.sleep(1)
            lock.release()

            full.release()


if __name__ == '__main__':
    buffer = Queue(10)
    p = Producer(buffer)
    c = Consumer(buffer)
    p.daemon = True
    c.daemon = True
    p.start()
    c.start()
    p.join() 
    c.join()
   

    print('Ended!')

老师,这个代码只输出两个

Producer append an element

Producer append an element

就卡住不执行了,老师帮我分析下,谢谢!

Python 全系列/第三阶段:Python 网络与并发编程/并发编程 35850楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637