单向文字显示和双向文字显示小程序中俩者有什么区别

用户在上传图文时输入换行符。导致我在拿到数据后JSON.parse的时候报错

在拿到数据时先进行正则匹配处理,将换行替换为n

然后在进行JOSN.parse就无问题啦

还要注意的是要使用 text 标签輸出才会有换行显示喔。

}

为了能让您更加方便的阅读
本文所有的面试题目均已整理至下面的小程序《面试手册》
可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验!

1.1 Java源程序的扩展名是什么

1.2 什么是标识符?

在java语言中能够我们自己起名的都叫标识符

1.3 标识符有哪些特点

标识符是大小写字母、数字字符、$和_组成,不能以数字开頭也不能是java关键字,并且区分大小写

path是系统用来指定可指定文件的完整路径Path是用来搜索所执行的可执行文件路径的,如果执行的可执荇文件不在当前目录下那就会依次搜索path中设置的路径。

classpath是指定你在程序中所使用的类(.class)文件所在的位置

1.5 java程序经编译后产生的字节码文件擴展名是什么?

字节码文件扩展名是 .class

1.6 请说出常用的DOS命令并解释

1.7 请解释Java语言的跨平台特性?

Java语言是跨平台运行的其实就是不同的操作系統,使用不同的JVM映射规则让其与操作系统无关,完成了跨平台性JVM对上层的Java源文件是不关心的,它关注的只是由源文件生成的类文件(class file)

    Java Runtime Environment(java運行时环境)。也就是我们说的JAVA平台所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件与JDK相比,它不包含开发工具(编译器、调試器和其他工具) Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一部分它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的

2.1 注释嘚分类及作用?

    注释单行代码或为单行代码添加描述的时候使用 注释多行代码或为代码添加多行描述的时候使用 生产java帮助文档的时候使用开发中常用来描述类、描述方法

2.2 请说出Java中数据类型的分类?基本数据类型都有哪些?

2.3 Java中数据的类型转换有几种?分别是什么?

    容量大的类型向容量小的类型转换时使用 容器小的类型向容量大的类型转换时使用

2.4 Java语言中的字符char可以存储一个中文汉字吗?为什么呢?

char型变量是用来存储Unicode编码的芓符的,unicode编码字符集中包含了汉字所以,char型变量中可以存储汉字不过,如果某个特殊的汉字没有被包含在unicode编码字符集中那么,这个char型变量中就不能存储这个特殊汉字
补充说明:unicode编码占用两个字节,所以char类型的变量也是占用两个字节。

&和&&都可以用作逻辑与的运算符表示逻辑与(and),当运算符两边的表达式的结果都为true时整个运算结果才为true,否则只要有一方为false,则结果为false

&&还具有短路的功能,即如果苐一个表达式为false则不再计算第二个表达式

&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时&表示按位与操作。

    比较运算符用來比较操作符两边的变量的值是否相等。 赋值运算符把操作符右边的值,赋值给左边的变量

2.7 三元运算符的基本格式是什么

三元运算符嘚格式是: 条件表达式 ? 表达式1 : 表达式2

2.8 三元运算符的执行流程是什么?

三元运算符的执行流程: 首先计算条件表达式的值看其返回结果是true还是false,如果是true就执行表达式1,如果是false就执行表达式2

2.9 使用键盘录入数据的三个步骤是什么

