JAVA必备基础知识点
2022-08-12 14:56:08 18 举报
AI智能生成
java基础巩固,供大家学习
作者其他创作
大纲/内容
多线程
1.什么是线程?
轻量级的进程
2.线程的三个部分是?
处理器、代码、数据
3.为什么使用多线程
使 UI 响应更快、利用多处理器系统、简化建模
5.如何实现线程的调度?如何暂停一个线程的运行
调度用 wait 和 notify --------- sleep()
6.什么是线程的优先级
判断哪个线程先执行的级别
7.简述 sleep 方法和 wait 方法的功能和区别
sleep 是让线程休眠一段时间
8.什么是守候线程
隐藏在后台持续运行的线程
9.什么是临界资源
指多个线程共享的资源
10.什么是互斥锁,java中如何实现
用来保证在任一时刻只能有一个线程来访问临界资源的那个标记
在 java 中使用
用在对象前面限制一段代码的执行、用在方法声明中,表示整个方法为同步方法
11.什么是死锁?如何避免?
12.简述 wait 和 notify 以及 notifyAll 使用
被锁定的对象可以调用wait() 方法,这将导致当前线程被阻塞并放弃改对象的互斥锁,及解除了 wait() 方法的当前对象的锁定状态,其他的线程就有机会访问改对象
notify 是等待队列上的一个线程离开阻塞状态
notifyAll 使等待队列上的所有线程离开阻塞状态
Socket编程
1.什么是 url?基本的格式是?
统一资源定位器 Http://www.163.com:port
2.简述 IP,Port,TCP
IP代表网络位置、Port代表端口号、TCP可保证不同厂家生产的计算机能在共同语言环境下运行,解决异构网通信问题,是目前网络通信的基本协议
3.简述 java 网络编程究竟做些什么?如何做?
1.建立连接
2.准备输出的数据,流式输出
3.流式输入,编程业务需要的格式
4.关闭连接
服务器分配一个端口号。如果客户请求一个连接,服务器使用 accept() 方法打开 socker 连接。客户在 host 的 port 端口建立连接,服务器和客户使用 InputStream 和 OutputStream 进行通信
4.简述 java 网络模型的基本功能
简述服务端和客户端的连接过程
5.TCP和UDP区别
TCP(传输控制协议)和UDP(用户数据报协议)是传输层协议
TCP是面向连接的可靠数据传输协议,能保证传输内容的完整和准确;数据传输的辅助开销大,效率低
UDP:是无连接的,不可靠的传输协议,不能保证传输内容的完整和准确,对信息的适时要求比较高
设计模式
1.什么是设计模式
就是经过实践验证的用来解决特定环境下特定问题的解决方案
2.设计模式用来干什么?
寻找合适的对象
决定对象的粒度
指定对象的接口
描述对象的实现
运用复用机制
重复使用经过实践验证的正确的,用来解决某一类问题的解决方案来达到减少工作量、提高正确率等目的
3.什么是对象粒度
对象中方法的大小就是粒度
4.基本的 java 编程设计应遵循的规则?
面向接口编程,优先使用对象组合
5.设计模式的应用范围
所能解决的特定的一类问题中
6.简述什么是单例模式,以及解决的问题,应用的环境,解决的方案,应用时应注意什么?
解决的问题:在任何时间内只有一个类实例存在的模式
应用环境:需要有一个从中进行全局访问和维护某种类型数据的区域的环境下使用单例模式
解决方案:保证一个类只有一个类实例存在
本质:控制实例的数量
注意:要合理的使用单例,避免单例成为瓶颈
8.简述什么是工厂模式,以及他解决的问题,应用的环境,解决的方案,模式的本质
利用工厂来解决接口选择的问题的模式
应用环境:当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定,创建的对象时,就需要用到工厂模式
解决方案:定义一个创建对象的类,在类的方法中决定具体实例化哪一个类
本质:就是根据不同的情况来选择不同的实现类,重在选择
10.简述什么是值对象模式,以及他解决的问题,应用的环境,解决的方案,模式的本质
用来把一组数据封装成一个对象的模式
解决问题:在远程方法的调用次数增加的时候,相关的应用程序性能将会有很大的下降
解决的方案:使用值对象的时候,可以通过仅仅一次方法调用来取得整个对象,而不是使用多次方法调用以得到对象中每个域的数值
本质:封装数据
12.简述什么是DAO模式,以及他解决的问题,应用的环境,解决的方案,模式的本质
数据访问对象
解决问题:根据数据源不同,数据访问不同。根据存储的类型(关系数据、面向对象数据库、纯文件等)和供应商实现不同,持久性存储(如数据库)的访问差别也很大。如何对存储层以外的模块屏蔽这些复杂性,以提供统一的调用存储实现。程序分布式问题
解决方案:将数据访问逻辑抽象为特殊的资源,也就是说将系统资源的接口从其底层访问机制中隔离出来;通过将数据访问的调用打包,数据访问对象可以促进对于不同数据库类型和模式的数据访问
本质:分层,是系统组件和数据源中间的适配器。(一层屏蔽一种变化)
14.什么是框架?框架的优点
框架是能够完成一定功能的半成品
1.优点:完成一定的功能。提供一个精良的应用程序架构
2.框架都是以接口的形式出现
3.应该了解框架完成的功能、框架的API接口、框架的功能是怎么实现的
15.什么是开封-封闭法则(OCP)
可扩展但是不可以更改已有的模块、对扩展是开放的,对修改是封闭
16.什么是替换法则(LSP)
使用指向基类(超类)的引用的函数,必须能够在不知道具体派生类(子类)对象类型的情况下使用
17.如何综合使用我们学过的设计模式来构建合理的应用程序结构
是采用接口进行隔离,然后同时暴露值对象和工厂类,如果是需要数据存储的功能,又会通过 DAO 模式去与数据存储层交互
18.构建常用的合理的 java 应用包结构
UI(表现层)
business--factory,ebi,ebo
dao--factory,dao,impl
JAVA基础
1.简述java的基本历史
java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机、冰箱等
2.简单写出java特点,写出5个以上,越多越好
简单的、面向对象的、分布式的、安全的、稳定的、与平台无关的、可解释的、多线的、动态的语言。
3.什么是java?
JAVA:
一种编程语言
一种开发环境
一个应用环境
一个部署环境
4.请写出java的版本分类,以及每种版本的应用方向
三种版本:
JME:是面向内存有限的移动终端,为消费性产品设计的;
JSE:是SUN公司针对桌面开发和低端商务计算机方案开发的版本。为笔记本电脑、PC机设计的;
JEE:是一种利用JAVA2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。为企业级的、服务器端的高端应用而设计的;
5.描述java技术的主要特性
java虚拟机
垃圾回收
代码安全性
6.描述java虚拟机的功能
(1)通过 ClassLoader 寻找和装载 class 文件
(2)解释字节码成为指令并执行。提供 class文件的运行环境
(3)进行运行期间垃圾回收
(4)提供与硬件交互的平台
7.简述java代码的安全性
(1)编译时的错误检验
(2)类装载检查,把本机上的类和网络资源类相分离,再调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用
(3)字节码校验
(4)沙箱机制,限定访问权限
8.简述java垃圾回收机制
垃圾回收有以下特点:
(1)垃圾回收是一个自动的系统行为,程序员不能控制垃圾回收的功能和行为。
(2)有一些跟垃圾回收相关的方法,比如:System.gc(),调用这些方法,仅仅是在通知垃圾回收程序,至于垃圾回收程序运不运行,什么时候运行,都是无法控制的。
(3)程序员可以通过设置对象为 null ,来标示某个对象不再被需要了,这只是表示这个对象可以被回收了,并不是马上被回收。
9.简述java代码的运行过程
(1)编写代码
(2)编译
(3)类装载 通过类装载器装载 CLASS 文件
(4)校验代码 由字节码校验
(5)解释 由解释器将字节码转换成机器码
(6)运行
10.简述如何搭建java开发环境
首先下载安装JDK然后配置环境
(1)配置PATH,操作系统运行环境的路径
(2)配置 CLASSPATH JAVA 运行应用程序时所需要的类包的路径
(3)配置 JAVA_HOME 供需要运行 JAVA的程序使用
11.简述 classpath,path,JAVA_HOME的意义和配置方法
path 操作系统运行环境的路径
classpath JAVA运行应用程序时所需要的类包的路径
JAVA_HOME 供需要运行 JAVA 的程序使用
12.请描述:一个完整的 java 文件的代码分几个部分,每部分都起什么作用,大致的写法
package 当前类所在位置
import 当前类运行时所需要的包或类
publc class 类名{ 属性定义:、方法定义:、构造方法定义:、public static void main(String args[]) 例外 { 程序入口、语句;’ }}、//注释
13.java代码的注释有几种?分别举例说明
单行注释 //
块注释(多行注释) /**/
文档注释 /***/
14.什么是java代码的语句,什么是java代码的块,举例说明
语句 是一行以分号终止的代码,例:int a:
块 是以 { } 为边界的一些语句的集合 例:public void tt(){}
15.什么是标示符?
标识符:是赋予变量、类、方法的名称及有效字符序列。
16.标示符定义的规则?
(1)首字母只能以字母、下划线、$开头,其后可以跟字母、下划线、$和数字配置CLASSPATH
(2)表示符不能是关键字
(3)标识区分大小写
17.什么是关键字?
关键字就是编程语言与机器语言的编码约定
18.true、false、null、sizeof、goto、const 那些是java关键字
true、false、null 为JAVA关键字
19.java的基本数据类型有几种?分别是?
short 、int、long、boolean、float、double、char、byte
布尔类型(boolean)、字符型(char)、数值类型:字节型(byte)、短整型(short)、整形(int)、长整型(long)、浮点类型:单精度(float)、双精度
20.在基本类型中,如果不明确指定,整数型的默认是什么类型?带小数的默认是什么类型?
整数类型默认为 int、带小数的默认为 double、boolean的默认值 false
21.如何定义 float 类型和 long 型
float f=1.2f long l=1.2l
22.什么是变量?
变量是用来引用一块内存区域或一个值,用标识符来表示,可以通过操作变量来操作变量所对应的内存区域或值块的值。
23.变量的定义规则?
(1)以字母、$、下划线开头,气候可以跟字母、下划线、$和数字;
(2)首字母小写,中间单词用大写字母隔开;
(3)名称具有一定含义;
(4)可以先声明在赋值也可以声明的同时进行赋值
(5)没有赋值的变量是不可以使用的
25.请写出 java编码约定中对下列部分的要求:类、属性、方法、包、文件名、变量、常量、控制结构、语句行、注释
类:一个类文件中类名要和文件名相同,类名一定要以大写字母开头,单词之间用大写字母分隔
属性:属性名首字母小写,中间用大写字母隔开。
方法:方法名首字母小写,中间用大写字母隔开。
包:引用包必须写在类文件的开头,有且只能有一个包,全部用小写字母
控制结构:当语句是控制结构的一部分时,即使是单个语句,也应使用大括号将语句封闭。
语句行:每行只写一个语句,并使用四个缩进的空格,使代码更易读,注意用分号结束
注释:用注释来说明那些不明显代码的段落
常量:常量名一般用大写字母,单词之间用下划线分隔,一旦赋值就不允许修改
26.什么是 javadoc?
按照一定格式生成程序的文档的工具
27.什么是引用类型?
用户定义类型,它可引用类和数组
出去基本数据类型的其他类型都是引用数据类型
28.什么是按值传递?什么是按引用传递?
按值传递:就是将值的副本传过去(基本数据类型+String类型的传递,就是按值传递)
按引用传递:就是将值的内存地址传过去(除基本数据类型+String以外类型的传递,就是引用传递)
29.如何创建一个新对象?如何使用对象中的属性和方法?
使用 new 关键字来创建一个新的对象:
通过对象的实例用“.”(点)来调用对象中的属性和方法
静态的方法和属性,也可以直接用类名“.”(点)来调用
30.简述 new 关键字所做的工作
new 创建一个对象,并为对象的分配一块内存
31.简述“=” 和“==” 的功能和区别
“=” 赋值、“==”当比较基本数据类型的时候,判断前后两个值是否相等;当比较引用数据类型的时候,判断==前后两个值的内存地址是否相等
区别:=:为赋值表达式、==:为逻辑表达式
32.什么是实例变量?什么是局部变量?什么是类变量?什么是final变量?
实例变量:类中定义的变量,即类成员变量,如果没有初始化,会有默认值
局部变量:在方法中定义的变量,必须初始化
类变量:用static 修饰的属性
final变量:用final修饰的变量
33.简述上述各种变量的定义规则和使用规则?
实例变量:不需要 static 关键字来声明,需要类的实例(对象)调用(用“.”);
类变量:用static修饰,可以用类名调用,也可以用类的实例调用;
局部变量:在方法内任意定义变量即为局部变量;
final:一旦赋值,不可以再修改的变量;final 属性只允许赋值一次,且只能通过构造方法赋值,定义后也就是一个常量;final 修饰的变量,只允许赋值一次
34.a++和++a的区别?
a++ :先使用,后加1、++a:先加1,后使用
35.请描述 instanceof、?、&、&&各自的功能
instanceof:用来判断某个实例变量是否属于某种类的类型。
?:三目运算符:表达式1?表达式2:表达式3 、如果表达式1为true,执行表达式2,否则执行表达式3
&:运算符:按位与
&&:逻辑运算:逻辑与
36.请描述 >>,<<.>>>的功能
10>>4:算数或符号右移位运算符
<<:算数或符号左移位运算符
>>>:逻辑或无符号右移位运算符
37.请描述什么是强制类型转换?什么是自动类型转换?什么是向上转型?并分别举例说明
强制类型转换:在一个类型前面加(),来强制转换
long l=9l; int i=(int)1; 自动类型转换: int i=5; String str=""+i; 向上造型:把范围小的造型为范围大的类型:int i=2; long l=i;
38.请写出完整的if条件控制语句的结构
if(布尔表达式){语句}else{语句}
39.请写出完整的switch语句结构
switvh(字符){case 字符:语句 break;case 字符:语句 break;default:语句}
40.请写出完整的for语句的结构
for(初始语句;条件语句;步长){}
41.请写出完整的while语句的结构
while(boolean语句){}
42.请写出完整的 do while 语句的结构
do{}while(boolean语句);
43.请描述 break 和 continue 的功能和用法
beark:终止(跳出)最近的循环
continue:跳出本次循环,执行下一次循环
48.什么是构造和析构方法?功能是?
构造方法:每个类至少有一个构造方法,类初始化时调用的方法
1.方法名和类名相同
2.无返回值类型
格式:访问权限 类名(参数列表){};
1.自己定义构造后,就没有默认的构造方法
2.无构造方法时,默认为空参的构造方法(无参数,方法体为空)
析构方法:finalize
类销毁时,自动调用方法
当对象在内存中被删除时,自动调用该方法
在此方法中可以写回收对象内部的动态空间的代码
49.描述 java 的访问修饰符类型?分别有什么功能?
public 公开的,任何一个类都有可以访问
protected 同包同类.只可被它的子类访问
default 只能被同一个包中类访问
private 私有的,只能在本类中被访问
50.分别说明:在类上、在属性上、在方法上能使用哪些访问修饰符
在类上:public default final 、在方法上:访问权限:public protected private default 、方法修饰符:static 、final 、返回类型:void 、在属性上:public protected private default 、static、final
51.简述什么是包?包的功能
包:对定义的多个 java类进行分组,将多个功能相关的类定义到一个包(文件)中。
功能:1.易于查找和使用适当的类 2.包不止包含类和接口,还可以包含其他包,形成层次的包空间 3.有助于避免命名冲突
52.请写出5个以上的JDK中的包,以及他们的基本功能
java.awt:包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面 、java.lang:提供 java 编程语言的程序设计的基础类 、java.io:包含提供多种输出输入功能的类 、java.net:包含执行与网络有关的类,如url,scoket,seversocket 、java.applet:包含 java 小应用程序的类 、java.util:包含一些实用性的类
53.什么是包装类?java中都有哪些包装类
在 JDK 中针对各种基本类型分别定义相应的引用类型 ------称为封装类
Boolean、Byte、Short、Integer、Long、Float、Double、Character
54.OOP(面向对象)语言的三大特征是什么?
封装性、继承性、多态性
55.分别表述类的三大特性及其他们的功能
封装:隐藏类的实现细节、迫使用户去使用一个接口去访问数据、使代码更好维护
继承:子类可以直接继承使用父类的方法,程序员只需要做的是定义额外特征或规定将适用的变化
多态性:同一个行为具有多个不同表现形式或形态的能力
56.如何实现继承?继承的规则?
public class A extends B{} 、(1)单继承性、(2)构造方法不能继承、(3)super引用父类,调用父类的属性、方法、(4)当子类中出现与父类的方法名、返回类型、参数列表相同的方法时要覆盖此方法
57.简述 this 和 super 的功能和用法
this:
(1)能访问除构造方法以外所有的属性、方法、通过this,来调用方法和属性、(2)不可以在静态方法中使用、(3)在调用其它构造方法时,必须放在改构造方法的第一行、(4)在构造方法中使用 this(参数列表),相当于调用本类的其它构造方法,它必须作为构造方法的第一句
super|:访问父类
(1)super:点取父类中被子类隐藏的方法和属性、(2)通过 super(参数列表)来调用父类的属性和方法,在调用父类构造方法时必须放在子类构造方法里的第一行
58.如何确定在多态的调用中,究竟是调用的哪个方法?
new 的是哪一个类就是调用的哪个类的方法
59.请描述方法定义的完整语法结构
权限修饰符 修饰符 返回类型 方法名(参数)例外{ 方法体; }
60.什么是重载?
在一个类中出现方法名相同,但参数列表不同时,这种情况就是重载
61.简述重载的规则
(1)方法名称必须相同
(2)参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同)
(3)与返回类型无关
62.什么是方法的覆盖?什么情况下出现?
方法覆盖:子类可以修改从父类继承过来的行为,也就是说子类可以创建一个与父类方法有不同功能的方法,但具有相同的:名称、返回类型名和参数列表。在父子类的情况下出现时
63.方法覆盖的规则?
(1)方法名要和父类中被覆盖的方法名相同,返回类型相同,参数列表相同 、(2)访问权限要大于等于被覆盖方法的权限 、(3)例外列表要小于等于被覆盖方法的例外列表
64.static 修饰符的功能是?可以用在什么地方?怎么访问?
static 修饰符功能:(1)公共一块内存区域,也就是用 static 修饰的变量或成员方法对所有类的实例都是相同的 、(2)静态成员方法和静态变量的优点在于他们能在没有创建类的任何一个实例的情况下被引用 、(3)可以用在方法或属性上
访问方式:(1)直接使用类名调用 、(2)new 一个实例,用实例调用
65.static 的基本规则
(1)类中的静态方法只可以调用静态的属性和方法,不允许调用非静态的属性和方法
(2)静态变量为类变量,可以用类名直接调用静态的属性和方法
(3)静态方法中不允许出现 this 和 super
(4)构造方法不允许声明 static
(5)非静态变量为实例变量,通过实例调用
(6)静态方法不能被非静态方法覆盖
66.final 修饰符的功能是?可以用在什么地方?
功能:final 标记所有通用的功能,不能随意更改 、可以用在类、属性和方法上
67.final 的基本规则
(1)final 修饰的类不能被继承 、(2)final 修饰的成员变量只允许赋值一次,且只能通过构造方法里赋值 、(3)final 修饰的局部变量即为常量,只能赋值一次 、(4)final 修饰的方法不允许被子类覆盖
68.什么是抽象方法,什么是抽象类
用abstaract修饰的方法,只有方法的声明,而没有方法的实现,就叫抽象方法、用abstract 修饰的类,就叫抽象类
69.抽象类的规则
(1)抽象类内部可以没有抽象方法 、(2)必须用abstract修饰 、(3)不能够直接使用抽象类,必须通过子类继承并且实现 、(4)抽象方法不允许被 private 修饰
70.什么情况下使用抽象类
(1)当一个类的一个或多个方法时抽象方法时 、(2)当类是一个抽象类的子类,并且不能为任何抽象方法提供任何实现细节或方法体时 、(3)当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法体时
71.equals方法和“==”的功能和区别
功能:判断对象是否相等 、区别:equals 方法比较的是对象的值 、==:比较的是对象值的内存地址,对基本数据类型来说 == 比较的是数值
72.toString方法的功能和基本写法
返回一个String类型 、public String toString(){return "";}
73.String的方法的功能和基本使用方法,请描述5个以上
74.为什么使用StringBuffer类?有什么功能和优点?
-只创建一个对象 、-StringBuffer对象的内容是可以被修改的 、-除了字符的长度之外,还有容量的概念 、-通过动态改变容量的大小,加速字符管理
75.举例说明如何使用StringBuffer
StringBuffer sb=new StringBuffer();
sb.append("aaa");
78.什么是接口?接口的定义规则?
接口是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
public interface Tt{ public void outPut(); public int tt(); }
79.接口的作用?为什么使用接口?
多重继承
封装、隔离
功能,实现的分离
多态
便于后期维护
接口是可插入性的保证
80.什么是多重接口
就是一个类实现多个接口
81.描述接口的基本思想?
封装 隔离
接口及相关机制的最基本作用在于:通过接口可以实现不相关类的相同行为
而不需要考虑这些类之间的层次关系
根据接口可以了解对象的交互界面,而不需了解对象所属的类
面向对象程序设计讲究“提高内聚,降低耦合”
84.如何选择接口和抽象类?为什么?
优先选用接口,尽量少用抽象类
在下列情况下选择抽象类:需要定义子类的行为,又要为子类提供共性的功能
85.什么是异常,异常的分类?
程序中导致程序中断的一些情况叫做异常,一般程序员可以解决
异常分为运行时和非运行是异常(一般异常)
运行时异常是指因设计或实现方式不当导致的问题。也可以说是程序员的原因导致的,本来可以避免发生的情况。
非运行时异常是指除运行时异常以外所有的异常,出现这些异常的代码必须用try块包围
86.简述处理异常的两种方式?
抛出(throws)和catch语句处理
87.简述try块的功能和规则
try块内部一般写一些编程人员认为可能会出现异常的代码,使程序运行时不会因为出现异常而中断。
88.简述catch块的功能和规则
功能:可以截获所声明的异常,并在语句块内对其进行处理
规则:catch(Exeption e){e.printStackTrace();}
89.简述finally块的功能和规则
finally块一般写一些不论是否发生异常都必须执行一次的代码,例如关闭与数据库连接等
90.简述throw和throws的功能和使用方法
throw 指编程人员主动抛出一个异常
throw new NullPointerExeption();
throws 指程序遇到异常情况自动的被动抛出一个异常
public void test()throws Exeption{}
91.异常的分类?
错误(Error):JVM系统内部错误、资源耗尽等严重情况,程序员不可控制
例外(Exception):其它因编程错误或偶然的外在因素导致的一般性问题,程序可以控制
92.什么是预定异常
java程序中预先定义好的异常叫做预定异常
93.简述自定义异常的规则
写一个类继承 Exception ,用户自定义异常通常属 Exception ,依据惯例,应以 Exception 结尾,应该由人工创建并抛出
94.什么是断言?
95.如何使用断言?举例说明
一种是assert<<布尔表达式>>;另一种是assert<<布尔表达式>>:<<细节描述>>. assert a==10; "这里a等于10"
集合框架
1.什么是集合?什么是元素?
可以包含其他对象的简单对象就叫集合
集合框架中所包含的对象就叫做元素
2.描述出java集合框架中集合的接口关系
7.描述List接口、Set接口和Map接口的特点
List接口中的对象按一定顺序排列,允许重复
Set接口中的对象没有顺序,但是不允许重复
Map接口中的对象时key、value 的映射关系,key不允许重复
8.如何给集合排序
实现 comparable 接口
IO
1.什么是流?
流是要传输的数据在源和目的地之间运行的轨迹
4.什么是 Unicode?
是一种字符的编码方式,占16位字节,java技术使用 Unicode 来表示字符串和字符。
6.什么叫保持?什么是可序列化?如何实现可序列化?
将一个对象存放在某种类型的永久存储器上(比如硬盘,光盘,软盘等),称为保持
标识一个类可以被持久化,叫序列化,也叫串行化或持久化。表示这个类中的数据可以按流式输出
实现可序列化的方法:实现 java.io.Serializable 接口
8.简述 File 类的基本功能
处理文件和获取文件信息;文件或文件夹的管理
概括一句话就是:除了读写文件内容其他的都可以做
0 条评论
下一页