《Java从入门到精通》学习总结4
1.
程序运行期间,大部分数据都在内存中进行操作,当程序结束时,这些数据将消失。
如果需要将数据永久保存,可使用文件输入流 / 文件输出流与指定的文件建立连接,将需要的数据永久保存到文件中。
FileInputStream类与FileOutputStream类
FileReader类与FileWriter类
2.
可以在类中定义枚举类型,相当于内部类:
public class EnumTest {
enum Constants2 {
Constants_A, Constants_B
} public static void main(String[] args) {
for (int i = 0; i < Constants2.values().length; i++) {
System.out.println("枚举常量有:" + Constants2.values()[i]);
System.out.println('枚举常量:" + Constants2.values()[i] + "在枚举常量中的索引位置是:" + Constants2.values()[i].ordinal());
}
}
}
在枚举类型中,可以添加构造方法,但是规定这个构造方法必须为private修饰符所修饰
3.
向下转型操作通常会出现问题(ClassCastException),而泛型机制有效地解决了这一个问题
在JDK1.5版本以后,提出了泛型机制
定义泛型类时,一般类型名称使用T来表达,而容器的元素使用E来表达
public class OverClass<T> {
private T over; public T getOver() {
return over;
}
public void setOver(T over) {
this.over = over;
} public static void main(String[] args) {
OverClass<Boolean> over1 = new OverClass<>();
OverClass<Float> over2 = new OverClass<>();
}
}
4.
在Java中主要提供两种方式实现线程,分别为继承java.lang.Thread类、实现java.lang.Runnable接口。
实质上,Thread类实现了Runnable接口,其中的run()方法正是对Runnable接口中的run()方法的具体实现。
start()方法启动线程。主方法线程启动由Java虚拟机负责,程序员负责启动自己的线程。如果不调用start()方法,线程永远都不会启动。
5.
线程具有生命周期,其中包含7种状态,分别为出生状态、就绪状态、运行状态、等待状态、休眠状态、阻塞状态和死亡状态。
线程被创建到线程实例调用start()方法之前,是出生状态;
调用start()方法之后,是就绪状态;
线程得到系统资源后进入运行状态;
当处于运行状态下的线程调用Thread类中的wait()方法时,该线程便进入等待状态;
进入等待状态的线程必须调用Thread类中的notify()方法才能被唤醒,而notifyAll()方法是将所有处于等待状态下的线程唤醒。
当线程调用Thread类中的sleep()方法时,则会进入休眠状态;
如果一个线程在运行状态下发出 输入/输出请求,该线程进入阻塞状态;输入/输出结束后线程又进入就绪状态;
当线程的run()方法执行完毕时,线程进入死亡状态;
《Java从入门到精通》学习总结4的更多相关文章
- 《java从入门到精通》学习记录
目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...
- 《JAVA 从入门到精通》 - 正式走向JAVA项目开发的路
以前很多时候会开玩笑,说什么,三天学会PHP,七天精通Nodejs,xx天学会xx ... 一般来说,这样子说的多半都带有一点讽刺的意味,我也基本上从不相信什么快速入门.我以前在学校的时候自觉过很多门 ...
- 《Java从入门到精通》src0-8
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello wo ...
- cucumber java从入门到精通(4)Scenario Outline及数据驱动
cucumber java从入门到精通(4)Scenario Outline及数据驱动 到目前为止,我们的TodoList类工作良好,不过离我们的预期--任务清单系统还是有不少差距,究其原因不过如下: ...
- cucumber java从入门到精通(3)简单实现及断言
cucumber java从入门到精通(3)简单实现及断言 上一节里我们定义了step的java代码实现文件,step就是测试步骤及断言的集合,我们先定义出来,以后可以驱动开发以及在持续集成时重用. ...
- cucumber java从入门到精通(2)用代码定义步骤
cucumber java从入门到精通(2)用代码定义步骤 上一节里我们定义了feature文件,feature文件就是自然语言描述的用例文件,它有一定的章法,具体的潜规则是: 使用Feature关键 ...
- cucumber java从入门到精通(1)初体验
cucumber java从入门到精通(1)初体验 cucumber在ruby环境下表现让人惊叹,作为BDD框架的先驱,cucumber后来被移植到了多平台,有cucumber-js以及我们今天要介绍 ...
- 【转】Git版本控制软件从入门到精通学习手册
GIT 学习手册简介 本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命令以 ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- Nginx开发从入门到精通 学习目录分享学习 (阿里著作)
Nginx开发从入门到精通 缘起 nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块的开发以及它的内部 ...
随机推荐
- spring suite tool 添加namespace时只有bean一个
在eclipse的windows->Preferences->Spring->Beans Support->Namespaces 在此记录此问题.
- py3,休息时间玩点小把戏
100以内奇数: ls = [x for x in range(100) if x % 2 == 1] 100以内偶数: ls = list(x for x in range(100) if x % ...
- STS临时授权访问OSS
STS临时授权访问OSS OSS 可以通过阿里云 STS (Security Token Service) 进行临时授权访问.阿里云 STS 是为云计算用户提供临时访问令牌的Web服务.通过 STS, ...
- 质心坐标(barycentric coordinates)及其应用
一.什么是质心坐标? 在几何结构中,质心坐标是指图形中的点相对各顶点的位置. 以图1的线段 AB 为例,点 P 位于线段 AB 之间, 图1 线段AB和点P 此时计算点 P 的公式为 . 同理,在三角 ...
- Linux 工作目录切换命令
1.pwd 显示当前用户所处的目录 2.cd 切换工作路径 cd [目录名称],cd - 返回上次所处的目录 cd ~ 返回当前用户的根目录 cd.. 返回上级目录 3.ls 显示目录中的文件信息,l ...
- 如何利用Git生成pitch和打pitch
利用Git生成和应用patch 在程序员的日常开发与合作过程中,对于code的生成patch和打patch(应用patch)成为经常需要做的事情. 什么是patch?简单来讲,patch中存储的是你 ...
- python3 十六进制字符串进行分割并累加
最近忘性大,记录一下 需求: ‘80 11 F1 01 1A’字符串需要把每一个十六进制字符加起来,即80+11+F1+01+1A=? 很简单,不解释,直接上 hex(sum([int(i,16) f ...
- 利用pyinstaller生成exe之后,运行不能正常产生结果文件问题记录
https://segmentfault.com/q/1010000011284617/a-1020000011493026 在此链接已解决问题,现在在这里在详细记录一次 问题描述: 利用pychar ...
- 关于c# Debug和Release的区别 (转)
关于Debug和Release的区别之讨论本文主要包含如下内容: 1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错2. 怎样“调试” Release ...
- frist Django app — 三、 View
前面已经说过了Django中model的一些用法,包括orm,以及操作的api,接下来就是搭一些简单的界面学习view——Django中的view.主要介绍以下两个方面: url映射 请求处理 模板文 ...