Java前期基础

Java前期基础

1. 请说一下你对JDK,JRE,JVM的理

  JVM是Java虚拟机; 作用:实现了Java语言的跨平台

 JRE 是Java运行环境,包含JVM和Java核心类库; 作用: 运行Java程序

 JDK 是Java开发工具包,包含JRE和Java开发工具; 作用: 开发Java程序

 JRE,JDK,JVM的关系是: JDK包含JRE,JRE包含JVM

2. 请简述什么是关键字,关键字的特点,请列举5个常见的关键字.

1.关键字是被Java赋予特殊含义的单词

2.关键字特点:

i.全部由小写字母组成

ii.常用的代码编辑器,针对关键字有特殊的颜色标记


3. 常见的关键字有:

public,static,void, class,false,true,byte,short,int,long,float,double,char,boolean等

注意: main不是关键字,main是方法名.


4. 请简述什么是注释,注释的分类和作用

1.注释是对程序解释说明的文字; 注释是给人看的,不是给机器看的; 注释的内容不参与编译

2.注释的分类:

 i.单行注释: // 注释的内容

ii.多行注释: /* 注释的内容 */

iii.文档注释: /** 注释的内容 */

5.注释的作用: 提高程序的阅读性


6. 请说一下是什么是标识符,标识的组成,标识符的注意点和标识符的命名规则

1.标识符是给包,类,变量,方法等起的名字

2.标识符的组成: 字母,数字,_,$,中文(不推荐)

7.标识符的注意点:

i.不能以数字开头

ii.不能是关键字

iii.区分大小写

8.标识符的命名规则:

i.包: 全部小写, 多级包使用 . 隔开

ii.类: 所有单词的首字母大写

iii.变量/方法: 第一个单词首字母小写,其余单词首字母大写.

9. 请说一下什么是变量,变量的定义格式和变量的注意点.

1.变量: 是在程序执行过程中,其值可以一定范围内发生改变的量

2.变量的本质: 是栈内存的一块小区域,可用于存取数据,还可以改变这个数据

3.变量的定义格式: 数据类型 变量名 = 初始化值;

4.变量的注意点:

1. 变量必须赋值才能使用

2. 变量只在其所属的大括号中有效.

10. 请说一下++,--在前和在后的区别

1. ++,--在前表示先自增或自减,然后再参与其他的运算

2. ++,--在后表示先参与其他的运行,然后再自增或自减

11. 请说一下&和&&,|和||的区别

1. & 和 &&

1. & 和 && 只要有false则false

2. & 无论如何两边都要参与运算

3. && 左边的表达式为false,右边的表达式就不参与运算了

2. | 和 ||

1. | 和 || 只要有true则true

2. | 无论如何两边都要参与运算

3. || 左边的表达式为true,右边的表达式就不参与运算了

12. 请说一下continue,break和return的区别

1. continue 用在循环语句中,表示跳过本次循环后面的部分,继续下一次循环

2. break 用于循环或switch语句表示结束循环语句或switch语句

3. return 用于方法返回值或结束方法

13. 请说一下do...while,while,for的区别

1. do...while 循环体至少执行一次

2. for和while只有满足条件才执行循环体

3. for 循环结束后,循环控制变量不能继续使用

4. while循环结束后,循环控制变量还可以继续使用

14. 请说出switch支持哪些数据类型.

1. JDK1.5 之前: byte,short,char,int

2. JDK1.5 支持枚举

3. JDK1.7 支持字符串

15. 请说出什么是方法,方法的定义格式以及方法如何调用

1. 方法: 方法是完成特定功能的代码块

2. 定义格式:

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,...){

方法体;

return 返回值;

}

3. 调用

1. 直接调用: 方法名(实参列表);

2. 输出调用: System.out.print(方法名(实参列表));

3. 赋值调用: 返回值类型 变量名 = 方法名(实参列表);

16. 请说出方法参数传递的特点.

1. 基本数据类型作为参数传递,形式参数的改变不会影响实际参数

2. 引用数据类型作为参数传递,形式参数的改变会直接影响实际参数

17. 请说出局部变量和成员变量的区别

1. 定义位置不同

1. 成员变量定义在类中方法外

2. 局部变量定义在方法中或方法的声明上

2. 内存位置不同

1. 成员变量在堆内存

2. 局部变量在栈内存

3. 生命周期不同

1. 成员变量随着对象的创建而存在,随对象的消失而而消失

2. 局部变量随方法的调用而存在,随方法执行结束而消失

4. 默认值不同

1. 成员变量有默认值

2. 局部变量没有默认值,不赋值不能使用

18. 请说出构造方法和普通方法的区别

1. 方法名不同

1. 构造方法必须是类名

2. 普通方法自定义

2. 返回值类型

1. 构造方法没有返回值类型,void都没有

2. 普通方法必须有返回值类型,没有返回值返回值类型就是void

3. 作用不同

1. 构造方法用于给成员变量赋值

2. 普通方法根据需求实现自己的功能

4. 调用次数不同

1. 构造方法创建对象由系统调用,一个对象只会调用一次

2. 普通方法,根据需要调用,可以调用很多次

19. 请输出类和对象的关系

1. 类:对一类事物的抽象描述

2. 对象: 对象是类的具体化,是一个具体的个体.

3. 对象是通过类创建出来的

20. 封装的体现和好处

* 把成员变量私有化,提高了代码的安全性.

* 把功能封装到方法,提高了代码的复用性.

21. 请说出String有哪些常用方法及其作用

1. 构造方法

String(String str) 用已有的字符串对象创建一个新字符串对象

