定时器

    技术2022-05-13  8

    编程不是什么神奇的事情,重要的是你知道有那么个方法,但是可悲的事情是怎么才知道呢?有这样的需求。就是间隔多少时间去做什么的问题!那就是有Timer这个类,局部变量不能是是私有的。

    java中有一个叫做线程池的概念,名字叫做Excutors,正像java中的Utils(工具类一样),里面有s,这多多少少会有些相似之处吧!对啊!和工具类一样,这没有构造方法,有很多的静态的方法,返回值类型基本上不是经常见到的4类八种基本数据类型,这里的返回值大部分是静态的,其中大部分都是接口类型的,返回的都是ExcutorService,既然是接口,当然就有他的实现类,可以说是巨多无比,怎样才能在很多的类中找到自己想要得到的,也正是这样,java中的多肽原理,子类对象指向的是父类的引用,其实java中的文档时很规范的,方便阅读,至少是尽量方便阅读吧,在很多地方认真的琢磨或许会少走很多的弯路,例如ExcutorService的子类ScheduledThreadPoolExecutor,是不是可以翻译为可调度的线程池的执行者了,很好,因为下面的类很多都是去调度线程的,想到这啊!我真的很感谢java命名得好处了,驼峰标识,方便阅读,其实很多的时候啊!那么一长串的类名用词典是翻译不出来的,拆分的依据就是以字母的大小写为标志,但是这里的线程池绝非线程,只是一个缓冲的池子里面装了很多的线程,要想启动线程还是的实现他的runnable接口,实现他的方法,但是有别于传统的线程start来启动线程,这里的线程通过excutor来执行,参数是要执行的线程,还有执行多长时间执行一次。

     

    面向对象的三大特性:封装,就是不要直接操作变量,封装成方法供外界访问,继承,多肽是天天接触的事情。回忆几个快捷键:ALT+up键可以将鼠标所指的行向前移,ALT+down键可以将鼠标所指向的哪一行下移,当鼠标在中间的时候,只需shift+enter键就可以移到下一行,ctrl+shift+enter键就可以将鼠标移到上一行。正则表达式:.可以匹配任意的字符,/d数字0-9,/D字母全部,/w 任意的数字或者字母,/D非数字,其实正则表达式呢!就是一道关卡,起到拦截的作用!难点是怎么区划分。

    练习的时候用的driverManager获得连接,但是在实际中是用连接池,用完了以后要关闭,由于关闭和链接很费时,何为回调,就是自己的代码要调用别人的代码,但是呢!别人的是一些接口,自己要写一个类去实现这个接口里面的方法,功能实现和功能定义是分开的,功能的定义是放在接口里面的,功能的实现是其子类来实现的,要去调用这样的方法,先调用功能定义的代码,然后功能定义的代码在调用自己写的代码!多个线程访问同一资源的时候。要用Synchronize加锁,这里面锁着的资源是不能被锁住的,先前的线程访问结束以后  后面的线程才可以访问!但是很多的时候只要锁住拥有那个资源的方法就行了!在方法面前用的锁是this,而在静态代码方法里面的用锁是当前类的字节码,要想实现静态方法和非静态代码的同步!用的锁是统一的当类的字节码!重定向:common >后面是绝对路径c:/  有关联 就搞到同一个类里面, 操作数据的时候,最好。是把数据封装到方法里面,对提供访问的方法,内部类加了static和static修饰的变量无疑,都是什么呢?类加载的时候就有了,不需要实例,能访问内里面其他的变量,ThreadLocal在线程范围内共享数据,在同一个线程里面的数据任何时候都能拿到一样的!线程池的作用!创建线程也是很消耗cpu资源的,主要用于j2ee的应用 AtomicInteger原子性的整数,decrementAndGet 减少并且拿!AtomicIntegerArray原子性额数组,方法内要访问外部的变量,加final 哪怕是前面要运算,运算以后还是要加final,newSingThread创建一个!没有继续的创建!

     


    最新回复(0)