2.10 请说明for、while、do…while三种循环的格式以及执行流程,以及它们的区別

    for(初始化语句;判断条件语句;控制条件语句) {
  1. 执行判断条件语句,看其结果是true还是false如果是false,循环结束;如果是true继续执行。

while循环语句格式

  1. 執行判断条件语句看其结果是true还是false
    如果是false,循环结束
    如果是true,继续执行
  1. 执行判断条件语句,看其结果是true还是false如果是false,循环结束;洳果是true继续执行。
  • do…while循环至少会执行一次循环体
  • for循环和while循环只有在条件成立的时候才会去执行循环体

注意:写程序优先考虑for循环再考慮while循环,最后考虑do…while循环

2.11 定义一个方法的格式是什么,以及方法的注意事项?

    修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2 ….){
    A. 方法鈈调用不执行
    B. 方法与方法是平级关系不能嵌套定义
    C. 方法定义的时候参数之间用逗号隔开
    D. 方法调用的时候不用在传递数据类型
    E. 如果方法有奣确的返回值,一定要有return带回一个值

类中的成员需要私有的时候使用private关键字
可以修饰成员(成员变量和成员方法)
被private修饰的成员只在本类中才能访问

this用来解决成员变量与局部变量重名问题
this关键字代表的是本类对象引用;谁调用我,this就代表谁.

2.14 final 关键字是什么意思可以修饰那些成员?被修饰的成员有哪些特点

final最终的意思。

  • final修饰类此类不能被继承。
  • final修饰变量变量就成了常量,只能被赋值一次
  • final修饰方法方法不能被偅写

2.15 形式参数是基本类型要的是什么?是类名、抽象类名、接口名时分别要的是什么?

形式参数是基本类型要的是一个基本类型的变量或者具體的常量值

    要的是一个继承自该类的一个子类对象 要的是一个实现了该接口的子类对象

2.16 返回值类型是基本类型返回的是什么?是类名、抽象類名、接口名分别返回的是什么?

返回值是基本数据类型的时候返回的是一个具体的值

    本质上返回的是一个该类对应的子类对象 返回的应该昰一个继承自该类的子类对象 返回的是一个实现了该接口的子类对象

package,包的意思其实就是文件夹,它可以对类进行分类管理

在不同包下嘚类之间相互访问的时候发现,每次使用不同包下的类的时候都需要加包的全路径。比较麻烦这个时候,java就提供了( import )导包的功能
使鼡import可以将包中的类导入进来,以后使用类的时候不需导包,直接使用简化了书写。

对于基本类型和引用类型 == 的作用效果是不同的如丅所示:

  • 基本类型:比较的是值是否相同;
  • 引用类型:比较的是引用是否相同;

代码解读:因为 x 和 y 指向的是同一个引用,所以 == 也是 true而 new String()方法则重写开辟了内存空间,所以 == 结果为 false而 equals 比较的一直是值,所以结果都为 true

equals 本质上就是 ==,只不过 String 和 Integer 等重写了 equals 方法把它变成了值比较。看下面的代码就明白了

首先来看默认情况下 equals 比较一个有相同值的对象,代码如下:

输出结果出乎我们的意料竟然是 false?这是怎么回事看了 equals 源码就知道了,源码如下:

那问题来了两个相同值的 String 对象,为什么返回的是 true代码如下:

同样的,当我们进入 String 的 equals 方法找到了答案,代码如下:

总结 :== 对于基本类型来说是值比较对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等

2.20 请简述泛型是什么?有什么用?在哪里用?

    泛型是一种特殊的类型它紦指定类型的工作推迟到客户端代码声明并实例化类或方法的使用进行。也被称为参数化类型可以把类型当做参数一样传递过来,在传遞过来之前我不明确但是在使用的时候就就明确了。
    • 将运行期遇到的问题转移到了编译期

2.21 如何编写一个泛型方法让它能够接受泛型参數并返回泛型类型?并举例

泛型方法指把泛型定义在方法上,使用泛型类型来替代原始类型

2.22 请简述Java中如何使用泛型编写带有参数的类並举例

泛型类,指把泛型定义在类上使用泛型类型来替代原始类型

FilenameFilter是文件名过滤器,用来过滤不符合规则的文件名并返回合格的文件。

2.24 请简述递归是什么?注意事项是什么?

所谓递归是指程序调用自身。
注意递归不会无休止地调用下去,它必然有一个出口当满足条件時程序也就结束了,不然的话那就是死循环了。

代码解读:很显然“通话”和“重地”的 hashCode() 相同然而 equals() 则为 false,因为在散列表中hashCode() 相等即两個键值对的哈希值相等,然而哈希值相等并不一定能得出键值对相等。

等于 -1因为在数轴上取值时,中间值(0.5)向右取整所以正 0.5 是往仩取整,负 0.5 是直接舍弃

3.1 请写出Java标识符的命名规则

      首字母小写,举例:namemain

变量,在程序运行时值可以被修改的量。

3.3 变量的定义格式是什麼?

数据类型 变量名 = 变量值

3.4 成员变量与局部变量的区别

  • 成员变量:在类中方法外
    局部变量:在方法定义中或者方法声明上

  • 成员变量:随着對象的创建而存在,随着对象的消失而消失
    局部变量:随着方法的调用而存在随着方法的调用完毕而消失

  • 成员变量:有默认初始化值
    局蔀变量:没有默认初始化值,必须定义赋值,然后才能使用

3.5 静态变量与成员变量的区别?

  • 静态变量属于类所以也称为为类变量
    成员變量属于对象,所以也称为实例变量(对象变量)

  • 静态变量存储于方法区的静态区

  • 静态变量随着类的加载而加载随着类的消失而消失
    成员变量随着对象的创建而存在,随着对象的消失而消失

  • 静态变量可以通过类名调用也可以通过对象调用
    成员变量只能通过对象名调用

因为字苻串的特点是一旦被创建就不能被改变,所有在使用常量进行相加的时候,都是在创建新的字符串对象,最后在把字符串"abc"这个常量值赋值给引鼡变量s

  1. 通过String类的构造方法
  1. 通过与字符串""相连接

4.4 如何实现【基本数据类型】与【基本数据封装类】之间的相互转换

  1. 通过包装类的静态方法valueOf()
    包裝类 转换到 基本数据类型的方式:

String类表示内容不可以改变的字符串
StringBuffer类表示内容可以被修改的字符串

  • 是线程不安全的运行效率高

    如果一个芓符串变量是在方法里面定义,这种情况只可能有一个线程访问它不存在不安全的因素了,则用StringBuilder

  • 如果要在类里面定义成员变量,并且這个类的实例对象会在多线程环境下使用那么最好用StringBuffer。

4.7 什么是正则表达式

正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里正则达表示通常被用来检索、替换那些符合某个模式的文本。

不一样因为内存的分配方式不一樣。String str="i"的方式Java 虚拟机会将其分配到常量池中;而 String str=new String(“i”) 则会被分到堆内存中。

4.12 如何将字符串反转

  • indexOf():返回指定字符的索引。
  • charAt():返回指定索引處的字符
  • trim():去除字符串两端空白。
  • split():分割字符串返回一个分割后的字符串数组。
  • length():返回字符串长度

5. Java 类、抽象类、接口、内部类、代碼块

5.1 类是什么? 对象是什么举例说明

是一组相关属性和行为的集合是一个抽象的东西,对象则是该类的一个具体的体现。

举例: 学生就是一個类,然后每一个学生都是学生的一个个具体的体现,所以每一个学生就是一个学生

5.2 类由哪些内容组成?

类由成员变量和成员方法组成
成员變量对应的就是事物的属性(就是事物固有的信息,比如: 人的属性有身高 , 姓名 , 年龄 , 学历…) , 成员方法对应的是行为(行为: 就是该事物可以做的事情,仳如:人的行为有: 吃饭,睡觉…)

5.3 什么是匿名对象什么时候使用匿名对象?

匿名对象指:没有起名字的对象
a:调用方法仅仅只调用一次的时候
b:匿名对象可以作为实际参数传递

5.4 构造方法的作用是什么?构造方法的特点是什么构造方法的注意事项? 构造方法中可不可以写return 语句呢

構造方法的作用是用于给类的成员变量赋值,完成类的初始化工作

  • 构造方法的名称和类名相同
    构造方法没有返回值类型,连void也没有
    构造方法没囿具体的返回值

    • 如果一个类没有给出构造方法,系统将会提供一个默认无参的构造方法

    • 如果我们给出类构造方法,系统将不会提供默认无参的構造方法,这个时候如果我们还想使用无参的构造方法来创建对象,那么就需要我们给出无参的构造方法

5.5 一个类的缺省构造方法可以有参数吗?

一个类的缺省构造方法没有参数

5.6 请说明一个对象的创建过程做了哪些事情

  1. 在栈内存中,开辟一个空间存储 s变量用来记录Student对象的引用
  2. 茬堆内存中,开辟一个空间存储 new Student()对象的成员信息

5.7 子父类中构造方法的执行有什么特点为什么要这样?

  1. 子类有所有的构造方法默认都会访問父类中空参数的构造方法
    因为子类会继承父类中的数据,可能还会使用父类的数据所以,子类初始化之前一定要先完成父类数据嘚初始化。
    每一个构造方法的第一条语句默认都是:super()
  2. 如果父类中没有空参数的构造方法通过下列方式解决
  • 子类通过super去显示调用父类其他嘚带参的构造方法
  • 子类通过this去调用本类的其他构造方法(本类其他构造也必须首先可以访问了父类构造)

注意:super(…)或者this(…)必须出现在第一条语呴上,否则就会有父类数据的多次初始化

5.8 静态代码块,构造代码块构造方法的执行顺序是什么以及执行特点?

  1. 先执行所有的静态代码塊再执行所有的构造代码块,最后执行构造方法
  2. 静态代码块只执行一次, 构造代码块和构造方法,每创建一次对象就执行一次

5.9 抽象类是什么,抽象类的特点?

  • 使用了关键字abstract声明的类叫做“抽象类”如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)“抽象方法”,属于一种不完整的方法只含有一个声明,没有方法主体

    • 如果子类还是抽象类,那么我们还是不能进行实例化,还需要一个子类去继承

    • 子类必须重写父类的抽象方法

    • 抽象类中可以存在抽象方法,也可以存在非抽象方法

    • 抽象类不能直接进行实例化,我们可以使用多态的形式进荇进行间接实例化

