一、基本格式
1、Java中的程序代码可分为结构定义语句和功能执行语句,其中,结构定语句用于声明一个类或方法,功能执行语句用于实现具体的功能。每条功能语句的最后都必须用分号(;)结束。
2、Java语言严格区分大小写。
3、虽然Java没有严格考虑要求用什么样的格式来编排程序代码,但是,出于可读性的考虑,应该让自己编写的程序代码整齐美观、层次清晰。
4、Java程序中依据连续的字符串不能分开在两行中书写。
二、注释
1、注释是对程序的某个功能或者某行代码的解释说明,它只在Java源文件中有效,在编译程序时编译器会忽略这些注释信息,不会将其编译到class字节码文件中去。
2、Java中的注释有三种类型,具体如下:
· 单行注释:通常用于对程序中的某一行代码进行解释,用符号“//”表示,“//”后面为被注释的内容。
· 多行注释:顾名思义就是在注释中的内容可以为多行,它以符号“/*”开头,以符号“/*”结尾。
· 文档注释:以“/**”开头,并在注释内容末尾以“*/”结束。
三、标识符
1、在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如,包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。
2、标识符可以由任意顺序的大小与字母、数字、下划线(_)和美元符号($)组成,但不能以数字开头,不能是Java中的关键字。
3、包名的字母一律小写。
4、类名和接口名每个单词的首字母都要大写。
5、常量名所有字母都大写,单词之间用下划线连接。
6、变量名和方法名的第一个单词首字母小写,从第二个单词开始每个首字母大写。
7、在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。
四、关键字
1、关键字是编程语言里事先定义好并赋予了特殊意义的单词,也称作保留字。例如,class、public等。
五、常量
1、常量就是在程序中固定不变的值,是不能改变的数据。
2、在Java中,常量包括整形常量、浮点型常量、布尔常量、字符型常量等。具体如下:
· 整形常量是整数类型的数据,它的表现形式有二进制、八进制、十进制、十六进制。
·浮点数常量就是在数学中用到的小数,分为float单精度浮点数和double双精度浮点数两种类型。
·字符常量用于表示一个字符,一个字符常量要用一对英文、字母、数字、标点符号、以及由转义序列来表示的特殊字符。
·字符串常量用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号("")引起来。
·布尔常量即布尔型的两个值true和false,该常量用于区分一个事物的真与假。
·null常量只有一个值null,表示对象的引用为空。
3、取值范围 默认值
byte 8 -128~127 0
short 16 -2¹⁵~2¹⁵ 0
int 32 -2³²~2³²⁻¹ 0
long 64 -2⁶³~2⁶⁴⁻¹ 0L
float 32 1.4E-45~3.4028235e358 0.0F
double 64 4.9E-324~1.7976931348623157E308 0.0
六、变量的定义与变量的数据类型
1、在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。
2、整数类型变量:
· 用来存储整数数值,即没有小数部分的值。
·整数类型分为4中不同的类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。
3、浮点数类型变量:
·浮点数类型变量用来存储小数数值。
·浮点数类型分为两种:单精度浮点数(float)、双精度浮点数(double),double型所表示的浮点数比float型更精确。
4、字符类型变量:
·用于存储一个单一字符,在Java中用char表示。
·每个char类型的字符变量都会占用2个字节。
·赋值时,要用英文半角格式的单引号(' ')把字符括起来,如'a'。
5、布尔类型变量用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和false。
七、变量的类型转换:
1、自动类型转换:
·自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。
·要实现自动类型转换,必须同时满足两个条件,第一是两种数据类型彼此兼容,第二是目标类型的取值范围大于源类型的取值范围。
·整数类型之间可以实现转换,整数类型转换为float类型,其它类型转换为double类型。
2、强制类型转换:
·强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地说明。
·当两种类型彼此不兼容,或者目标类型取值范围小于原类型时,自动类型转换无法进行,这时就需要进行强制类型转换。
八、变量的作用域:
1、变量需要在它的作用范围内才可以使用,这个作用范围称为变量的作用域。
2、在程序中,变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用域。
九、算术运算符、赋值运算符、比较运算符、逻辑运算符和运算符的优先级:
1、算术运算符就是用来处理四则运算的符号:加减乘除。
2、赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。以“=”表示,将右边数赋值给左边。
3、在Java中可以通过一条赋值语句对多个变量进行赋值。
4、比较运算符用于对两个数值或变量进行比较,其结果是一个布尔值,即true或false。
> 比较左方是否大于右方 ‘a’>'b' 整形、浮点型、字符型
false
< 比较左方是否小于右方 156<456 整形、浮点型、字符型 true
=
比较左方是否等于右方 'c'='c' 基本数据类型、引用型 true
>= 比较左方是否大于等于右方 479>=426 整形、浮点型、字符型 true
<= 比较左方是否小于等于右方 12.45<=45.5 整形、浮点型、字符型 true
!= 比较左方是否不等于右方 'y'!='t' 基本数据类型、引用型 true
5、逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔型。
&&(与):两者都为真,结果才是真;
||(或):只要有一者为真,结果就是真;
!(非):非真即假,非假即真;
false&&.....&&.....:结果一定为false(短路现象)
true||.....||.....:结果一定为true(短路现象)
位运算符
二进制之间进行运算使用位运算符
&(与):两者都为1,结果才是1;
|(或):只要有一者为1,结果就是1;
~(取反):0变1,1变0;
^(异或):两者相同即为0,不同为1;
位移运算符
<<(左移):整体往左移一位,空位补0,溢出去掉。
>>(右移):整体往右移一位,正数补0,负数补1,溢出去掉。
>>>(无符号右移):整体往右移,空位补0,溢出去掉。
6、逻辑运算符可以针对结果为布尔值的表达式进行运算。
7、在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算参与运算的先后顺序,把这种顺序称作运算符的优先级。
十、if条件语句
1、if条件语句分为三种语法格式,具体如下:
·if语句 if语句是指如果满足某种条件,就进行某种处理。
·if…else语句 if…else语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理。
·if…else if…else语句 if…else if…else语句用于对多个条件进行判断,进行多种不同的处理。
十一、Switch条件语句
1、在Switch语句中,使用Switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句。
2、在Switch语句中的表达式只能是byte。short、char、int、String类型的值,如果传入其他值,程序会报错。
十二、while循环语句
1、while语句是根据条件判断来决定是否执行后面的代码,while循环语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。 2、do…while循环语句和while循环语句功能类似。
十三、for循环语句
1、for循环语句是最常用的循环语句,一般用在循环次数已知的情况下。
2、for后面的()中包括三部分内容,初始化表达式、循环条件和操作表达式,它们之间用“;”分隔,{}中的执行语句为循环体。
十四、循环嵌套
嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do…while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套。
十五、跳转语句
1、break语句:用在Switch条件语句和循环语句中,它的作用是终止某个case并跳出Switch结构。
2、continue语句:用在循环语句中,它的作用是终止本次循环,执行下一次循环。
十六、数组
1、在操作数组时,经常需要依次访问数组中的每个元素,这种操作叫做数组的遍历。
2、一维数组:点,很多格子。二维数组:面,单个格子赋值。
3、如何去定义一维数组:上面先括号+数组名比较常用。例如:
public class Good {
public static void main(String[] args) {
// TODO Auto-generated method stub
//申明一维数组
int[] a;//先括号在加数组名
char b[];//先数组名在加括号
public class Good {
public static void main(String[] args) {
// TODO Auto-generated method stub
//申明一维数组
int[] a;//先括号在加数组名
char b[];//先数组名在加括号
//分配内存
a =new int[4];//需要的内存
//分配内存的同时进行初始化值
b = new char[] {'a','b','c'};//给b分配3个内存
a[0]=1;//给a中元素赋值
a[1]=2;//a中有三个元素
a[2]=3;
a[3]=4;
//数组的遍历,数组的长度是几个i<几
for(int i=0;i<b.length;i++) {//a赋值
int temp=a[i];//定义temp存放a
System.out.println(temp);
}
for(int temp : a) {
System.out.println(temp);
}//for循环遍历数组
}
}
4.二维数组
创建一个二维数组:
public class Good {
public static void main(String[] args) {
//申明二维数组
int[] [] a;
char b[] [];//地址指向另一个数组
//分配内存
a =new int[4][3];//4列3行
b = new char[][] {{'z','h'},{'h','z'},{'h','z','d'}};//2*2,这时就会变成3*3
//分配内存的同时进行初始化值
a[0]=new int[] {1,2,3};
a[1]=new int[] {4,5,6};
a[2]=new int[] {7,8,9};
a[3][0] =10;
a[3][1] =11;//给单个格子赋值
a[3][2] =12;
for(int i=0;i<a.length;i++) {//a赋值
int[] temp=a[i];//定义temp存放a
for(int j=0;j<temp.length;j++) {//再次遍历
System.out.println(temp[j]);
}
System.out.println();
}
for(char[] temp : b) {//冒号隔开,前:数据类型;后:数组名
for(char c:temp ) {//再次遍历
System.out.println(c);
}
System.out.println();
}//for循环遍历数组
}
}
十七、数组的排序方法
1、冒泡排序:它排序数组元素的过程总是在将小的数往上放,较大的竖往后放类似于水中气泡往上升的动作,所以称为冒泡排序。
2、直接排序:选择排序也叫直接排序,它的排序速度比冒泡排序要快一些。
3、反转排序:就是以相反的排序,把原有的数组内存重新排序。反转排序的基本思想比较简单,把数组的最后1个元素和第1个元素替换,倒数第2个元素与第2个元素替换,以此类推。