作者
1 一个Java源程序是由若干个类 组成。
2 class 是Java的关键字,用来定义类。
3 Java应用程序中有多个类时,java命令后的类名必须是包含了 main 方法的那个类的名字。
4 一个Java应用程序必须且只有一个类含有 main 方法。
5 在一个Java应用程序中main方法必须被说明为 public static void 。
6 Java中所有程序都使用方法,应用程序以 main 方法开始。
7 Java源文件中有多个类,但只能有一个类是 public 类。
8 Java源程序编译后生成的字节码文件扩展名为 class 。
9 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符 。
10 Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字 。
11 关键字 就是Java语言中已经被赋予特定意义的一些单词,不可以把这类词作为名字来用。
12 使用关键字 boolean 来定义逻辑变量。
13 关键字 就是Java语言中已经被赋予特定意义的一些单词。
14 结构化程序设计的基本数据类型包括逻辑类型 、整数类型、字符类型、浮点类型。
15 Java中byte型数组在内存中的存储形式是补码 。
16 对于int型变量,内存分配 4 个字节。
17 对于byte型变量,内存分配 1 个字节。
18 对于long型变量,内存分配 8 个字节。
19 对于short型变量,内存分配 2 个字节。
20 结构化程序设计的基本数据类型包括整数类型 、逻辑类型、字符类型、浮点类型。
21 使用关键字 char 来定义字符变量。
22 结构化程序设计的基本数据类型包括字符类型 、逻辑类型、整数类型、浮点类型。
23 java中,浮点型变量的类型有float和 double 两种。
24 对于float型变量,内存分配 4 个字节。
25 对于double型变量,内存分配 8 个字节。
26结构化程序设计的基本数据类型包括字符类型、逻辑类型、整数类型、浮点类型 。
27 Java使用 Unicode 字符集。
28 混合运算中不同类型的数据先转化为同一类型,然后运算,其中不包括逻辑类型 和字符类型。
29 混合运算中不同类型的数据先转化为同一类型,然后运算,其中不包括字符类型 、逻辑类型。
30 当把级别高的变量的值赋予级别低的变量时,必须使用强制类型 转换。
31 Java中关系运算符的运算结果是 boolean 型。
32 Java中逻辑运算符的操作元必须是 boolean 型数据。
33 整数类型数据在内存中以二进制 的方式表示。
34 Java语言的控制语句有3种类型,即条件语句、循环语句 、和转移语句。
35 Java中有两种类型的控制语句即if和 switch 。
36 Java语言的控制语句有3种类型,即条件语句 、循环语句、和转移语句。
37 Java中的语句可分为方法调用语句、表达式语句、复合语句、控制语句 和package语句和import语句。
38 Java中的语句可分为方法调用语句、表达式语句、符合语句、控制语句、package语句和 import 语句。
39 在同一个switch语句中,case后的常量值 必须互不相同。
40 do-while循环和while循环的区别是 do-while循环体至少被执行一次 。
41 在循环体中,如果想结束本次循环可以用 continue 语句。
42 在循环体中,如果想跳出循环,结束整个循环可以用 break 语句。
43 面向对象编程序主要有封装性 、继承性、多态性的特点。
44 面向对象编程序主要有封装性、继承性、 、多态性的特点。
45 面向对象编程序主要有封装性、继承性、多态性 的特点。
46 类 是组成Java程序的基本要素,封装了一类对象的状态和方法。
47 类的实现包括两部分:类声明和类体 。
48 类 是组成Java程序的基本要素
49 类体有两部分构成:一部分是变量的定义,另一部分是方法 的定义。
50 类体有两部分构成:一部分是变量 的定义,另一部分是方法的定义。
51 在类体中,变量定义部分所定义的变量称为类的成员变量 。
52 成员变量在整个类内都有效,局部 变量只在定义它的方法内有效。
53 Java中成员变量又分为实例成员变量和类成员变量 。
54 Java中成员变量又分为实例成员变量 和类成员变量。
55 写类的目的是为了描述一类事物共有的属性 和功能。
56 写类的目的是为了描述一类事物共有的属性和功能 。
57 成员变量和局部变量的类型可以是Java中的任何一种数据类型 。
58 用修饰符 static 说明的成员变量是类变量。
59 变量的名字与成员变量的名字相同,则成员变量被隐藏 ,该成员变量在这个方法内暂时失效。
60 用修饰符static说明的成员变量是类变量 。
61 如果局部变量的名字与成员变量的名字相同,成员变量 将被隐藏。
62 方法定义包括两部分:方法声明 和方法体。
63 在Java中,当一个方法不需要返回数据时返回类型必须是 void 。
64 方法重载 是指,一个类中可以有多个方法具有相同的名字和类型,但这些方法的参数必须不同。
65 在Java程序语言中,它允许在一个class中有几个方法,都有相同的名字,这种用法称为方法重载 。
66 构造方法 是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并不返回任何数据类型。
67 Java中类的方法分为实例方法 和类方法。
68 Java中类的方法分为实例方法和类方法 。
69 因为类体的内容由成员变量的定义和成员方法的定义两部分组成,对成员变量的操作只能放在成员方法 中。
70 java中构造 方法与类名相同,没有返回值,在创建对象实例时由new运算符自动调用。
71 在类方法中只能调用类变量和类方法,不能调用实例 方法。
72 实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量 进行操作。
73 Java中类 是创建对象的模板。
74 当使用一个类创建了一个对象 时,我们也说给出了这个类的实例。
75 Java中用类创建一个对象包括对象的声明和为对象分配内存 两个步骤。
76 对象声明的一般格式为类名 对象名 。
77 一个类通过使用 new 运算符可以创建多个不同对象,这些对象将分配不同得内存空间。
78 一个类通过使用new运算符和类的构造方法 为声明的对象分配内存。
79 对象创建完后,通过使用运算符“.”,对象可以实现对变量的访问和方法 的调用。
80 Java中不同对象的实例 变量将被分配不同的内存空间。
81 Java中如果类中的成员变量有类 变量,那所有的对象的给这样的变量分配给相同的一处内存。
82 类方法和实例方法的区别在于类方法不但可以由对象调用还可以直接由类名 调用,而实例方法却不可以。
83 类方法 方法不但可以由对象调用还可以直接由类名调用,而实例方法却不可以。
84 类体中的方法分为:实例 方法和类方法。
85 类体中的方法分为:实例方法和类 方法
86 package 语句作为java源文件的第一条语句指明该源文件定义的类所在的包。
87 在java程序中,系统会自动引入java.lang这个包,因此不需要再使用 import 语句引入该包。
88 在java程序中,为了使程序能够使用自定义的包,必须在 classpath 环境变量中指明自定义包的位置。
89 java.lang 包是java语言的核心类库,它包含了运行java程序必不可少的系统类。
90 为了能使用Java提供的类,我们可以使用语句 import 来引入所需的类。
91 Java中用 private 修饰的成员变量和方法称为私有变量和私有方法。
92 Java中不用修饰的成员变量称为友好 变量。
93 访问权限是私有 变量,只能在本类中使用,不能在类外使用。
94 Java中用 public 修饰的成员变量和方法称为共有变量和共有方法。
95 访问权限是共有 变量,不但在本类中使用,还可以在任何另外一个类中使用。
96 访问权限是友好 变量,只能在本类和与本类同一个包中的其他类使用。
97 继承 是一种由已有的类创建新类的机制。
98 Java中由继承而得到的类称为子类 ,被继承的类称为父类。
99 Java中不支持多重 继承。
100 在类的声明中,通过使用关键字 extends 来创建一个类的子类。
101 Java中一个类可以有 1 个父类。
102 如果一个类的声明中没有使用extends关键字,这个类被系统默认为是 Object 类的子类。
103 子类自然地继承了其父类中不是 private 的成员变量作为自己的成员变量。
104 当子类中定义的成员变量和父类中的成员变量同名时,子类的成员变量隐藏 了父类的成员变量。
105 子类通过成员变量的隐藏和方法的重写 可以把父类的状态和行为改变为自身的状态和行为。
106 对于重写或继承的方法,Java运行时系统根据调用方法的实例 的类型来选择调用哪个方法。
107 对于子类创建的一个对象,如果子类重写了父类的方法,则运行时系统调用子类 的方法。
108 对于子类创建的一个对象,如果子类继承了父类的方法,未重写,则运行时调用父类 的方法。
109 在Java语言中多态性体现在由方法重载实现的静态多态性和方法重写 实现的动态多态性。
110 final 类不能被继承,即不能有子类。
111 abstract 类不能创建对象,必须产生其子类,由子类创建对象。
112 如果一个方法被修饰为 final 方法,则这个方法不能被重写。
113 对于 abstract 方法,只允许声明,而不允许实现。
114 如果一个方法被修饰为final方法,则这个方法不能被重写 。
115 如果一个类是一个abstract类的子类,它必须具体实现父类 的abstract方法。
116 局部变量的名字与成员变量的名字相同,若想在该方法内使用成员变量,必须使用关键字 this 。
117 在关键字中能代表当前类或对象本身的是 this 。
118 如果在子类中想使用被子类隐藏的父类的成员变量或方法可以使用关键字 super 。
119 子类如果想用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字 super 来表示。
120 如果在子类中想使用被子类隐藏了的父类成员变量或方法就可以使用关键字 super 。
121 Java中为了克服单继承 的缺点,使用了接口,一个类可以实现多个接口。
122 接口 就是方法定义和常量值的集合。
123 使用关键字 interface 来定义接口。
124 接口定义包括接口的声明和接口体 。
125 一个类通过使用关键字 implements 声明自己实现一个或多个接口。
126 如果一个类实现了某个接口,那么这个类必须实现该接口的所有方法 。
127 接口中的方法被默认的访问权限是 public 。
128 接口的定义包括接口声明 和接口体。
129 定义接口时,接口体中只进行方法的声明,不允许提供方法的实现 。
130 如果接口中的方法的返回类型不是void的,那么在类中实现该接口的方法时,方法体至少要有一个 return 语句。
131 内部类 指那些类定义代码被置于其他类定义中的类。
132 泛型 是Java SE5.0的新特性。
133 创建对象常用的方法就是使用 new 运算符和类的构造方法。
134 把Java应用程序中涉及到的类压缩成一个 jar 文件。
135 数组 是相同类型的数据按顺序组成的一种引用数据类型。
136 Java中定义数组后通过数组名 加数组下标,来使用数组中的数据。
137 Java中声明数组包括数组的名字、数组包含的元素的数据类型 。
138 声明数组 仅仅是给出了数组名字和元素的数据类型,要想真正的使用数组还必须为它分配内存空间。
139 一维数组通过下标符访问自己的元素,需要注意的是下标从 0 开始。
140 创建数组后,系统会给每一个数组元素一个默认的值,如float型是 0 。
141 声明数组仅仅是给出了数组名字和元素的数据类型,要想真正地使用数组还必须为它分配内存空间 。
142 数组声明后,必须使用 new 运算符分配内存空间。
143 Java中使用java.lang包中的 String 类来创建一个字符串变量,因此字符串变量是类类型变量,是一个对象。
144 创建一个字符串时,使用String类的构造方法 。
145 String 类是不可变类,对象所包含的字符串内容永远不会被改变。
146 StringBuffer 类是可变类,对象所包含的字符串内容可以被添加或修改。
147 使用String类的 length() 方法可以获取一个字符串的长度。
148 可以使用String类的 startsWith(String s) 方法判断一个字符串的前缀是否是字符串s。
149 可以使用String类的 endsWith(String s) 方法判断一个字符串的后缀是否是字符串s。
150 可以使用String类的 equals(String s) 方法比较一字符串是否与字符串s相同。
151 字符串调用 indexOf(String s) 方法从当前字符串的头开始检索字符串s,并返回首次出现
s 的位置。
152 字符串调用indexOf方法检索字符串s,并返回首次出现s 的位置。如果没有检索到字符串s,该方法返回的值是 -1 。
153 一个字符串s 通过调用方法 trim() 得到一个字符串对象,该字符串对象是s 去掉前后空格后的字符串。
154 java.lang 包中的Integer 类调用其类方法:
parseInt 可以将“数字”格式的字符串,如“12387”,转化为int 型数据。
155 可以使用java.lang包中的 Integer 类将形如“12387”的字符串转化为int型数据。
156 可以使用java.lang包中的 Long 类将字符串转化为long型数据。
157 可以使用String类直接调用 valueOf 方法将数值转化为字符串。
158 StringBuffer类调用方法, toString() 返回缓冲区内的字符串。
159 Object类有一个public方法是 toString ,一个对象通过调用该方法可以获得该对象的字符串表示。
160 Object 类是所有Java 类的最终祖先,如果一个类在声明时没有包含extends 关键词,那么这个类直接继承Object类。
161 对于一个已经不被任何引用变量引用的对象,当垃圾回收器准备回收该对象所占用的内存时,将自动调用该对象的 finalize() 方法。
162 每个Java 基本类型在java.lang 包中都有一个相应的包装 类,把基本类型数据转换为对象。
163 在Java 集合中不能存放基本类型数据,如果要存放数字,应该使用包装类型 。
164 Character 类和Boolean 类直接继承Object 类,除此以外,其他包装类都是 java.Number 的直接子类。
165 包装类都覆盖了Object 类的 toString() 方法,以字符串的形式返回包装对象所表示的基本类型数据。
166 所有的包装类都是final 类型,因此不能创建它们的子类 。
167 Math 类提供了许多用于数学运算的静态方法。
168 Math 类是 final 类型的,因此不能有子类。
169 Random 类提供了一系列用于生成随机数的方法。
170 Date 类以毫秒数来表示特定的日期。
171 java.text.DateFormat 抽象类用于定制日期的格式, 它有一个具体子类为 SimpleDateFormat 。
172 BigDecimal 类能够进行浮点数的精确加法、减法和乘法运算,对于浮点数的除法运算,可以满足用户指定的精度。
173 异常处理 方法是一种非常有用的辅助性程序设计方法。采用这种方法可以使得在程序设计时将程序的正常流程与错误处理分开,有利于代码的编写和维护。
174 按异常在编译时是否被检测来分,异常可以分为两大类:受检异常与非受检异常 。
175 程序可以处理的异常对应的类是 Exception 及其子类。
176 抛出异常可以利用 throw 语句。
177 处理异常的方式有两种:捕捉异常 方式与转移异常方式。
178 捕捉异常方式是通过 try-catch-finally 结构处理异常。
179 在try-catch-finally 结构中, finally 语句块一般总是会被执行,不管有没有异常产生。
180 异常处理流程中,其中 try 代码块包含了可能发生异常的程序代码。
181 异常处理流程中,其中 catch 代码快紧跟在try 代码块后面,用来捕获并处理异常。
182 异常处理流程中,其中 finally 代码块用于释放被占用的相关资源。
183 对于程序中可能出现的受检查异常,要么用try…catch 语句捕获并处理它,要么用 throw 语句抛出它,Java 编译器会对此做检查。
184 File 对象调用方法 mkdir() 创建一个目录。
185 文件输入流(输入流的子类)提供对文件的存取。为了读取文件,使用文件输入流构造方法来打开 一个到达该文件的输入流。
186 输入流试图要打开的文件可能不存在,就出现I/O 错误,Java 生成一个出错信号,它使用一个 IOException 对象来表示这个出错信号。
187 read 方法给程序提供一个从输入流中读取数据的基本方法。
188 read 方法从输入流中顺序读取源中的单个字节数据,该方法返回字节值(0~255 之间的一个整数),如果到达源的末尾,该方法返回 -1 。
189 虽然Java 在程序结束时自动关闭所有打开的流,但是当我们使用完流后,显式地关闭 任何打开的流仍是一个良好的习惯。
190 在操作系统把程序所写到输出流上的那些字节保存到磁盘上之前,内容有时被存放在内存缓冲区中,通过调用 close() 方法,可以保证操作系统把流缓冲区的内容写到它的目的地。
191 java.lang 包中的System 类有两个重要的类成员:in 和 out ,分别是输入流和输出流类型的对象。
192 FileInputStream 使用字节 读取文件,不能直接操作Unicode 字符。
193 RandomAccessFile 类中用 seek 方法,来定位RandomAccessFile 流的读写位置。
194 Java的抽象窗口工具包中包含了许多类来支持 GUI 设计。
195 JButton类、JLabel类是包javax.swing中的类,并且是javax.swing包中的 JComponent 的子类。
196 Java把有JComponent类的子类或间接子类创建的对象称为一个swing组件 。
197 javax.swing包的类 JPanel 是用来建立面板的。
198 javax.swing包中的 JScrollPane 类也是JContainer类的子类,该类创建的对象也是一个容器,称为滚动窗口。
199 javax.swing包中的 JFrame 类或子类所创建的一个对象就是一个窗口。
200 Java程序中可以向容器添加组件,一个容器可以使用 add() 方法将组件添加到该容器中。
201 在组件类的一些常用方法中 setBackground 方法是设置组件的背景颜色。
202 在组件类的一些常用方法中 setForeground 方法是设置组件的前景颜色。
203 Java中JFrame类的 setTitle 方法是用来设置窗口的名字。
204 JFrame类创建的对象是一个窗口容器,它默认布局是 BorderLayout 布局。
205 JPanel 的默认布局管理器是 FlowLayout 。
206 Java的java.awt包中定义了5种布局类,分别是FlowLayout、BorderLayout、CardLayout、 GridLayout 和GridBagLayout。
207 Java的java.awt包中定义了5种布局类,分别是FlowLayout、BorderLayout、 CardLayout 、GridLayout和GridBagLayout。
208 FlowLayout 对应的布局是容器将其中的组件按照加入的先后顺序从左向右排列。
209 BorderLayout 对应的布局是把容器内的空间简单地划分为东、西、南、北、中5个区域,每加入一个组件都应该指明把这个组件加在哪个区域中。
210 GridLayout 是使用较多的布局编辑器,其基本布局策略是把容器划分成若干行乘若干列的网格区域,组件就位于这些划分出来的小格中。
211 FlowLayout、GridLayout、BordrLayout布局对象都可以使用方法setVgap(intvgap)设置当前布局中组件的垂直间距 。
212 FlowLayout、GridLayout、BordrLayout布局对象都可以使用方法setHgap(inthgap)设置当前布局中组件的水平间距 。
213 使用 CardLayout 布局的容器可以容纳多个组件,但实际上同一时刻容器只能从这些组件中选出一个来显示。
214 Java中能够产生事件的对象都可以成为事件源 ,如文本框、按钮、键盘等。
215 Java中事件源发生事件时,监视器 就自动调用执行被类实现的某个接口方法。
216 当用户与GUI 交互,比如移动鼠标、按下鼠标键、单击Button 按钮、在文本框内输入文本、选择菜单项或者关闭窗口时,GUI 会接受到相应的事件 。
217 Java中,监听器 负责接收和处理这种事件。
218 Java中为了能监视到ActionEvent类型的事件,事件源必须使用 addActionListener() 方法获得监视器。
219 只要用户单击JButton,就会触发一个ActionEvent 事件,该事件被监听器接收,它的方法 actionPerformed() 被执行。
220 在监听类的事件处理方法中通过事件类的 getSource() 方法来获得事件源。
221 Java的 java.awt.event 包中包含了许多用来处理事件的类和接口。
222 鼠标事件类MouseEvent中的方法getSource()是获取发生鼠标事件的事件源 。
223 使用MouseListener接口处理鼠标事件,事件源发生的鼠标事件有5种,按下鼠标键、释放 鼠标键、点击鼠标键、鼠标进入和鼠标退出。
224 鼠标事件的类型是 MouseEvent ,即当发生鼠标事件时,该类自动创建一个事件对象。
225 使用MouseListener接口处理鼠标事件,鼠标事件源发生的鼠标事件包括,按下鼠标键、释放鼠标键、单击 鼠标键、鼠标进入和鼠标退出。
226 MouseMotionListener 和MouseListener 都监听 MouseEvent 事件。
227 javax.swing包中的 JButton 类专门用来建立按钮,即它的实例对象就是一个按钮。
228 在JButton类中, getText() 方法是用来获取按钮上的名字。
229 在javax.swing中 JLabel 类使用来创建标签的,即它的一个实例就是一个标签。
230 在javax.swing包中的 JTextField 类是专门用来建立文本框,它的一个对象就是一个文本框。
231 Java中文本框类的 setText(String s) 方法是在文本框中设置文本。
232 Java中文本框类的 getText() 方法是获取文本框中的文本。
233 Java中标签类的 setText(String s) 方法是设置标签的名字。
234 Java中标签类的 getText() 方法是获取标签的名字。
235 Java中 JTextArea 类是专门用来建立文本区的,即它的一个对象就是一个文本区。
236 javax.swing包中的 JCheckBox 类是专门用来建立选择框的。
237 在JCheckBox类中, isSelected 方法是用来返回选择框的布尔状态。
238 javax.swing包中的类 JList 类是专门用来建立列表框。
239 对话框与一般窗口的区别在于它必须依赖 于其他窗口。
240 对话框分为两种,如果有模式 对话框被显示,那么其他窗口都处于不活动状态,只有当用户关闭了对话框,才能操纵其他窗口。
241 对话框分为两种,如果无模式 对话框被显示,其他窗口照样处于活动状态。
242 在对话框类Dialog中的方法setModal(boolean)的作用是设置对话框的模式 。
243 在对话框类Dialog中的方法 setSize() 是设置对话框的大小。
244 对话框的默认布局是 BorderLayout 布局,在创建对话框时必须有对话框大小的设置。
245 FileDialog 是Dialog类的子类,它创建的对象称为文件对话框。
246 FileDialog是Dialog类的子类,它创建的对象称为文件对话框 。
247 Java开发程序大多是单线程 的,即一个程序只有一条从头至尾的执行线索。
248 多线程 是指同时存在几个执行体,按几条不同的执行线索共同工作的情况。
249 线程 是指进程中的一个执行流程。
250 一个进程在其执行过程中,可以产生多个线程 ,形成多条执行线索。
251 每个java程序都有一个默认的主线程 。
252 对于java应用程序,主线程都是从 main 方法执行的线索。
253 在java中要想实现多线程,必须在主线程中创建新的线程对象 。
254 当一个线程处于创建 状态时,它仅仅是一个空的线程对象,系统不为它分配资源。
255 一个正在执行的线程可能被人为地中断,让出CPU 的使用权,暂时中止自己的执行,进入阻塞 状态。
256 处于死亡 状态的线程不具有继续运行的能力。
257 处于就绪 状态的线程首先进入就绪队列排队等候处理器资源,同一时刻在就绪队列中的线程可能有多个。
258 在线程排队时,优先级高 的线程可以排在较前的位置,能优先享用到处理器资源,而其他线程只能排在它后面再获得处理器资源。
259 对于优先级相同的线程,遵循队列的先进先出 原则被分配给处理器资源。
260 Java语言使用 Thread 类及其子类的对象来表示线程。
261 线程调度管理器 负责管理线程排队和处理器在线程间的分配,一般都配有一个精心设计的线程调度算法。
262 在java系统中,线程调度依据优先级基础上的先到先服务 原则。
263 当生成一个 Thread 类的对象之后,一个新的线程就产生了。
264 Java 中编程实现多线程应用有两种途径:一种是用Thread 类的子类创建线程,另一种是用Thread 类结合 Runnable 接口创建线程。
265 Thread 类综合了Java 程序中一个线程需要拥有的属性和方法。
266 start() 方法将启动线程对象,使之从新建状态转入就绪状态并进入就绪队列排队。
267 当 run 方法执行完毕,线程就变成死亡状态,所谓死亡状态就是线程释放了实体,即释放分配给线程对象的内存。
268 利用构造 方法创建新线程对象之后,这个对象中的有关数据被初始化,从而进入线程生命周期的新建状态。
269 优先级高的线程可以在它的run()方法中调用 sleep() 方法来使自己放弃处理器资源,休眠一段时间。
270 Java多线程使用中,调用 currentThread 方法可确定当前占有CPU的线程。
271 当用Thread 类的构造方法Thread(Runnabletarget)创建线程对象时,构造方法中的参数必须是一个具体的对象,该对象称作线程的目标对象 。
272 当线程调用start 方法时,一旦轮到它来享用CPU,目标对象就会自动调用接口中的 run 方法。
273 一个实现了 Runnable 接口的类实际上定义了一个主线程之外的新线程的操作。
274 Thread 类代表线程类,它的方法 run() ―包含线程运行时所执行的代码。
275 Thread 类代表线程类,它的方法 start() 用于启动线程。
276 Java 提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程。线程调度器按照线程的优先级 决定应调度哪些线程来执行。
277 在独占 方式下,当前活动线程一旦获得执行权,将一直执行下去,直到执行完毕或由于某种原因主动放弃CPU,或者是有一高优先级的线程处于就绪状态。
278 线程调用了yield()或 sleep() 方法主动放弃CPU。
279 线程的优先级用数字来表示, 范围从1 到 10 。
280 一个线程的缺省优先级是 5 。
281 使用多线程时,有时需要协调两个或多个线程的活动。使线程协调工作的过程称为同步化 。
282 可以通过使用 synchronized 关键词修改方法来同步化对方法的访问。
283 线程中, wait 的作用:释放已持有的锁,进入等待队列。
284 线程中, notify 的作用:唤醒wait 队列中的第一个线程并把它移入锁申请队列。
285 线程中, notifyAll 的作用:唤醒wait 队列中的所有的线程并把它们移入锁申请队列。
集合框架:
1 数组 的特点是长度固定,可以用下标索引,并且所有的元素的类型都是一致的
2 堆栈 只允许对最后插入的元素进行操作(也就是后进先出,Last In First Out – LIFO)。如果你移除了最后一个元素,那么你可以操作倒数第二个元素,依次类推。
3 集合跟列表两者基本相似,但是集合 不允许存放重复的元素。
4队列和堆栈有些相似,不同之处在于在队列里第一个插入的元素也是第一个被删除的元素(即是先进先出)。
5 链表 是一种由多个节点组成的数据结构,并且每个节点包含有数据以及指向下一个节点的引用
6 HashMap 的访问时间接近稳定,它是一种键值对映射的数据结构
7 树 是一种由节点组成的数据结构,每个节点都包含数据元素,并且有一个或多个子节点,每个子节点指向一个父节点
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群346942462,我们一起学Java!