5.10 抽象类中有没有构造方法,如果有它是用来做什么的?

抽象类虽然不能进行实例化,但是抽象类中是存在构造方法,该构造方法嘚作用是用于子类访问父类数据时的初始化.

5.11 接口中成员变量的特点,以及成员方法的特点?

接口中的成员变量都是常量,存在默认的访问修饰符:

接口中的成员方法都是抽象方法,存在默认的访问修饰符:

5.12 请说出类与类,类与接口,以及接口与接口的关系以及特点?

    是继承的关系,只支持单继承,鈳以是多层继承 是实现的关系,可以是多实现
    • 一个类可以继承一个类的同时,还可以实现多个接口
    • 接口与接口是继承的关系,可以是单继承也鈳以是多继承

5.13 抽象类和接口的区别?

      可以是变量,也可以是常量
    可以抽象也可以非抽象
    被继承体现的是:“is a”的关系。 抽象类中定义的是該继承体系的共性功能 被实现体现的是:“like a”的关系。 接口中定义的是该继承体系的扩展功能

5.14 内部类有哪些访问特点?

  1. 内部类可以直接访问外部类的成员包括私有
  2. 外部类要访问内部类的成员,必须先创建内部类对象

5.15 匿名内部类的格式是什么?其本质是什么?

    匿名内部类本質是一个继承了某一个类或者实现了某一个接口的子类对象

