数据类型分为基本数据类型和引用数据类型
基本数据类型
•整型:byte int short long
•浮点型:float double
•布尔型:boolean
•字符型:char
引用数据类型
数组、类、接口 他们的字面值并不是一个值而是一段地址
标识符的命名规则:
可由英文字母、数字、$符号组成
不能以数字开头
不能为关键字
不能包含空格
驼峰命名法
大驼峰(用于类、接口命名):首字母大写,其它小写,若多个单词组成每个单词的首字母大写
小驼峰(用于变量、方法命名):首字母小写,若由多个单词组成则只有第一个单词的首字母小写,其它单词的首字母大写
运算符
逻辑运算符
使用&&时,当左边的表达式为false时,右边表达式不执行
使用||时,当左边的表达式为true时,右边表达式不执行
逻辑运算符两边要求都是布尔类型,最终结果也是布尔类型
关系运算符
所有的关系运算符的运算结果都是布尔类型,不是true就是false
赋值运算符
除了第一个=,其余的都是拓展赋值运算符
注:使用扩展赋值运算符时,永远都不会改变运算结果类型
条件运算符
(三元条件运算符)?:
格式: 布尔表达式?表达式1:表达式2
当布尔表达式的结果为true时,表达式1的执行结果为整个表达式的结果
若布尔表达式结果为false时,表达式2的执行结果为整个表达式的结果
i++ 先赋值后运算 先用后加
++i先运算后赋值 先加后用
a=i++; 先把i赋值给a,i再运算i=i+1
a=++i;先i运算i=i+1,再把i赋值给a
变量的作用域
类级(全局变量或静态变量):需要用static关键字修饰
对象实例级(成员变量)
方法级(局部变量):在方法内部定义的变量
块级:内部可访问全局变量、成员变量,若块被包含在方法内部,也可访问局部变量
局部变量和块级变量必须要初始化,否则不能访问
成员变量和局部变量的区别:
成员变量属于类,是独立于方法之外的变量,局部变量是方法中定义的变量或是方法的参数
成员变量可以被public、private、static等修饰,局部变量不能被访问修饰符及static所修饰;
成员变量和局部变量都可以被final修饰
成员变量存在于堆内存,局部变量是存在于栈内存
成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而产生,随着方法调用的结束而自动消失
成员变量没有赋初值,则默认。局部变量不会自动赋初值
常用DOS命令
类
类由数据成员(成员变量)与函数成员(成员方法)封装而成
一般结构为:
[类修饰符] class 类名称{
[修饰符] 数据类型 成员变量名称 ; (声明成员变量)
声明成员方法
}
类修饰符: public、abstract(该类为抽象类,无实现方法,需要子类提供)、final(声明该类为最终类,不能被继承)、缺省(表示只在相同包中的对象才能使用)
一个类可由多个修饰符,无先后顺序,但abstract和final不能同时应用于一个类中
包:
声明一个包,形式为:
package 包名;
使用已编译好的包,三种方法:
在要引用的类名前带上包名作为修饰符
Animals.Cat cat=new Animals.Cat();
其中Animals是包名,Cat是包中的类,cat是类的对象
在文件开头使用import引用包中的类。如:
import Animals.Cat;
class Check{
Cat cat=new Cat();
}
在文件前使用import引用整个包。如:
import Animals.*;
流程控制:
顺序结构
分支结构(if语句、switch语句)
switch语句
表达式的值必须是整型或字符型
循环结构
for循环语句
while循环语句
do...while循环语句
==和equals()的区别
一个是运算符,一个是方法
== 比较的对象是基本数据类型,则比较数值是否相等;比较的是引用数据类型,则比较的是对象的内存地址是否相等
equals():用来比较两个对象的内容是否相等。
相对路径和绝对路径的区别
相对路径:相对于当前文件,待引入的资源文件的位置
绝对路径:文件在硬盘上的真实路径或完整路径
发文件一般用相对路径
this和super的区别
this代表本类对应的引用
super代表父类存储空间的标识(可以理解为父类引用)
为什么this和super不能一起使用?
因为它们都要在写在代码的第一行
面向对象三大特性(封装、继承、多态)
子类到底能继承父类中的哪些内容?
构造方法不管是什么修饰符子类都无法继承
成员变量不管是什么修饰符子类都能继承,但是private修饰的只能继承不能直接调用(只是复制了但是不可用)
成员方法非私有的可以继承,私有的(private修饰的)不能继承
只有父类中的虚方法(不被private、static、final修饰的方法称为虚方法)才能被子类继承
Java的多态性由类的继承、方法的重写、父类引用指向子类对象体现的