摘要:
线程通信:不同的线程执行不同的任务,如果这些任务有某种关系,线程之间必须能够通信,协调完成工作。 经典的生产者与消费者案例(Producer/Consumer): 分析案例: 1.生产者和消费者应该操作共享的资源(实现方式来做)。 2.使用一个或多个线程来表示生产者(Producer)。 3.使用一 阅读全文
摘要:
线程不安全的问题分析: 当多线程并发访问同一个资源对象的时候,可能出现线程不安全的问题。 要解决上述多线程并发访问同一个资源的安全性问题 解决方案:A线程进入操作的时候,B和C线程只能在外等着,A操作结束,A和B和C才有机会进入代码去执行 方式1:同步代码块 语法: synchronized(同步锁 阅读全文
摘要:
创建和启动线程,传统有两种方式: 方式1:继承Thread类; 方式2:实现Runnable接口; 线程类(java.lang.Thread):Thread类和Thread的子类才能称之为线程类。阅读API main方法就是一个主线程 方式1:继承Thread类 步骤: 1. 定义一个类A继承于ja 阅读全文
摘要:
并行和并发是即相似又有区别(微观概念): 并行:指两个或多个事件在同一时刻点发生; 并发:指两个或多个事件在同一时间段内发生。 在操作系统中,在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单CPU系统中,每一时刻却能有一道程序执行(时间片),故微观上这些程序只能分时地交替执 阅读全文
摘要:
主要还是要多查文档API这里只是提示一些主要的。 当查看API的时候,发现没有公共构造器,但是方法又不是static修饰符修饰的,立马就要意识到,该类中至少有一个static方法用于返回当前对象。这就体现了单例模式。 和系统相关的类: System:表示系统的意思 Runtime:表示java的运行 阅读全文
摘要:
枚举是就是固定的多个常量对象的集合 定义格式: [修饰符] enum 枚举类型名 { 常量A,常量B,常量C...; } 我们自定义的枚举类型,在编译(在底层)都是直接继承于java.lang.Enum是所有枚举的父类。 枚举类的特点: 1. 枚举的直接父类java.lang.Enum,但是不能显示 阅读全文
摘要:
相同点: 1. 都位于继承的顶端,用于被其他实现或继承。 2. 都不能被实例化。 3. 都可以定义抽象方法,其子类/实现类都必须覆写这些抽象方法。 不同: 1. 接口没有构造方法,抽象类有构造方法。 2. 抽象类可包含普通方法和抽象方法,接口只能包含抽象方法(java8之前)。 3. 一个类只能继承 阅读全文
摘要:
1. 默认值 int默认值为0,Integer的默认值为null。推论:Integer既可以表示null又可以表示0 2. 包装类中提供了该类型相关的很多算法操作方法 如把十进制装换为2进制(toBinaryString),8进制(toOctalString),16进制(toHexString)。 阅读全文
摘要:
1. 包装类中的常量: MAX_VALUE/MIN_VALUE/SiZE(在内存中存储占多少位)/TYPE(对应的基本类型) 2. 包装类的构造器:xxx类型的包装类xxx类型:(xxx表示8大基本数据类型) Xxx(xxx value):接受自己的基本数据类型值,如Integer(int val) 阅读全文