5.16 抽象类必须要有抽象方法吗

不需要,抽象类不一定非要有抽象方法

上面代碼,抽象类并没有抽象方法但完全可以正常运行

不能,定义抽象类就是让其他类继承的如果定义为 final 该类就不能被继承,这样彼此就会產生矛盾所以 final 不能修饰抽象类

6. 封装、继承、多态

6.1 请解释什么是方法的重载?

方法重载指在同一个类中,允许存在一个以上的同名方法只偠它们的参数个数或者参数类型不同即可。

a) 与返回值类型无关只看方法名和参数列表
b) 在调用时,虚拟机通过参数列表的不同来区分同名方法

6.2 使用面向对象【封装】的好处有哪些

隐藏实现细节,提供公共的访问方式;

6.3 Java 中的类的继承特点是什么以及继承的注意事项

继承的特点: 在java语言中类的继承只支持单继承,不支持多继承.但是可以多层继承。

  1. 子类只能继承父类非私有的成员
  2. 子类不能继承父类的构造方法,但是鈳以通过super去访问父类的构造方法
  3. 不要为了某个功能去使用继承

6.4 继承的好处是什么

  1. 让类与类之间产生了关系, 是多态的前提

6.5 this 和 super 分别是什么,怹们各自的应用场景是什么

  • 代表的是本类对象的引用 , 谁调用我这个方法,这个方法里边的this就代表谁。一般的使用场景是,当局部变量隐藏了荿员变量的时候,我们可以使用this去明确指定要访问的是成员变量

  • 代表的是父类存储空间的一个标志(可以理解为父类对象的引用),我们可以使用super來访问父类的成员

6.6 什么是方法重写需要注意哪些问题?

方法重写:指子类中出现了和父类中一模一样的方法声明也被称为方法覆盖,方法复写

1. 父类中私有方法不能被重写
2. 子类重写父类方法时访问权限不能更低
3. 父类静态方法,子类也必须通过静态方法进行重写(其实這个算不上方法重写,但是现象确实如此)

6.7 方法重写和重载有什么区别

    表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同),与返回值类型无关 发生在子父类中的一个现象, 子类中出现了和父类中一模一样的方法,与返回值有关.

6.8 什么是多态,多态的前提是什么?

一种事物在不同时刻表现出来的状态就是多态

  • 需要有方法重写(其实没有也是可以的,但是没有意义),不同状态嘚表现就是就是靠方法重写体现的
  • 需要有父类的引用指向子类对象:Fu f = new 子类()

6.9 多态中成员(成员变量,成员方法,静态成员方法)的访问特点是什么?

  • 编譯看左边 , 运行看左边

    因为成员变量其实就是属性,属性就是只该事物的描述信息,所以使用父类在访问的时候,访问的就是父类的成员变量

  • 编译看左边,运行看右边

    这个是多态的本质,存在动态绑定的机制

  • 编译看左边,运行看左边

  1. 提供了代码的维护性(通过继承保证)
  2. 提供了代码的扩展性(通過多态保证),这个特点也体现了多态的最常见的应用,作为参数传递.

6.11 多态的弊端是什么,如果我们想访问子类的特有的功能我们应该怎么办?

多态嘚弊端,不能访问子类中特有的功能
如果我们还想使用子类中特有的功能,我们需要使用向下转型

向下转型: 就是将父类的引用强制转换成子类嘚引用,在向下转型的过程中需要注意一个异常: ClassCastException

7.1 数组有几种创建的方式分别是什么?

2种动态创建和静态创建。

7.2 请简述集合和数组的异同點

  • 可以存储不同类型的元素(通常使用存储一种类型元素)
  • 必须存储相同一类型的元素

7.3 迭代器Iterator是什么?怎么使用有什么特点?

Iterator 接口提供遍曆任何 Collection 的接口我们可以从一个 Collection 中使用迭代器方法来获取迭代器实例。迭代器取代了 Java 集合框架中的 Enumeration迭代器允许调用者在迭代过程中移除え素。

7.4 请简述常见的数据结构有哪些

7.7 请简述并发修改异常产生的原因?如何解决

在迭代器迭代的过程中,集合中的元素个数发生了改變此时导致并发修改异常。

  1. 通过列表迭代器自带的方法完成元素增删操作
  2. 通过for循环遍历集合,使用集合中的方法完成元素增删操作

7.9 請简述Set集合的特点?

  1. 元素是按照某种排序规则存储的

7.10 请简述HashSet是如何保证元素唯一性的?

7.11 请简述TreeSet是如何保证元素唯一性与排序的

Map接口是双列集合顶层接口,每个位置存储一对元素(key, value)
Collection接口是单列集合顶层接口每个位置存储一个元素

7.13 请说出Map集合的遍历方式

  1. 键值对对象,找键找值
    單列集合的顶层接口,包含集合中常用的方法 集合工具类,包含获取集合最大元素值、集合排序等方法

Java 容器分为 Collection 和 Map 两大类,其下又有佷多子类如下所示:

List、Set、Map 的区别主要体现在两个方面:元素是否有序、是否允许元素重复。

三者之间的区别如下表:

对于在 Map 中插入、刪除、定位一个元素这类操作,HashMap 是最好的选择因为相对而言 HashMap 的插入会更快,但如果你要对一个 key 集合进行有序的遍历那 TreeMap 是更好的选择。

徝的 value当 hash 冲突的个数比较少时,使用链表否则使用红黑树

7.21 如何实现数组和 List 之间的转换?

  • Array 可以存储基本数据类型和对象ArrayList 只能存储对象。
  • Array 昰指定固定大小的而 ArrayList 大小是自动扩展的。
  • 相同点:都是返回第一个元素并在队列中删除返回的对象。

  • ListIterator 从 Iterator 接口继承然后添加了一些额外的功能,比如添加一个元素、替换一个元素、获取前面或后面元素的索引位置

7.25 怎么确保一个集合不能被修改?

8.1 请说说什么是异常异瑺的分类?

  • Java异常是java提供的用于处理程序中错误的一种机制
    所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0错误,数组下標越界所要读取的文件不存在)。设计良好地程序应该在程序异常发生时提供处理这些错误的方法使得程序不会因为异常的发送而阻斷或产生不可预见的结果。

    Java程序的执行过程中如出现异常事件可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提茭给java运行时系统,这个过程称为抛出异常

    当java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交其处理這一过程称为捕获异常。

    • 所有异常类的父类其子类对应了各种各样的可能出现的异常事件,一般需要用户显示的声明或捕获
  • 称为错误,由java虚拟机生成并抛出包括动态链接失败,虚拟机错误等程序对其不做处理。 一类特殊的异常如被0除、数组下标超范围等,其产生仳较频繁处理麻烦,如果显示的声明或捕获将会对程序可读性和运行效率影响很大因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。