String(char[] chs) 用字符数组创建一个字符串对象

String(char[],int index,int len) 用字符串的一部分创建一个字符串对象. 从index索引开始,使用len个字符

2. 判断功能

boolean equals(Object obj) 判断两个字符串的内容是否相同,区分大小写

boolean equalsIgnoreCase(String str) 判断两个字符串的内容是否相同,不区分大小写

boolean startsWith(String str) 判断一个字符串是否以指定的字符串开头

boolean endsWith(String str) 判断一个字符串是否以指定的字符串结尾

boolean contains(String str) 如果包含指定子串就返回true,否则返回false

3. 获取功能

int length() 获取长度

char charAt(int index) 获取指定索引的字符

int indexOf(String str) 获取指定的字符串第一次出现的索引

String subString(int start) 截取从start位置开始,到整个字符串结尾的子串,返回截取后的字符串,原串不变

String subString(int start,int end) 截取从start位置开始,到end位置位置的子字符串; 包含start不包含end.返回截取后的字符串,原串不变

String replace(String oldStr,String newStr) 使用newStr替换掉原串中所有的oldStr,返回替换后的字符串,原串不变

String replaceFirst(String oldStr,String newStr) 使用newStr替换掉原串中第一次出现的oldStr,返回替换后的字符串,原串不变

4. 转换功能

char[] toCharArray() 把字符串转换为字符数组,返回字符数组,原串不变

String toLowerCase() 把字符串中所有的大写字母转小写,返回转换后的字符串,原串不变

String toUpperCase() 把字符串中所有的小写字母转大写,返回转换后的字符串,原串不变

5. 去除空格与切割

String trim() 去掉字符串两端空格,返回去掉空格的字符串,原串不变

String split(String regex) 把当前的字符串,使用指定的分割符进行切割,返回分割后的字符串数组,原串不变

22. 请说出StringBuilder有哪些常用方法及其作用

1. 构造方法

StringBuilder() 创建一个空的StringBuilder对象

StringBuiler(String str) 把字符串对象转换为StringBuilder对象

2. 普通方法

int length() 获取StringBuilder对象中的字符个数

StringBuilder append(任意类型) 在末尾追加数据

StringBuilder reverse(); 翻转StringBuilder中的字符

String toString() 把StringBuilder转换String

23. 请说出ArrayList的常用方法及其作用

boolean add(E e) 添加元素

void add(int index,E e) 向指定索引插入元素

E get(int index) 获取指定索引的元素

int size() 获取集合中元素的个数

boolean remove(Object obj) 删除指定元素,删除成功 返回true,删除失败返回false

E remove(int index) 删除指定索引的元素,返回被删除的元素

E set(int index, E e) 替换指定索引的元素,返回被替换的元素

24. 请说出IO流分类和作用.

1. IO流分为: 输出流和输入流

2. 输出流: 用于把程序中的数据写到持久化设备上

3. 输入流: 用于把持久化设备上的数据读取到程序中来

25. 请输出两个字符缓冲流的特有方法及其作用.

BufferedReader 特有方法

readLine() 读一行,只读内容不读换行符,读到文件末尾返回null

BufferedWriter 特有方法

newLine() 写换行.

26. 数组的角标越界异常产生的原因

访问数组中不存在索引.

27. equals和==的区别

== 既可以比较基本数据类型,也比较引用数据类型,如果比较的是基本数据类型,那么比较的是值,如果比较的引用,那么比较是地址值

equals: 只能用于引用数据类型的比较; 如果是字符串equals方法比较的使用字符串中内容是否相同.

28. 数组的初始化方式有哪两种?

动态初始化: int[] arr = new int[3];

静态初始化: int[] arr = {1,2,3,4};

29. 给对象成员变量初始化的方式

1. 通过带构造方法

2. 通过setXxx赋值

30. 构造方法调用时机,

当使用new创建对象的时候调用

31. this关键字的意思

this 代表本类对象的引用,谁调用这个方法,this就是谁.

32. 类型转换

1. 隐式类型转换: 当一个小范围数据类型的数和一个大范围类型的数进行运算,

首先小范围数据类型的数,会自动提升为大范围类型的数据,然再进行运算

2. 强制类型转换: 当把一个大范围类型的数,赋值给一个小范围类型的变量的时候,就需要强制类型转换,

强制类型转换可能会损失精度.

格式: 目标类型 变量名 = (目标类型)(需要转换的表达式)

33.文件的绝对路径和相对路径

绝对路径: 是以盘符开头的

相对路径: 相对于项目根目录而言的.

34.输出流和输入区别

输出流: 把程序中的数据写到文件中

输入流: 把文件中的数据读到程序中

35.输入流的基本操作(文件读取的流程)输出流的基本操作(IO流的写入流程)

IO流的几个步骤"

IO读写操作流程

答案:

1. 创建流对象,绑定文件

2. 调用流对象的读(写)方法

3. 关闭流,释放资源

write(int i)的使用

bufferwriter的wirte(int i)的使用

写一个字符也可以写这个字符对应编码值.

readline()的使用: 读一行

文件复制的基本流程"

创建输入流对象帮定源文件

创建输出流对象绑定目标文件

三种方式:

一次读一个写一个字符

一次读一个字符数组,写一个字符数组

一次读一行,写一行,写换行

关闭流,释放资源

缓冲流的输入输出流

缓冲输出流: BufferedWriter

缓冲输入流: BufferedReader

缓冲流作用特点: 提高读写效率的

阅读更多

没有更多推荐了,返回首页