基础知识
关键字
-
(1)被Java语言赋予特定含义的单词 (2)特点:全部小写。 (3)注意事项: A:goto和const作为保留字存在。 B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记
标识符
-
常见的命名规则(见名知意) A:包 全部小写 单级包:小写 举例:package,Math。 多级包:小写,并用.隔开 举例:cn.itcast;com.baidu B:类或者接口 一个单词:首字母大写 举例:Student,Demo 多个单词:每个单词首字母大写 举例:HelloWorld,StudentName C:方法或者变量 一个单词:首字母小写 举例:name,main 多个单词:从第二个单词开始,每个单词首字母大写 举例:studentAge,showAllNames() D:常量 全部大写 一个单词:大写 举例:PI 多个单词:大写,并用_隔开 举例:STUDENT_MAX_AGE
注释
-
(1)就是对程序进行解释说明的文字 (2)分类: A:单行注释 // B:多行注释 /**/ C:文档注释 /** */ (3)注释的作用 A:解释说明程序,提高了代码的阅读性。 B:可以帮助我们调试程序。 后面我们会讲解一个更高端的一个调试工具
数据类型
-
(1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。 (2)分类: A:基本数据类型:4类8种 B:引用数据类型:类,接口,数组。 (3)基本数据类型 A:整数 占用字节数 byte 1 short 2 int 4 long 8 B:浮点数 float 4 double 8 C:字符 char 2 D:布尔 boolean 1 注意: 整数默认是int类型,浮点数默认是double。 长整数要加L或者l。 单精度的浮点数要加F或者f。
数据类型转换
-
(1)boolean类型不参与转换 (2)默认转换 A:从小到大 B:byte,short,char -- int -- long -- float -- double C:byte,short,char之间不相互转换,直接转成int类型参与运算。 (3)强制转换 A:从大到小 B:可能会有精度的损失,一般不建议这样使用。 C:格式: 目标数据类型 变量名 = (目标数据类型) (被转换的数据); (4)思考题和面试题: A:下面两种方式有区别吗? float f1 = 12.345f; float f2 = (float)12.345; B:下面的程序有问题吗,如果有,在哪里呢? byte b1 = 3; byte b2 = 4; byte b3 = b1 + b2; byte b4 = 3 + 4; C:下面的操作结果是什么呢? byte b = (byte)130; D:字符参与运算 是查找ASCII里面的值 'a' 97 'A' 65 '0' 48 System.out.println('a'); System.out.println('a' + 1); E:字符串参与运算 这里其实是字符串的连接 System.out.println("hello"+'a'+1); System.out.println('a'+1+"hello"); System.out.println("5+5="+5+5); System.out.println(5+5+"=5+5");
异或运算符
-
swap数据的三种方式: 第一种: int temp; temp = a; a = b; b = temp; 第二种: a = a ^ b; b = a ^ b; a = a ^ b; 第三种: a = a + b; b = a - b; a = a - b;
switch条件表达式数据类型
-
数据类型在1.5和1.7版本之后增加了string等数据类型,目前几乎支持所有的数据类型。
二维数组
-
二维数组: 第二维数组可以不用给出个数,只需要给出第一维的即可。 第一种: DataType ArrayName[][] = new DataType[m][n]; 第二种: DataType[][] ArratName = new DataType[m][n]; 第三种: DataType[] ArrayName[] = new DataType[m][n]; 第四种: DataType[][] ArratName = {{...}{...}{...}};
函数中参数传递
-
Java中的参数传递只有值传递。 基本类型:形式参数的改变不影响实际参数; 引用类型:形式参数的改变会影响实际参数,数组属于引用类型。
Java程序的开发,设计和特征
-
开发:就是不断的创建对象,通过对象调用功能; 设计:管理与维护对象之间的关系; 特征:封装 继承 多态。
成员与局部变量
-
(1)在类中的位置不同: 成员变量:类中方法外; 局部变量:方法定义中或者方法声明上。 (2)在内存中位置不同: 成员变量:在堆内存中; 局部变量:在栈中。 (3)生命周期不同: 成员变量:随着对象的创建而存在,随着对象的消失而消失。 局部变量:随着方法的调用而存在,随着方法调用完成而结束。 (4)初始化值不同: 成员变量:有缺省值; 局部变量:没有缺省值,需要定义。
类作为形式参数:
-
可以理解为需要一个该类的数据类型,而类是抽象的概念,也就是说本质是需要该类的一个对象实例。
匿名对象
-
在需要仅仅使用一次的时候,可以创建一个无名称的对象。eg:new studentDemo().(new student()).show().
封装
-
(1)隐藏具体的实现细节,提供公共的方法。 (2)提高代码的复用性,安全性。 (3)设计原则:隐藏具体的实现细节,提供公共的访问方法。 (4)private是封装的一种表现形式。
this
-
代表当前类的引用对象,哪个对象调用方法,该方法内部的this就代表那个对象。
构造方法
-
(1)用于对象数据的初始化。 (2)方法名与类名相同;没有返回值,连void也没有;但可以写为return。任何的void返回类型都可以写作return;
static特性
-
可以修饰成员变量和成员方法
-
被类的所有对象共享,可以通过类名调用, for example:
class student{ public static String name = "Tom"; } tudent s = new student(); s.name = "sam"; System.out.println(s.name); student ss = new student(); System.out.println(ss.name); System.out.println(student.name); console Output: sam sam sam
-
静态注意:
在静态方法中没有this对象。 静态只能访问静态。
-
静态变量与成员变量的区别:
- 所属不同:
静态变量:属于类,类变量。
成员变量:属于对象。需要实例。 - 内存位置:
静态变量:方法区的静态区。
成员变量:堆内存。 - 生命周期:
静态变量:随着类的加载而加载,随着类的消失而消失。
成员变量:随着对象的创建而存在,随着对象的消失而消失。 - 调用不同:
静态变量:可以通过对象名也可以通过类名调用。
成员变量:只能通过对象名称调用。 - main方法静态:
public:权限修饰符,在jvm中的权限最大。
static:不需要创建对象即可调用。
void:返回到jvm,是没有意义的。
main:普通的函数名,一般作为程序的入口。
String[] args:可以接受数据,提高程序的灵活性,如:java test JVM
- 所属不同: