`

<转> 多线程应用以及final和static的区别与应用

    博客分类:
  • JAVA
 
阅读更多

1.final关键字

对于数据(基本数据类型):初始定义时赋值,表示一个常数,不可改变的值。

对于对象(非基本数据类型):进行声明时,必须将句柄初始化到一个具体的对象。永远不能将句柄变成指向另一个对象。然而,对象本身是可以修改的。

对于方法:第一个是为方法“上锁”,防止任何继承类改变它的本来含义。设计程序时,若希望一个方法的行为在继承期间保持不变,而且不可被覆盖或改写,就可以采取这种做法。第二个是为将一个方法设成final后,编译器就可以把对那个方法的所有调用都置入“嵌入”调用里。

对于类:如果说整个类都是final(在它的定义前冠以final关键字),就表明自己不希望从这个类继承,或者不允许其他任何人采取这种操作。换言之,出于这样或那样的原因,我们的类肯定不需要进行任何改变;或者出于安全方面的理由,我们不希望进行子类化(子类处理)。

2static关键字

为满足一种情形是只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。另一种情形是我们需要一个特殊的方法,它没有与这个类的任何对象关联。一旦将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系到一起。所以尽管从未创建那个类的一个对象,仍能调用一个static方法,或访问一些static数据。

3多线程应用

public class NoticeWebThread extends Thread
{

private List fundThreadList;
public void run() 
    {

//执行任务

    }

}

调用部分

public class NoticeWebTask extends TimerTask
{

    private final static List fundThreadList = new ArrayList();//

    public void run()
    {

        NoticeWebThread thread = new NoticeWebThread();
       thread.setFundThreadList(fundThreadList);
       thread.start();

   }

}

分享到:
评论

相关推荐

    Thinking in java(中文)

    &lt;br&gt;6.8 final关键字&lt;br&gt;6.8.1 final数据&lt;br&gt;6.8.2 final方法&lt;br&gt;6.8.3 final类&lt;br&gt;6.8.4 final的注意事项&lt;br&gt;6.9 初始化和类装载&lt;br&gt;6.9.1 继承初始化&lt;br&gt;6.10 总结&lt;br&gt;6.11 练习&lt;br&gt;&lt;br&gt;第7章 多形性&lt;br&gt;7.1 上溯...

    Java学习题答案

    &lt;br&gt;14 super()和this()方法只能在构造函数里调用.&lt;br&gt;15 方法的参数变量不能是final的&lt;br&gt;16 接口的所有方法默认都是public,abstract和non-static的&lt;br&gt;17 接口可以声明成final&lt;br&gt;18 内部类可以访问外层类的任何...

    AIC的Java课程1-6章

    &lt;br&gt; 理解和应用Java异常,常用类,IO,集合和多线程等开发技术。&lt;br&gt; 课时安排&lt;br&gt; 总学时:52学时&lt;br&gt; 授课:48学时 (含约20学时实验)&lt;br&gt; 考试:4学时&lt;br&gt; 预备知识&lt;br&gt; 了解和使用操作系统,...

    程序设计基础答案

    &lt;br&gt;9.Java 支持多线程机制。&lt;br&gt;10.一个 Java 源程序中允许有多个公共类。&lt;br&gt;11.Java 程序可以划分为两大类: Application 和 Applet。&lt;br&gt;12.for 语句中的循环体不能是空的。&lt;br&gt;13.子类不能继承父类的构造函数。...

    java多线程关键字final和static详解

    在本文中,我们将深入探讨final和static关键字在Java多线程编程中的应用和特点。 一、final关键字 final关键字是Java语言中的一种修饰符,用于修饰变量、方法和类。final关键字的主要特点是:一旦被赋值后就不能被...

    多线程读取文件

    本文将围绕“多线程读取文件”这一主题,结合给定的标签“源码”和“工具”,深入探讨如何在Java等编程语言中实现这一功能,并提供一些实用的工具和技巧。 首先,我们了解为什么需要多线程读取文件。当处理大型文件...

    采用slf4j+logback输出日志

    private static final Logger logger = LoggerFactory.getLogger(MyClass.class); public void myMethod() { logger.info("This is an informative message"); logger.error("An error occurred", new ...

    SpringBoot整合mybatis-plus实现多数据源的动态切换且支持分页查询.pdf

    public static final ThreadLocal&lt;String&gt; CONTEXT_HOLDER = new ThreadLocal&lt;&gt;(); public static void setDataSource(String dataSource) { CONTEXT_HOLDER.set(dataSource); } public static String get...

    生产者和消费者模式多线程

    生产者和消费者模式是多线程编程中一个经典的设计模式,它主要解决的是在多线程环境下资源的有效利用和同步问题。在这个模式中,生产者负责生成数据,而消费者负责消费这些数据。为了保证生产与消费的平衡以及避免...

    java基础中的final和static

    值得注意的是,final变量在使用前必须初始化,即使是在多线程环境中,也能确保其安全性。 接下来,我们转向`static`关键字: 1. **static变量**:被static修饰的变量是类变量,不属于类的任何特定实例,而是所有...

    多线程间通信:多生产者-多消费者实例

    在IT领域,多线程间通信是并发编程中的重要概念,尤其在服务器端应用和高并发系统中。本文将深入探讨“多生产者-多消费者”模式,这是一种经典的线程同步问题,旨在优化资源的利用和提高系统的效率。在这个模式中,...

    java之反射优化(缓存思路)源码

    在Java编程中,反射(Reflection)是一个强大的工具,它允许我们在运行时检查和操作类、接口、字段和方法。然而,反射操作通常比直接的Java代码执行慢,因为它涉及到动态类型检查和方法调用。因此,为了提高性能,...

    Slf4j+logback实现logback测试

    private static final Logger logger = LoggerFactory.getLogger(MyClass.class); public void myMethod() { logger.info("This is an info message"); } } ``` **测试Logback** 在`test-logback`这个测试...

    javafinal和static总结.docx

    - **不可变性**:通过final修饰符可以创建不可变对象,这对于多线程编程特别有用。 - **性能优化**:final方法可以被编译器优化,提高执行效率。 - **设计模式的支持**:某些设计模式(如单例模式)依赖于final...

    java 多线程 生产者消费者模式

    Java多线程编程是开发高并发、高性能应用的关键技术之一,而生产者消费者模式是多线程编程中常用的一种设计模式。它通过分离数据的生产和消费过程,实现了线程间的协同工作,有效避免了资源的竞争和浪费。在这个模式...

    java多线程编程起步

    在Java编程领域,多线程是一项至关重要的技术,它允许程序同时执行多个任务,从而提高系统效率和资源利用率。本文将深入探讨Java多线程编程的基础知识,包括线程的创建、同步、通信以及相关实例。 一、线程的创建 ...

    java 多线程之生产者与消费者

    Java多线程中的“生产者与消费者”模式是一种经典的并发编程模型,用于解决资源的生产与消费问题。在这个模式中,生产者线程负责创建或生成数据,而消费者线程则负责处理或消耗这些数据。这种模式充分利用了系统资源...

    Producer/Consumer 多线程处理文件

    在IT领域,多线程处理是提升程序性能和并发能力的重要技术之一。在这个"Producer/Consumer 多线程处理文件"的主题中,我们将深入探讨Java中的生产者消费者模型,以及如何利用这一模式来高效地处理大量数据,如一秒钟...

    Eclipse开发部署在Websphere的Socket服务器端应用

    private Map&lt;String, Socket&gt; connectedClients = new HashMap&lt;&gt;(); @Override public void contextInitialized(ServletContextEvent sce) { try { serverSocket = new ServerSocket(PORT); threadPool = ...

    java多线程解决消息压入栈和取出

    本话题将深入探讨如何利用Java的多线程特性来实现消息的压入栈和从栈中取出,以及其在访问网络等实际应用场景中的运用。 首先,我们需要理解栈(Stack)这一数据结构。栈是一种后进先出(LIFO)的数据结构,它允许...

Global site tag (gtag.js) - Google Analytics