一:基础知识
1、JVM、JRE和JDK的区别:
JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。
java语言是跨平台,jvm不是跨平台的。
JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。
JDK(Java Development Kit):java的开发工具,包括jre+开发工具
2、环境变量path和classpath的作用是什么?
C:\Program Files (x86)\Java\jre7\bin;C:\Program Files (x86)\Java\jdk1.7.0_72\bin
(1)path是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录,
用于指定DOS窗口命令的路径。
(2)Classpath是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来寻找该类的class类文件的。
3、变量有什么用?为什么要定义变量?什么时候用?
答:变量的作用:用来存储数据。
为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用
4、&和&&的区别?
答:(1)&&会出现短路,如果可以通过第一个表达式判断出整个表达式的结果,则不继续后面表达式的运算;
只能操作boolean类型数据;
(2)&不会出现短路,将整个表达式都运算。既可以操作boolean数据还可以操作数。
5、标示符命名规则:
由数字(0-9),大小写英文字母,以及_和$组成。
不能以数字开头。
不能使用关键字来自定义命名。
6、数据类型:
(1)基本数据类型(4类8种):
整数类型:byte、short、int、long
浮点数类型:float、double
字符类型:char
布尔类型:boolean(ture false)
(2)引用数据类型: 类 、 接口 、数组
7、类型转换
精度从高到低 double float long int short(char) byte
(1)自动类型转换 将一个低精度---高精度
(2)强制类型转换 将一个高精度---低精度(精度会下降)
8、java的跨平台性:
通过Java语言编写的应用程序在不同的系统平台上都可以运行。
跨平台的原因:
只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。
由JVM来负责Java程序在该系统中的运行。
9、有符号数据的表示法(次重点)
原码,反码(原码取反),补码(反码+1)。
10、方法
定义:方法就是定义在类中的具有特定功能的一段独立小程序。
格式: 修饰符 + 返回值类型 + 方法名 + 参数列表
特点:
定义函数可以将功能代码进行封装
便于对该功能进行复用
方法只有被调用才会被执行
方法的出现提高了代码的复用性
对于函方法没有具体返回值的情况,返回值类型用关键字void表示,那么该方法中的return语句如果在最后一行可以省略不写。
函数的应用两个明确:
明确要定义的功能最后的结果是什么?
明确在定义该功能的过程中,是否需要未知内容参与运算
11、重载:
概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
特点:与返回值类型无关,只看参数列表(参数类型以及参数个数)。
好处:方便于阅读,优化了程序设计。
12、数组:
概念:同一种数据类型的集合。
好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
13、内存结构:
栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。
堆内存:数组和对象,通过new建立的实例都存放在堆内存中。
方法区:静态成员、构造函数、常量池、线程池
本地方法区:window系统占用寄存器:
补充14:流程控制
1.switch:从成立的case 无条件穿透所有的case包括default直到结束或者遇到break中断跳出循环;如果所有条件都不成立,则执行default
2.for循环
3.break和continue:
①Break 中断、跳出循环和switch;
②Continue 跳过后面的代码 继续进入循环的下一轮执行
4.for-each循环:数组遍历、集合迭代遍历的语法简化
15.运算符
(1)自增自减运算符
(2)位运算符
(3)赋值运算符
二:面向对象--(封装、继承、多态)
1:封装
1.类:模版图纸,类中定义对象的属性数据(成员变量),方法(成员方法)【类第一次使用时会加载到方法区】
2.对象:从模板中创建的具体实例,实例是数据的打包;新建实例时,在堆内存中新分配内存空间给这个实例
3.引用变量:理解成“遥控器”,保存一个实例的内存地址(引用变量保存在栈),引用变量的特殊值:null 不保存任何实例的内存地址
4.构造方法:新建实例对象时,立即执行的一个特殊方法;构造方法必须和类同名,并且没有返回值类型。
5.构造方法的重载:一个类中可以定义多个不同参数的构造方法,是方法重载的一种体现
6.方法重载Overload:同名不同参,与返回值类型无关,所有方法都可以重载
2:继承
Java的继承时单继承多实现,只能继承一个父类(如果不继承其他类,默认继承object类),但可以实现多个接口。
1.不能被继承的:构造方法,私有成员;
2.方法的重写:【override】继承的方法,在子类中重新定义父类中的方法(只能在子类重写),方法名相同,参数的个数和类型也必须相同,返回值类型也必须相同。
方法重写返回值类型如果是基本类型应与父类的一致;重写要求方法名完全相同,返回值类型如果是基本类型或无返回值时必须一致。
3.父类的构造方法:新建子类对象时会先新建父类对象,也会先执行父类的构造方法;默认执行父类的无参构造,默认隐含调用super();
4.super:Super.xxxx() 方法重写时,调用父类中同一个方法的代码
Super(参数) 调用父类的构造方法,默认调用父类无参构造super(),手动调用有参构造super(),必须是首行代代码 ;注意super不能在静态方法中使用
3:多态
一个对象具有多种形态的表现,多态的前提hi必须有继承
1.类型的转换:得
①向上转型:子类的实力转化成夫类型,用夫类型的引用变量,来引用子类实例,向上转型后,只能调用负类定义的通用成员,子类特有成员被隐藏;
②向下转型:已经转成父类型的子类实例,转回子类型为了对子类型进行特殊处理
2.Instanceof运行期类型识别:当多种子类型都被当做父类型来处理,要对某种子类型进行特殊处理,可以先判断其真实类型再向下转型——对真实类型,及其父类型判断,都返回true。格式:【s instanceof Line 】