其他分享
首页 > 其他分享> > 20189217 2018-2019-2 《移动平台开发实践》第5周学习总结

20189217 2018-2019-2 《移动平台开发实践》第5周学习总结

作者:互联网

教材学习内容总结

第16章要点:

要点1:创建Path实例

创建Path实例的两种方法:

Path path1 = Paths.get("/home/user/images");
Path path2 = Paths.get("/home","user","images");  

创建一个Path实例,并不会创建一个物理的文件或路径。通常,Path实例引用不存在的物理对象。要创建一个文件或目录,需要使用File类。

要点2:文件和目录的处理和操作

创建文件:

public static Path createFile(Path file, java.nio.file.attribute.FileAttribute<?>... attrs)
// attrs参数可选

创建目录:

public static Path createDirectory(Path directory, java.nio.file.attribute.FileAttribute<?>... attrs)
// attrs参数可选

删除文件/目录/符号链接:

public static void delete(Path path)   
// 如果path是目录,那么,这个目录必须为空

获取一个目录对象:

public static DirectoryStream<Path> newDirectoryStream(Path path)   
// 返回一个DirectoryStream实例来遍历一个目录中的所有对象 

要点3:输入/输出流

java.io包中有4个抽象类来表示输入输出流:

第19章要点:

要点1:创建线程

创建线程方法1:扩展java.lang.Thread

继承Thread类,重写该类的run()方法。

创建线程方法2:实现java.lang.Runnable

实现Runnable接口,并重写该接口的run()方法,该run()方法同样是线程执行体,创建Runnable实现类的实例,并以此实例作为Thread类的target来创建Thread对象,该Thread对象才是真正的线程对象。

Runnable中的run方法和Thread类中的run方法使相同的。实际上,Thread自身实现了Runnable.

要点2:线程优先级

要设置一个进程的优先级,需要调用其setPriority方法:

public final void setPriority(int priority)

要点3:停止线程

Thread类有一个stop方法,用来停止一个线程,但是这种方法是不安全的,不推荐使用。
推荐的方法是使用带有一个条件的while循环,当想要停止线程的时候,直接让该条件计算为假即可。
例如:

boolean condition = true;   
public void run {
    while (condition) {
        // do something here  
    }
}

在你的类中,还需要提供一个方法来修改condition的值:

public synchronized void stopThread(){
    conditon = false;
}

要点4:同步

当多个线程需要同时访问相同的资源或数据时将会发生线程干扰问题。

原子操作

方法同步

块同步

Java允许通过块同步来锁定任何的对象,语法如下:

synchronized(object){
    // do something while locking object
}

同步的块给了你一个对象的内在锁,在块的代码执行之后,释放该锁。

方法同步和锁定当前对象的块同步是一样的。

可见性

要点5:线程协调

public final void wait() throws InterruptedException    

上面代码使当前线程等待,直至另一个线程调用notify或notifyAll方法,

public final void wait(long timeout) throws InterruptedException   

导致当前线程等待,直到另一个线程针对该对象调用notify或notifyAll方法,或者经过了指定的时间量。

public final void notify()

通知单个的线程,等待该对象的锁。如果有多个线程,随即选择其中之一来通知。

public final void notifyAll()   

通知所有的线程,等待该对象的锁。

第20章要点:

要点1:原子变量

java.util.concurrent.atomic包提供了诸如AtomicBoolean、AtomicInteger、AtomicLong和AtomicReference等类。这些类可以执行各种原子性的操作。

要点2:Executor 和 ExecutorService

要点3:Callable和Future

要点4:锁

第22章要点:

要点1:

教材学习中的问题和解决过程

代码调试中的问题和解决过程

代码托管

上周考试错题总结

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 1/3 17/37
第三周 787/1287 1/4 15/52
第四周 350/1637 1/5 16/68
第五周 1049/2686 1/6 20/88

参考资料

标签:20189217,2019,Callable,线程,2018,要点,Path,方法,public
来源: https://www.cnblogs.com/PNIDEMOOO/p/10629659.html