java代码都定义在类中,类由class来定义,严格区分大小写,命名规则遵循驼峰命名法,见名知意。
main方法:程序的入口;程序能够独立运行的前提;可以被JVM调用
1、单行注释(//)://后面的文字至本行结束的所有字符都会被编译器忽略
2、多行注释(/* */):/* */包裹中的所有字符都会被编译器忽略
3、文档注释(/** */):以/**开头,以*/结束,在/** */之间的所有字符会被编译器忽略,还可以用于生成文档
注:多行注释和文档注释不可嵌套,因为其会按照固定的注释格式找注释范围。多行文档注释常用于类名、方法名之前,会被编译器忽略,但用于生成文档
java关键字就是被java语言赋予了特殊含义的单词,程序中的标识符不能再以关键字来命名了
1、package、class、extends、final、import、implements、interface、void、synchronized
2、boolean、char、byte、double、false、float、int、long、short、true
3、abstract、new、null、static、super、this、throw、throws、try
4、break、case、catch、continue、finally、for、else、if、return、switch、while
5、default、const、do、goto、instanceof、native、strictfp、transient、volatile
6、private、protected、public
java标识符就是java自定义的名称,例如类名、方法名、变量名、包名、参数名、接口名
1、由字母(汉字)、数字、下划线_、$组成,不能以数字开头,严格区分大小写
2、为了提高阅读性,采用见名知意的命名规则,采用驼峰命名规则
3、建议,常量名所有字母大写
4、不能用java关键字与java保留字命名
java常量表示程序中固定不能改变的值,web项目中,通常都会单独命名一个类,来包装这些固定不变的值
1、整数常量:所有整数
2、小数常量:所有小数
3、布尔型常量:只有true和false
4、字符常量:将一个数字、字母(汉字)或者符号用单引号( ' ' )标识
5、字符串常量:将一个或者多个字符用双引号(“ ”)标识
6、null常量:表示对象的引用为空
在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。
1、变量的定义格式:数据类型 变量名 = 初始化值;
2、局部变量与成员变量:局部变量(不是声明在类体括号里面的变量,局部变量使用前必须初始化值,局部变量没有默认初始化值,局部变量的作用域是从定义开始到定义它的代码块结束、在栈中存储,生命周期相对较短),成员变量(在方法体外,类体内声明的变量,成员变量的作用是整个类中、在堆中存储,生命周期相对较长),局部变量是定义在方法中的变量,出了该方法就不能访问该变量了,成员变量是在类中定义,并且在类的成员方法中都能访问的变量。
3、变量的数据类型:基本数据类型、引用数据类型
4、变量的作用范围:一对{ }之间有效
Java是一门强类型的语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错,8种基本数据类型是Java语言内嵌的。
1、整数类型:byte(字节型,占1个字节);短整型(short,占2个字节);整型(int,占4个字节); 长整型(long,占8个字节,值后加l或L)
2、浮点类型:float(单精度浮点型、4个字节,值后加f或F);double(双精度浮点型,8个字节)
3、字符型:char(2个字节,有且只有1个字符)
4、布尔型:boolean(只有两个值:true、false)
引用数据类型是在Java程序中由编程人员自己定义的变量类型
包括:类(class)、接口(interface)、数组、枚举(enum)、注解(annotation)
1、自动类型转换(隐式类型转换):目标类型的取值范围大于源类型的取值范围(小转大)
2、强制类型转换(显式类型转换):目标类型继承了或者实现了源类型(大转小)
注:强制类型转换容易造成数据精度丢失
1、算术运算符:
+ | 正号 | +3 | 3 |
- | 负号 | b=4;-b; | -4 |
+ | 加 | 5+5 | 10 |
- | 减 | 6-4 | 2 |
* | 乘 | 3*4 | 12 |
/ | 除 | 5/5 | 1 |
% | 取模(即算数中的求余数) | 7%5 | 2 |
++ | 自增(前) | a=2;b=++a; | a=3;b=3 |
++ | 自增(后) | a=2;b=a++; | a=3;b=2 |
– | 自增(前) | a=2;b=–a; | a=1;b=1 |
– | 自增(后) |
2、赋值运算符:=(赋值)、+=(加等于)、-=(减等于)、*=(乘等于)、/=(除等于)、%=(模等于)
3、比较运算符:比较运算符用于对两个数值或变量进行比较,其结果是一个布尔值,即true或false
==(相等于)、 !=(不等于)、 >(大于)、<(小于)、>=(大于等于)、<=(小于等于)
注:比较运算符==与赋值运算符=的区别
4、逻辑运算符:逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔型
&(与)、|(或)、!(非)、^(异或)、&&(短路与)、||(短路或)
注:注意区别普通&、|与&&、||的区别
5、位运算符:位运算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的
6、运算符的优先级:在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,编写程序时,尽量使用括号()来实现想要的运算顺序,以免产生歧义。
7、三元运算符:三元运算符的标准格式: 布尔表达式?表达式1:表达式2(若布尔表达式为true,则结果是表达式1,否则就是表达式2,运算必然有结果,和if (){} else {}比简化了代码)
1、顺序结构:如果代码里没有流程控制,程序是至上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,直到程序的最后。
2、分支结构(条件结构):
if语句:基本语法:if(表达式){方法体}else if(表达式){方法体}else(方法体)
几种形式:(三种格式:if(条件表达式){执行语句;};if(条件表达式){执行语句;}else{执行语句;};if(条件表达 式){执行语句;}else if (条件表达式){执行语句;}……else{执行语句;})
switch控制语句:基本语法:switch(表达式){case 表达式可能的结果值1:执行语句;break;case 表达式可能的果 值2:执行语句;break;...default:执行语句;break;//最后这个一般不写}
注:case之间与default没有顺序。先执行第一个case,都没有匹配的case值执行default;switch 语句只能使用byte、char、short、int四种基本类型以及它们的包装类和枚举
3、循环结构:while结构(事先不需要知道循环执行多少次);do while(事先不知道要执行多少次,只是至少要执行一次(先 做,后判断);for结构(需要知道循环次数)
注:增强for循环结构,前提是泛型技术,缺点是不能操作数组和集合中的元素,结构:for(数据类型 变量 : 数组 或者集合){ 循环执行体 }
4、控制循环结构:break(跳出循环),continue(跳出本次循环,继续下一次循环)
1、方法的定义:方法也称为函数,就是定义在类中的具有特定功能的一段独立代码块,定义方法可以将功能代码进行封装,实现独立的功能,提高了代码的复用性。
2、方法的解析:方法的格式:修饰符 返回值类型方法名(参数类型形式参数1,参数类型形式参数2,…) { 执行语句;return返回 值;//考虑有无返回值}
方法的解析:修饰符(对访问权限进行限定);返回值类型(用于限定返回值的数据类型);参数类型(用于限 定调用方法时传入参数的数据类型);方法名(是一个变量,用于接收调用方法时传入的数据); 返回值(被return语句返回的值,该值会返回给调用者);return关键字(用于结束方法及返回方 法指定类型的值)
3、方法的重写与方法的重载:方法重载(方法名相同,参数类型不同或者参数个数不同),方法重写(方法名,参数都相同, 就方法体不同,存在于父类与子类,接口与实现类中)
注:方法只有定义在类中,并且只有在调用时才会被执行,方法结束后,方法里的对象就失去了引用
1、数组的定义:同一种类型数据的集合,数组就是一个容器
数组常见异常(数组角标越界异常、空指针异常)
动态初始化(先定义后赋值)、静态初始化(定义时即给数组赋值)
2、数组的遍历:数组的索引,数组的最值,数组的遍历,数组的排序,多维数组
JVM在程序的运行时期把内存分为5片区域:栈内存、堆内存、方法区、本地方法区、寄存器。
1、栈内存:运行方法,存储局部变量,当数据使用完,所占空间会自动释放。
2、堆内存:存储实体对象的,数组,成员变量,数组和对象,通过new建立的实例都存放在堆内存中,每一个实体都有内存地 址值,实体中的变量都有默认初始化值,实体不在被使用,会在不确定的时间内被垃圾回收器回收。
3、方法区:存储写的方法
4、本地方法区:JVM调用Windows底层功能使用
5、寄存器:JVM通过Windows和CPU对话的时候使用