零基础java自学流程-Java语言高级227

559 篇文章 0 订阅
546 篇文章 0 订阅
package org.dance.tools;

import java.util.concurrent.TimeUnit;

/**
 * 类说明:线程休眠辅助工具类
 */
public class SleepTools {

    /**
     * 按秒休眠
     * @param seconds 秒数
     */
    public static final void second(int seconds) {
        try {
            TimeUnit.SECONDS.sleep(seconds);
        } catch (InterruptedException e) {
        }
    }

    /**
     * 按毫秒数休眠
     * @param seconds 毫秒数
     */
    public static final void ms(int seconds) {
        try {
            TimeUnit.MILLISECONDS.sleep(seconds);
        } catch (InterruptedException e) {
        }
    }
}
package org.dance.day2.util;

import org.dance.tools.SleepTools;

import java.util.concurrent.CountDownLatch;

/**
 * CountDownLatch的使用,有五个线程,6个扣除点
 * 扣除完成后主线程和业务线程,才能执行工作
 *  扣除点一般都是大于等于需要初始化的线程的
 * @author ZYGisComputer
 */
public class UseCountDownLatch {

    /**
     * 设置为6个扣除点
     */
    static CountDownLatch countDownLatch = new CountDownLatch(6);

    /**
     * 初始化线程
     */
    private static class InitThread implements Runnable {

        @Override
        public void run() {

            System.out.println("thread_" + Thread.currentThread().getId() + " ready init work .....");

            // 执行扣减 扣减不代表结束
            countDownLatch.countDown();

            for (int i = 0; i < 2; i++) {
                System.out.println("thread_" + Thread.currentThread().getId() + ".....continue do its work");
            }

        }
    }

    /**
     * 业务线程
     */
    private static class BusiThread implements Runnable {

