Java基础知识及面试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java基础
1.什么是类?类是某一种事物的一般性的集合体,是相同的或相似的各个事物共同特性的一种抽象。
2.什么是对象?在面向对象概念中,对象是类的实例。对象与类的关系就像变量与数据类型的关系一样。
3.类的核心特性
封装性:类的封装性为类的成员提供公有的、缺省的、保护的、私有的等多级访问权限。目的是隐藏类中的私有变量和类中方法的实现细节。
继承性:类的继承性提供从已存在的类创建新类的机制,继承使一个新类自动拥有被继承类的全部可继承的成员。
多态性:类的多态性提供类中方法执行的多样性,有两种表现形式:重载和覆盖。
4.方法:对象中方法表达了对象所具有的行为。
5.属性:一个对象的属性是能够被外界或对象所处的环境所感知或操纵的数据或状态。
6.什么是Java?Java是一门易于编程的跨平台编程语言,同时又是一个开发、应用、执行和部署的平台。
7.为什么要有Java?Java与平台无关、一次编译处处运行、以及他的易于编程的特性。
8.Java开发程序的步骤?编写源代码(2)编译(3)执行
9.Java的环境变量
1)JA V A –HOME jdk的安装路径
2)CLASSPA TH jvm转载class字节码文件时的搜索路径
3)PA TH 是系统的环境变量、命令的搜索路径
10.JVM :Java Virtual Machine 是一个逻辑的操作系统、它屏蔽了硬件和平台的信息、jvm能将字节码文件解释并执行、
正是这种独立执行的方式是Java 具有与平台无关的特性。
11.类的加载过程:类加载器加载字节码文件到内存、jvm内存数据区将对象状态放置在堆区、各线程使用的变量放在栈区、
类的特征放在方法区、然后进行字节码验证再执行。
12.常用的Java命令:Javac、java、javadoc、jar
13.类的语法与规范
一个源文件只能有一个public的类
Public源文件可以有多个类定义
源文件名必须与public类名保持一致
包名必须放在第一行
包名可以有0个或1个但不能有多个
源文件如果带包的话最好存放在包结构对应的目录下
标识符程序语言用于标识变量名类名方法名的字符串就是标识符。
标识符必须字母下划线美元符开头大小写敏感。
类名要求首字母大写
方法名首字母小写每个单词首字母大写
常量名所有字母大写如果有两个或几个字母的联合用下划线连接
关键字:程序语言中、程序已经所有用户不能再使用的单词一般关键字都是小写
14 .数据类型:基本数据类型: 整型(byte、short、int、long)默认是int
浮点型(float、double)、默认是double
布尔型(boolean)、
字符型(char)
引用类型:类、接口、数组
15 .main()方法执行过程
1)先到方法区搜索student、如果搜索不到则去加载student的字节码文件
2)通过classpath查找对应的student字节码文件找不到就返回错误(ClassNotFound)
3)将字节码文件的二进制数据转换为class对象放置于方法区( class对象描述了student类的方法特征及静态成员等)加载完成
4)验证字节码文件
5)在堆区中划分空间放置student对象
6)在栈区放置应用类型变量 stu 、stu指向student对象的地址
7)student对象存放了class对象的地址
8) 通过student stu引用类型变量的值找到student对象、通过student对象
存放class对象的地址找到对应的study()方法然后执行。
9)释放资源 jvm运行结束
16 .基本类型和引用类型的区别
引用类型存放的是对象的地址、基本类型存放的是变量的实际值
引用类型变量可用指向复杂的数据结构
引用类型变量可使用“.”操作来访问它所指向的方法或属性
17 .表达式
运算符和操作数按照一定的规则组成的语句.
赋值运算符“=”
比较运算符“<”“>”“<=”“>=”
相等运算符“==”
位运算符 ~ :取反、 ^ :异或、| :或、& :与
逻辑运算符“&&”“||”
条件运算符 a ?b :c
18. 变量的作用域
(1)类的成员变量:
静态成员变量:生命周期从类加载开始到类被卸载结束初始化后被放在方法区
实例成员变量:变量初始化放在堆区、生命周期从生成对象开始到对象被回收时结束(2)局部变量:方法或代码块中定义的变量、局部变量从栈区弹出结束、局部变量在使用前必须初始化(3)方法的参数
(4)异常的参数
19 .数组:是相同类型元素的线性集合是一个指向数组的引用对象
20. 集合框架
Iterator是一个迭代器接口
ListIterator继承自Iterator是子接口只能用于list接口
Collection是集合框架的顶层接口
List 有序可重复
ArrayList 实现了可变数组的数据结构
LinkedList 实现了双向链表的数据结构
Set 无序不可重复
HashSet 实现了无序不可重复
LinkedHashSet 有序不可重复(插入的顺序)
TreeSet 升序不可重复