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

object2.zip

怎么schoolName不是null,这个也是静态属性啊

image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 2566楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 2569楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2570楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2571楼

一、如下代码

package cn.sxt.pool108;
 
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
 
public class Test02 {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        // 如何创建一个线程池
        // 1.创建一个线程池,线程池中只有一个线程对象
         //ExecutorService pool = Executors.newSingleThreadExecutor();
        // 2.创建一个线程池,线程池中有线程的数量固定
         ExecutorService pool = Executors.newFixedThreadPool(10);
        // 3.创建一个线程池,线程池中的线程的数量可以动态的改变
        //ExecutorService pool = Executors.newCachedThreadPool();
         
        //创建一个集合
         List<Future> list = new ArrayList<Future>();
          
        /**使用线程池执行大量的Callable任务*/
        for(int i=0;i<20;i++) {
            //使用匿名内部类
            //创建任务
            Callable<Integer> task = new Callable<Integer>() {
 
                @Override
                public Integer call() throws Exception {
                    Thread.sleep(2000);
                    return (int)(Math.random()*10)+1;
                }              
            };//任务结束
            //将任务交给线程池
            Future f = pool.submit(task);
            //每执行完一个任务就将它添加到集合当中去
            list.add(f);
            //System.out.println(f.get());
        }
        System.out.println("ok?");
        //任务全部执行完毕之后再去遍历集合
        for (Future future : list) {
            System.out.println(future.get());
        }
        System.out.println("OKOK!");
        //关闭线程池
        pool.shutdown();
    }
}

老师,当我将任务交给线程池以后,打印出来f.get();这时候效率没有增加,一个个打印出来。当我放入集合中的时候,也是每次一个个放进来,我并没有觉得效率增加了啊。为什么有System.out.println(f.get());的时候后面的线程要等System.out.println(f.get());完成后再走,而有list.add(f)时,线程可以同步运行。这不应该是同级别的吗?

JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程和并发编程(旧) 2573楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2574楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术(旧) 2576楼

package com.bjsxt.TestDate;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * pdf上面的例子
 * 示例8-16:DateFormat类和SimpleDateFormat类的使用
 * 时间为2020年10月2日晚上9点前后
 */

public class TestDateFormat {
    public static void main(String[] args) throws ParseException {
        //new出SimpleDateFormat对象
        SimpleDateFormat s1=new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
        SimpleDateFormat s2=new SimpleDateFormat("yyyy-MM-dd");

        //将时间对象转换成字符串
        String daytime=s1.format(new Date());
        /*
        上面那行代码相当于
        Date d9=new Date();//当前时刻对象
        String daytime=s1.format(d9);
         */
        System.out.println(daytime);//运行结果为:2020-10-02 08-54-37
        System.out.println(s2.format(new Date()));//运行结果为:2020-10-02
        /**
         * 相当于 Date d10=new Date();
         *       String daytime2=s2.format(d10);
         *       System.out.println(daytime2);
         */
        System.out.println(new SimpleDateFormat("hh:mm:ss").format(new Date()));//打印结果为:09:08:47
        /*跟上面一样的道理*/

        String time="2020-10-2";
        Date dt =s2.parse(time);//这里需要使用throws ParseException把异常抛出去
        System.out.println("date1:"+dt);//A运行结果为:date1:Fri Oct 02 00:00:00 CST 2020
       time="2027-10-7 20:15:30";
        dt=s1.parse(time);
        System.out.println("date2:"+dt);
    }
}

运行出来:

2020-10-03

10:13:12

date1:Fri Oct 02 00:00:00 CST 2020

Exception in thread "main" java.text.ParseException: Unparseable date: "2027-10-7 20:15:30"

at java.text.DateFormat.parse(DateFormat.java:366)

at com.bjsxt.TestDate.TestDateFormat.main(TestDateFormat.java:40)

杜老师,麻烦你看一下是什么原因导致?为什么会报错,谢谢您

JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 2579楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 2580楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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