        @Override
        public void run() {

            // 业务线程需要在等初始化完毕后才能执行
            try {
                countDownLatch.await();
                for (int i = 0; i < 3; i++) {
                    System.out.println("BusiThread " + Thread.currentThread().getId() + " do business-----");
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {

        // 创建单独的初始化线程
        new Thread(){
            @Override
            public void run() {
                SleepTools.ms(1);
                System.out.println("thread_" + Thread.currentThread().getId() + " ready init work step 1st.....");
                // 扣减一次
                countDownLatch.countDown();
                System.out.println("begin stop 2nd.....");
                SleepTools.ms(1);
                System.out.println("thread_" + Thread.currentThread().getId() + " ready init work step 2nd.....");
                // 扣减一次
                countDownLatch.countDown();

            }
        }.start();
        // 启动业务线程
        new Thread(new BusiThread()).start();
        // 启动初始化线程
        for (int i = 0; i <= 3; i++) {
            new Thread(new InitThread()).start();
        }
        // 主线程进入等待
        try {
            countDownLatch.await();
            System.out.println("Main do ites work.....");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

}

返回结果:

thread_13 ready init work .....
thread_13.....continue do its work
thread_13.....continue do its work
thread_14 ready init work .....
thread_14.....continue do its work
thread_14.....continue do its work
thread_15 ready init work .....
thread_15.....continue do its work
thread_11 ready init work step 1st.....
begin stop 2nd.....
thread_16 ready init work .....
thread_16.....continue do its work
thread_16.....continue do its work
thread_15.....continue do its work
thread_11 ready init work step 2nd.....
Main do ites work.....
BusiThread 12 do business-----
BusiThread 12 do business-----
BusiThread 12 do business-----

通过返回结果就可以很直接的看到业务线程是在初始化线程完全跑完之后,才开始执行的


尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili尚学堂给同学们带来全新的Java300集课程啦本课程为Java300集2022版第一季,配合最新版的Java课程,所有视频重新录制,课件所有图形做了重新绘制和配色,图解学习Java,让学习成为一种享受本套教程专门为零基础学员而制,适合准备入行Java开发的零基础学员,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由浅入深。不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。后续课https://www.bilibili.com/video/BV1qL411u7eE?spm_id_from=333.999.0.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 韩顺平的《零基础30天学会Java》课件是一套系统而又实用的教学材料。这套课件以初学者为主要对象,强调零基础入门,并通过30天的学习进程,全面而有条理地介绍了Java编程语言的基础知识和应用技巧。 《零基础30天学会Java》课件的特点之一是逻辑清晰。作者将Java学习过程划分为不同的阶段,每天的学习内容都有明确的目标和自测题,帮助学习者系统地掌握所学知识。同时,课件中的例子和实战项目贴近实际应用,有助于理解和巩固概念。 其次,课件内容详尽且易于理解。韩顺平老师以简明的语言和图文并茂的方式,解释了Java的基本语法、常用类库、面向对象编程等重要概念。每一部分都有大量的示例代码和实践项目,让学习者能够动手实践,并且从中积累经验。 此外,该课件注重实践与实用。通过大量的案例和项目实践,学习者能够快速掌握Java编程的常见应用场景,例如图形界面编程、网页开发和数据库操作等。这种实践导向的学习方式可以培养学习者的编程实力和解决实际问题的能力。 总而言之,《零基础30天学会Java》课件是一套针对初学者设计的优质教学材料。其逻辑清晰、内容详尽且易于理解,注重实践与实用,能够帮助学习者快速掌握Java编程的基本知识和技巧。无论是在学校学习还是自学过程中,这套课件都是一份有价值的参考资料。 ### 回答2: 韩顺平的《零基础30天学会Java》课件是一套帮助初学者快速入门Java编程的教材。这套课件以通俗易懂的方式讲解了Java的基础知识和常用编程技巧,并通过大量的实例和练习帮助学员巩固所学内容。 课件内容涵盖了Java的基本语法、数据类型、流程控制、面向对象编程、异常处理、文件操作等方面的知识。每个知识点都有配套的示例代码和详细的解释,帮助学员理解并掌握相关概念和技巧。 《零基础30天学会Java》课件的特点在于它的简洁明了和循序渐进的教学方式。韩顺平老师注重培养学员的实际编程能力,因此课件中的每个例子都非常实用,并且通过逐步增加难度的方式帮助学员逐步提高自己的编程能力。 此外,课件还包含了丰富的练习题和编程实践,让学员可以在实际操作中巩固所学知识并提高编程技能。通过反复练习,学员能够更加深入地理解Java编程思想,掌握常见的编程技巧和解决问题的方法。 总之,韩顺平的《零基础30天学会Java》课件是一套很好的教学资料,适合零基础的学员入门Java编程。通过系统学习和实践,学员能够在短时间内掌握Java的基础知识和编程技巧,为进一步提升自己的编程能力奠定良好的基础。 ### 回答3: 《韩顺平零基础30天学会Java课件》是一套由韩顺平编写的培训资料,旨在为零基础的学习者提供一种快速掌握Java编程技能的方法。 该课件以初学者的视角出发,采用了简单易懂的语言和生动具体的案例,帮助学习者快速理解和掌握Java编程的基本概念和语法。 课件内容通常包括以下方面: 1. Java语言基础知识:介绍Java编程语言的特点、发展历史、环境配置等,为学习者建立起对Java的整体认识。 2. Java核心技术:讲解Java语言的基本语法、数据类型、运算符等,帮助学习者打下扎实的编程基础。 3. 面向对象编程:引导学习者了解面向对象的思想和编程方法,包括类、对象、继承、封装、多态等概念和应用。 4. Java常用类库:介绍Java中常用的类库,如集合类、IO类、异常处理等,为学习者提供编程的基础工具。 5. GUI编程:帮助学习者掌握Java的图形用户界面编程方法,包括Swing和AWT等相关知识。 通过《韩顺平零基础30天学会Java课件》,学习者可以在较短的时间内系统地学习和掌握Java编程的基本技能。韩顺平老师讲解深入浅出,注重实践练习,为学习者提供了一个快速入门的平台,帮助他们尽快掌握Java编程,提升编程能力。 这套课件适用于零基础的学习者,尤其适合那些想要从事软件开发、移动应用开发等相关岗位的求职者。不仅可以作为自学的教材,也可以作为培训机构的教学资料。无论是自学还是参加培训课程,学习者都可以通过该课件迅速掌握Java编程技能,为自己的职业发展打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值