Java主类结构
基本组成单元:类,类体中包含属性与方法;
每个应用程序包含一个main()方法,含有main()方法的类称为主类;
Java区分大小写;
-
包声明:package为包的关键字;
-
成员变量(类的属性为全局变量)和局部变量(方法的属性);
-
主方法(程序开始执行的位置):main(),修饰符(public权限、static静态、void返回值),main()方法必须声明为public static void main,String[] args是一个字符串类型的数组,是main()的参数;
-
导入API类库:import关键字导入;
基础数据类型
-
整数类型
可以是整数,也可以是负数;
3种形式:十进制、八进制(0开头)、十六进制(0X或0x开头);
整形数据根据它所占内存大小的不同,可以分为byte(8位,-128127)、short(16位,-3276832767)、int(32位)、long(64位)四种类型; -
浮点类型
分为单精度浮点类型(float,32位)和双精度浮点类型(double,64位); -
字符类型
char型:用于存储单个字符,占用16位(2个字节)的内存空间;
转义字符:以反斜杠“\”开头,后跟一个或多个字符;
转义字符 意义 ASCII码值(十进制)
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\ 代表一个反斜线字符’’’ 092
’ 代表一个单引号(撇号)字符 039
" 代表一个双引号字符 034
\0 空字符(NULL) 000
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\uhhhh 1到2位十六进制所代表的任意字符 二位十六进制
- 布尔类型(逻辑类型)
通过关键字boolean来定义布尔类型变量,只有true和false两个值;
变量与常量
- 标识符和关键字
标识符(任意字母、下划线_、$、数字,第一个字符不能是数字):用来标识类名、变量名、方法名、数组名、文件名的有效字符序列;
关键字:已经赋予特定意义的一些单词; - 声明变量
变量名必须是一个有效的标识符;
变量名不可以使用java中的关键字;
变量名不能重复;
应该选择有意义的单词作为变量名; - 声明常量
在程序中一直不会改变的量为常量(constant),也称为“final变量”,在整个程序中只能被赋值一次;
标准语法:final 数据类型 常量名称=值 - 变量的有效范围
根据变量的有效范围分为“成员变量”和“局部变量”;
成员变量:在类体中定义,在整个类中都有效;
类的成员变量又可以分为两种,静态变量和实例变量;
举例:
class var{
int x=45;
static int y=90;
}
x是实例变量,y是静态变量(类变量),静态变量的有效范围是跨类,直接以“类名.静态变量”的方式在其他类内使用;
局部变量:在类的方法中定义的变量,在当前代码块中有效;
举例:
public class Val{
static int times=3; //成员变量
public static void main(String[] args){
int times=4; //局部变量
System.out.println("times的值为:“+times);
}
}
运算符
- 赋值运算符=(如果一个表达式中含有2个以上的=运算符,会从最右边的=开始处理)
- 算术运算符:+加、-减、*乘、/除、%求余
- 自增和自减运算符:单目运算符,可以放在操作元之前(先将变量加减1,然后再参与表达式的运算),也可以放在操作元之后;
举例:假设a=4
b=++a;//现将a的值加1,然后赋给b,此时a=5,b值为5;
b=a++; //现将a的值赋给b,再将a的值变为5,此时a值为5,b值为4; - 比较运算符:>大于,<小于,==等于, >=大于等于, <=小于等于, !=不等于
- 逻辑运算符:返回布尔值的表达式,&、&&逻辑与,||逻辑或,!逻辑非;
- 位运算符:除“按位与”和“按位或”运算符外,其他只能用于处理整数的操作数;
左边最高位是符号位,0表示正数,1表示负数,负数采用补码表示;
按位与&:双目运算符,2个整型数据a、b对应位都是1,则结果才是1,否则为0;
按位或|:双目运算符,2个操作数对应位都是0,则结果才是0,否则为1;
按位取反~:单目运算符;
按位异或^:双目运算符,当2个操作数的二进制位表示相同(同时为0或1),结果为0,否则为1;
移位操作:<<左移(右边移空部分补0), >> 右移(最高位是0,右移空的位就填入0,若最高位是1,右移空的位就填入1),>>>无符号右移(无论最高位是0还是1,左侧被移空的高位都填入0);
适用数据类型有byte、short、char、int和long;
移位可以实现整数除以或者乘以2的n次方的效果; - 三次元运算符:
使用格式为:条件式?值1:值2
若条件的值为true,则整个表达式取值1,否则取值2;
运算符优先级
数据类型转换
类型转换是将一个值从一种类型更改为另一种类型的过程;
隐式类型转换:从低级类别向高级类别向高级类别的转换,系统会自动执行,程序员无需进行任何操作,精度从低到高的排列顺序为byte<short<int<long<float<double;
显式类型转换(强制类型转换):把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算;语法:(类型名)要转换的值
-
代码注释和编码规范
代码注释
单行注释://
多行注释:/* /
文档注释:/* */ -
编码规范
每条语句要单独占一行,一条命令要以分号结束;
在声明变量时,尽量使每个变量的声明单独占一行,即使是相同的数据类型也要将其放置在单独的一行上,这样有助于添加注释;
在Java代码中,关键字与关键字间如果有多个空格,这些空格均被视作一个;
对于关键的方法要多加注释,这样有利于阅读者了解代码结构;