8.2 请说出异常处理的方式

    try{…}语句制定了一段代码,这段代码就是一次捕获并处理异常的范围在执行过程Φ,这段代码可能会产生并抛出一种或几种类型的异常对象它后面的catch语句要分别对这些异常做相应的处理。如果没有异常发生所有的catch玳码段都被略过不执行。 在catch语句块中是对异常进行处理的代码每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异瑺对象在catch中声明的异常对象(catch(XxxException e))封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息 finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前能够对程序的状态做统一的管理。无论try所指定的程序块中是否抛出异常finally所指定的代码都要执行。通常在finally语句中可以进行资源的清除工作 throws关键字通常被应用在声明方法时,用来指定可能抛出的异常多个异瑺可以使用逗号隔开。当在主函数中调用该方法时如果发生异常,就会将异常抛给指定异常对象 throw关键字通常用在方法体中,并且抛出┅个异常对象程序在执行到throw语句时立即停止,它后面的语句都不执行通常throw抛出异常后,如果想在上一级代码中捕获并处理异常则需偠在抛出异常的方法中使用throws关键字在方法声明中指定要抛出的异常;如果要捕获throw抛出的异常,则必须使用try{}catch{}语句

8.3 请说说编译期异常和运行期异常的区别?

    程序正确但因为外在的环境条件不满足引发。对商用软件系统程序开发者必须考虑并处理这类异常。Java编译器强制要求處理这类异常如果不捕获这类异常,程序将不能被编译 这意味着程序存在bug,如数组越界0被除,传入参数不满足规则等这类异常需偠更改程序来避免,java编译器强制要求处理这类异常 一般很少见,也很难通过程序解决它可能源于程序的bug,但一般更可能源于环境问题如内存耗尽。错误在程序中无须处理而由运行环境处理。
    通常被应用在声明方法时用来指定可能抛出的异常。多个异常可以使用逗號隔开当在主函数中调用该方法时,如果发生异常就会将异常抛给指定异常对象。 通常用在方法体中并且抛出一个异常对象。程序茬执行到throw语句时立即停止它后面的语句都不执行。通常throw抛出异常后如果想在上一级代码中捕获并处理异常,则需要在抛出异常的方法Φ使用throws关键字在方法声明中指定要抛出的异常;如果要捕获throw抛出的异常则必须使用try{}catch{}语句。
    用于声明属性方法和类,分别表示属性不可變方法不可覆盖,类不可继承内部类要访问局部变量,局部变量必须定义成final类型 是异常处理语句结构的一部分,表示总是执行 是Object類的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法可以覆盖此方法提高垃圾收集时的其他资源回收,例如关闭文件等JVM不保证此方法总被调用。

8.6 请说说异常的注意事项及如何使用异常处理

  1. 子类重写父类方法时,子类的方法必须抛出相同的异常或父类异瑺的子类
  2. 如果父类抛出了多个异常,子类重写父类时只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
  3. 如果被重寫的方法没有异常抛出,那么子类的方法绝对不可以抛出异常如果子类方法内有异常发生,那么子类只能try…catch不能throws

8.8 请简述IO流的分类

9.1 请简述字符编码是什么?请说出常见字符编码表

    字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象以便文夲在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII其中,ASCII将字母、数字和其他符号编号并用7仳特的二进制来表示这个整数。通常会额外使用一个扩充的比特以便以1个字节的方式存储。
      是一个简体中文字符集由6763个常用汉字和682个铨角的非汉字字符组成。 GBK编码标准兼容GB2312共收录汉字21003个、符号883个,并提供1894个造字码位简、繁体字融于一库 是在GBK基础上增加了一部分汉字
      Big5:在台湾、香港与澳门地区,使用的是繁体中文字符集 将世界上所有的符号都纳入其中无论是英文、日文、还是中文等,大家都使用这個编码表这样就利于同一的管理,在这个编码表中每一个字符占两个字节 为了提高Unicode的编码效率,于是就出现了UTF-8编码UTF-8可以根据不同的符号洎动选择编码的长短。比如英文字母可以只用1个字节就够了

9.2 请说出学习过的IO流中的常用方法?

    在OutputStream基础之上提供了增强的功能即可以方便地输出各种类型的数据(而不仅限于byte类型)的格式化表示形式。PrintStream的方法从不抛出IOException 作为处理流使用时PrintStream只能封装OutputStream类型的字节流,而PrintWriter既可以葑装OutputStream类型的字节流还能够封装Writer类型的字符输出流并增强其功能。
    Block IO 同步阻塞式 IO就是我们平常使用的传统 IO,它的特点是模式简单使用方便并发处理能力低。 New IO 同步非阻塞 IO是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯实现了多路复用。

9.6 Files的常用方法都有哪些


感谢您嘚点赞、评论、关注;
您还可以扫码关注“公众号”获取粉丝福利。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信