- 浏览: 27535 次
- 来自: 上海
文章分类
最新评论
(十四)
1. 一个类若想被序列化,则需要实现java.io.Serializable接口,该接口中没有定义任何方法,是一个标识性接口(Marker Interface),当一个类实现了该接口,就表示这个类的对象是可以序列化的。
2. 在序列化时,static变量是无法序列化的;如果A包含了对B的引用,那么在序列化A的时候也会将B一并地序列化;如果此时A可以序列化,B无法序列化,那么当序列化A的时候就会发生异常,这时就需要将对B的引用设为transient,该关键字表示变量不会被序列化。
3. 当我们在一个待序列化/反序列化的类中实现了以上两个private方法(方法声明要与上面的保持完全的一致),那么就允许我们以更加底层、更加细粒度的方式控制序列化/反序列化的过程。
4. Java中如果我们自己没有产生线程,那么系统就会给我们产生一个线程(主线程,main方法就在主线程上运行),我们的程序都是由线程来执行的。
5. 进程:执行中的程序(程序是静态的概念,进程是动态的概念)。
6. 线程的实现有两种方式,第一种方式是继承Thread类,然后重写run方法;第二种是实现Runnable接口,然后实现其run方法。
7. 将我们希望线程执行的代码放到run方法中,然后通过start方法来启动线程,start方法首先为线程的执行准备好系统资源,然后再去调用run方法。当某个类继承了Thread类之后,该类就叫做一个线程类。
8. 一个进程至少要包含一个线程。
9. 对于单核CPU来说,某一时刻只能有一个线程在执行(微观串行),从宏观角度来看,多个线程在同时执行(宏观并行)。
10. 对于双核或双核以上的CPU来说,可以真正做到微观并行。
11.
1) Thread类也实现了Runnable接口,因此实现了Runnable接口中的run方法;
2) 当生成一个线程对象时,如果没有为其设定名字,那么线程对象的名字将使用如下形式:Thread-number,该number将是自动增加的,并被所有的Thread对象所共享(因为它是static的成员变量)。
3) 当使用第一种方式来生成线程对象时,我们需要重写run方法,因为Thread类的run方法此时什么事情也不做。
4) 当使用第二种方式来生成线程对象时,我们需要实现Runnable接口的run方法,然后使用new Thread(new MyThread())(假如MyThread已经实现了Runnable接口)来生成线程对象,这时的线程对象的run方法就会调用MyThread类的run方法,这样我们自己编写的run方法就执行了。
12. 关于成员变量与局部变量:如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,他们对该成员变量是彼此影响的(也就是说一个线程对成员变量的改变会影响到另一个线程)。
13. 如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝,一个线程对该局部变量的改变不会影响到其他的线程。
14. 停止线程的方式:不能使用Thread类的stop方法来终止线程的执行。一般要设定一个变量,在run方法中是一个循环,循环每次检查该变量,如果满足条件则继续执行,否则跳出循环,线程结束。
15. 不能依靠线程的优先级来决定线程的执行顺序。
16. synchronized关键字:当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
17. Java中的每个对象都有一个锁(lock)或者叫做监视器(monitor),当访问某个对象的synchronized方法时,表示将该对象上锁,此时其他任何线程都无法再去访问该synchronized方法了,直到之前的那个线程执行方法完毕后(或者是抛出了异常),那么将该对象的锁释放掉,其他线程才有可能再去访问该synchronized方法。
18. 如果一个对象有多个synchronized方法,某一时刻某个线程已经进入到了某个synchronized方法,那么在该方法没有执行完毕前,其他线程是无法访问该对象的任何synchronized方法的。
1. 一个类若想被序列化,则需要实现java.io.Serializable接口,该接口中没有定义任何方法,是一个标识性接口(Marker Interface),当一个类实现了该接口,就表示这个类的对象是可以序列化的。
2. 在序列化时,static变量是无法序列化的;如果A包含了对B的引用,那么在序列化A的时候也会将B一并地序列化;如果此时A可以序列化,B无法序列化,那么当序列化A的时候就会发生异常,这时就需要将对B的引用设为transient,该关键字表示变量不会被序列化。
3. 当我们在一个待序列化/反序列化的类中实现了以上两个private方法(方法声明要与上面的保持完全的一致),那么就允许我们以更加底层、更加细粒度的方式控制序列化/反序列化的过程。
4. Java中如果我们自己没有产生线程,那么系统就会给我们产生一个线程(主线程,main方法就在主线程上运行),我们的程序都是由线程来执行的。
5. 进程:执行中的程序(程序是静态的概念,进程是动态的概念)。
6. 线程的实现有两种方式,第一种方式是继承Thread类,然后重写run方法;第二种是实现Runnable接口,然后实现其run方法。
7. 将我们希望线程执行的代码放到run方法中,然后通过start方法来启动线程,start方法首先为线程的执行准备好系统资源,然后再去调用run方法。当某个类继承了Thread类之后,该类就叫做一个线程类。
8. 一个进程至少要包含一个线程。
9. 对于单核CPU来说,某一时刻只能有一个线程在执行(微观串行),从宏观角度来看,多个线程在同时执行(宏观并行)。
10. 对于双核或双核以上的CPU来说,可以真正做到微观并行。
11.
1) Thread类也实现了Runnable接口,因此实现了Runnable接口中的run方法;
2) 当生成一个线程对象时,如果没有为其设定名字,那么线程对象的名字将使用如下形式:Thread-number,该number将是自动增加的,并被所有的Thread对象所共享(因为它是static的成员变量)。
3) 当使用第一种方式来生成线程对象时,我们需要重写run方法,因为Thread类的run方法此时什么事情也不做。
4) 当使用第二种方式来生成线程对象时,我们需要实现Runnable接口的run方法,然后使用new Thread(new MyThread())(假如MyThread已经实现了Runnable接口)来生成线程对象,这时的线程对象的run方法就会调用MyThread类的run方法,这样我们自己编写的run方法就执行了。
12. 关于成员变量与局部变量:如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,他们对该成员变量是彼此影响的(也就是说一个线程对成员变量的改变会影响到另一个线程)。
13. 如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝,一个线程对该局部变量的改变不会影响到其他的线程。
14. 停止线程的方式:不能使用Thread类的stop方法来终止线程的执行。一般要设定一个变量,在run方法中是一个循环,循环每次检查该变量,如果满足条件则继续执行,否则跳出循环,线程结束。
15. 不能依靠线程的优先级来决定线程的执行顺序。
16. synchronized关键字:当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
17. Java中的每个对象都有一个锁(lock)或者叫做监视器(monitor),当访问某个对象的synchronized方法时,表示将该对象上锁,此时其他任何线程都无法再去访问该synchronized方法了,直到之前的那个线程执行方法完毕后(或者是抛出了异常),那么将该对象的锁释放掉,其他线程才有可能再去访问该synchronized方法。
18. 如果一个对象有多个synchronized方法,某一时刻某个线程已经进入到了某个synchronized方法,那么在该方法没有执行完毕前,其他线程是无法访问该对象的任何synchronized方法的。
发表评论
-
java 常用API
2013-09-10 10:13 9451. Java面向对象基本概念 ‘Java基本上是面向对象的 ... -
java 基础知识复习(十五)
2013-09-09 11:45 611( ... -
java 基础知识复习(十三)
2013-09-08 23:37 610... -
java 基础知识复习(十二)
2013-09-08 23:36 719... -
java 基础知识复习(十一)
2013-09-08 23:36 584( ... -
java 基础知识复习(十)
2013-09-08 23:36 526... -
java 基础知识复习(九)
2013-09-06 13:55 628(九 ... -
java 基础知识复习(八)
2013-09-06 09:06 417... -
java 基础知识复习(七)
2013-09-06 09:06 488... -
java 基础知识复习(六)
2013-09-06 09:06 544... -
java 基础知识复习(五)
2013-09-05 11:30 520... -
java 基础知识复习(四)
2013-09-05 11:26 512... -
java 基础知识复习(三)
2013-09-05 11:22 597... -
java 基础知识复习(二)
2013-09-05 11:12 679... -
java 基础知识复习(一)
2013-09-05 10:51 541...
相关推荐
这份“Java基础知识复习资料”涵盖了学习Java编程所必需的关键概念和技术,旨在帮助初学者巩固基础,同时也适合有经验的开发者进行回顾。 1. **Java语法基础** - **变量与数据类型**:Java提供了基本数据类型(如...
Java基础知识复习资料
【JAVA基础知识复习题】 在Java编程语言中,基础知识点涵盖了语法、类与对象、异常处理、线程等多个方面。以下是对这些知识点的详细解释: 1. **编译与执行过程**: Java源代码(`.java`文件)通过Java编译器...
JAVA理论知识基础复习是指对JAVA语言的基础知识进行复习和总结,本文将涵盖构造方法、new关键字、方法的重载、特殊变量this、static定义常量、继承、方法的重写、特殊变量super、多态性等相关知识点。 一、构造方法...
Java 基础知识复习 本文将对 Java 基础知识进行详细的讲解,涵盖了 Java 的基本概念、语法、数据类型、变量、类型转换等方面。 1. Java 基本概念 Java 是一种面向对象的编程语言,具有平台独立性、简单性、分布式...
Java 基础知识大全 本资源摘要信息是 Java 基础知识大全的总结,涵盖了 Java 语言的基本概念、特点、历史发展等方面的知识点。以下是本资源摘要信息的详细内容: 一、 Java 语言的特点 * 面向对象:Java 语言是...
### Java基础知识复习与总结 #### 变量与方法 在Java中,对于实例变量,如果没有显式地赋值,那么会根据其数据类型自动获得一个默认值:数值型变量为0,布尔型变量为`false`,引用类型的变量为`null`。然而,局部...
基本的复习资料总结,没有重点,个个都经典的题目。一般都涉及到得问题,有一些还常用于面试问题中。
Java是一种强类型语言,这意味着在编写Java代码时,变量必须先声明并初始化...以上是对Java基础知识的一些关键点的详细解释,涵盖了类型系统、变量、访问控制和一些核心特性。这些内容对于理解Java编程的基础至关重要。
自己在网上找的相对好一点的java复习资料,留个纪念 。详细讲述了Java课程的知识点
这份"Java基础考试复习资料"涵盖了初学者需要理解的重要概念,旨在帮助广大备考者有效地准备Java相关的考试。以下是一些关键知识点的详细说明: 1. **Java简介**:Java是由Sun Microsystems公司开发的一种跨平台、...
Java基础知识点复习资料 Java是当前最流行的编程语言之一,本文将对Java基础知识点进行总结和复习,包括类路径的设置、-path的设置、Java数据类型、基本运算符号、控制语句、数组、方法、重载、类的定义、对象的...
Java基础知识是IT行业中不可或缺的一部分,尤其对于初学者和有经验的开发者来说,不断复习和巩固这些概念至关重要。Java 7是Java编程语言的一个重要版本,它包含了许多改进和新特性,比如Try-with-resources语句、多...
### Java基础复习知识点详解 #### 开发中的注意事项 在Java编程初期,经常会出现一些常见的错误...以上是对Java基础复习文档中提及的知识点进行了详细解释和补充,希望能帮助初学者更好地理解和掌握Java的基础知识。
Java基础知识包括Java语言的基本构成、编程规范、面向对象的概念等,而面向对象是Java语言的核心特性之一,本篇文章将从Java基础知识和...通过以上内容的梳理,希望能够帮助Java初学者更好地复习和掌握Java基础知识。
本电子书主要包括以下内容: JAVA核心知识点:基本内容、类的特性、类的高级应用... ...本书可用来复习时或者面试前的准备,可帮助自己回顾一些知识点。 希望能给大家多多少少起点帮助作用 ^o^.....
Java 基础知识点复习资料 本文将对 Java 基础知识点进行详细的总结和介绍,涵盖了 Java 的基本语法、数据类型、运算符、控制语句、数组、方法、类、对象等方面的知识点。 一、 classpath 和 path 的设置及作用 在...
详细的说明了java基础的各种知识点,该资源是一个专为Java初学者或需要复习Java基础知识的开发者设计的思维导图。它涵盖了Java编程语言的核心概念和基础知识点,是理解和学习Java编程不可或缺的工具。适用人群:Java...