zoukankan      html  css  js  c++  java
  • android 学习笔记 1

    Collections.unmodifiableList

    简单来说,当我们封装了一个list,外面可能会需要获取这个list。如果直接将list返回,外界很可能会修改这个list,导致数据不稳定。那有没有解决办法呢?有的。

    public List<String> getCourses(){
         return Collections.unmodifiableList(courses);
    }

    这样操作之后,通过 getCourses() 方法获得的 courses 是“只读的”,如果你试图向其添加一个新课程,则抛出 java.lang.UnsupportedOperationException。你必须通过 Student1.addCourse() 来向特定的 Student1 对象添加一个新课程。

    daemon线程

    java线程是一个运用很广泛的重点知识,我们很有必要了解java的daemon线程.

    1.首先我们必须清楚的认识到java的线程分为两类: 用户线程和daemon线程

    • 用户线程: 用户线程可以简单的理解为用户定义的线程,当然包括main线程(以前我错误的认为main线程也是一个daemon线程,但是慢慢的发现原来main线程不是,因为如果我再main线程中创建一个用户线程,并且打出日志,我们会发现这样一个问题,main线程运行结束了,但是我们的线程任然在运行).
    • daemon线程: daemon线程是为我们创建的用户线程提供服务的线程,比如说jvm的GC等等,这样的线程有一个非常明显的特征: 当用户线程运行结束的时候,daemon线程将会自动退出.(由此我们可以推出下面关于daemon线程的几条基本特点)

    2. daemon 线程的特点: 

    • 守护线程创建的过程中需要先调用setDaemon方法进行设置,然后再启动线程.否则会报出IllegalThreadStateException异常。
    • 由于daemon线程的终止条件是当前是否存在用户线程,所以我们不能指派daemon线程来进行一些业务操作,而只能服务用户线程。
    • daemon线程创建的子线程任然是daemon线程。
  • 相关阅读:
    LF.51.Insert In Binary Search Tree
    Use Array To Implement Queue With Size(bounded)
    Use LinkedList to implement Queue
    Use LinkedList to Implement Stack
    LT.11.Search Range In Binary Search Tree
    Odoo 12开发之后台视图 – 设计用户界面 ###
    Odoo 之业务逻辑
    Odoo开发之记录集 – 使用模型数据
    odoo 之 结构化应用数据
    odoo之数据导入导出以及模块数据
  • 原文地址:https://www.cnblogs.com/huansky/p/11718716.html
Copyright © 2011-2022 走看看