在 初识Java之概念 中了解了Java的发展历史及特征,本章就说说Java基础概念
1:注释
作用:程序员可见,不为编译器编译,不为虚拟机执行。
位置:类声明前后、方法声明前后、属性声明前后、方法体中。
类型:
1)单行注释 //text 从 "//" 到本行结束的所有字符均作为注释而被编译器忽略
2)多行注释 /* text */ 从"/*"到"*/"间的所有字符会被编译器忽略
3)文档注释 /** text */ 从"/**"到"*/"间的所有字符会被编译器忽略。当这类注释出现在任何声明(如 类的声明、类的成员变量的声明或者类的成员方法的声明)之前时,会作为
JavaDoc文档的内容
注:对于注释,多了显得繁琐,少了降低代码阅读性,我的建议是对一些生僻的声明或一些逻辑比较复杂的代码一定要写注释,避免后期自己回过头来看时忘记的尴尬
2:标识符
作用: 给程序中的类、方法、变量命名的符号
规则:
1)以字母、_和$开头,不能以数字开头,后跟字母、数字、“_”和“$”的组合
2)大小写敏感
3)没有长度限制
4)标识符不能是关键字和保留字
注:虽说标识符可随意组合,长度没有限制,但是为了代码的可读性,美观性,标识符一般是有意义的符号,比如我们要声明“车”这样一个类,我们可以用“***”、“abv”等这样的符号命名,但是没人能看懂,如果我们用“Car”来命名是不是一眼就看出来是干啥的了。
下面是一些推荐的命名规则,也是程序员约定俗成的一些规则,当然不同的公司也有自己的命名规则,但是大致都脱离不了一下规则:
1)类名、接口名以大写字母开头,多个单词以驼峰式的方式命名。比如“车辆管理”这样一个类,我们可以这样命名:CarManage
2)变量名、方法名以小写字母开头,多个单词以驼峰式的方式命名。比如:用户名---userName,获取用户名的方法--getUserName
3)常量名全部大写,多个单词以"_"连接
3:关键字
电脑语言里预先定义的,有特殊意义的标识符,有时叫做保留字
我在这里做一个大致分类:
1)类和接口的声明:class,extends,implements,interface
2)包的引入和声明:import,package
3)基本数据类型:boolean,char,byte,short,int,long,float,double
4)数据类型的可选值:false,true,null
5)流程控制:if,else,do,while,for,switch,case,continue,break,default,return
6)异常处理:try,catch,finally,throw,throws
7)修饰符:public,protected,private,native,final,static,abstract,synchronized,transient,volatile
8)操作符:instanceof
9)创建对象:new
10)引用:this,super
11)方法返回类型:void
12)枚举:enum
13)程序测试:assert
4:转义字符
在Java编程中,再给字符变量赋值时,通常是从键盘直接键入,对于一些特殊字符,比如单引号,如果不知道unicode直接键入‘会报错,为了解决类似这种问题,可以采用转义字符
char c = '\'';
char c = '\\';
转义字符以反斜杠\开头,常用转义字符有:
\n 换行符,将光标定位到下一行的开头
\t 垂直制表符,将光标移到下一个制表符的位置
\r 回车,将光标定位到当前行的开头,不会移到下一行
\\ 反斜杠字符
\' 单引号字符
5:数据类型
1)char字符类型
Java语言采用ucs-2字符编码,char类型占2个字节
char类型有多种表示形式
例如字符a:二进制0000 0000 0110 0001
十六进制0X0061
十进制96
2)整数类型
byte(1个字节),short(2个字节),int(4个字节),long(8个字节)都是整数类型,且都是有符号整数类型。与有符号整数对应的是无符号整数,二者区别在于把二进制数转为十进制数的方式不同。
a:有符号整数把二进制数的首位作为符号数,当首位是0时,对应十进制的正整数,当首位是1时,对应十进制的负整数。对于一个字节的二进制数, 它对应的十进制数的取值范围是-128 - 127
b:无符号整数把二进制数的所有位转换为正整数。对于一个字节的二进制数, 它对应的十进制数的取值范围是0 - 255
c:如果一个整数值在某种整数类型的取值范围内,就可以把它直接赋给这种类型的变量,否则必须进行强制类型的转换。
byte b = 10;
如129不在byte类型的取值范围(-128~127)范围内,则必须进行强制类型的转换
byte b = (byte)129;//则b的最终取值为-127
d:如果一个整数后面加上后缀——大写"L"或小写"l", 就表示它是一个long类型整数
3)浮点类型
表示有小数部分的数字,Java中有2中浮点类型
a:float(4个字节),称为单精度浮点类型
b:double(8个字节),称为双进度浮点类型
c:在默认情况下,小数及采用十进制科学计数法表示的数字都是double类型,可以把它直接赋值给double类型变量
d:如果把double类型的数据直接赋给float类型变量,有可能会造成精度的丢失,因此必须进行强制类型的转换,否则会导致编译错误
注:Java语言为了提高Java程序的健壮性,并且简化编程,提供如下特殊数字
Float.NaN 非数字
Float.POSITIVE_INFINITY 无穷大
Float.NEGATIVE_INFINITY 负无穷大
6:变量的申明和赋值
规则:Java语言要求变量遵循先定义,再初始化,然后使用的规则。变量的初始化是指自从变量定义以后,首次给它赋初始值的过程
语法:数据类型 变量名;
举例:
int a; //定义变量a
a = 1; //初始化变量a
a++; //使用变量a
int b=a; //定义变量b, 初始化变量b, 使用变量a;
b++; //使用变量b
7.引用数据类型
Java中的引用数据类型包含以下3中
a.类
b.接口
c.数组
8.引用类型和基本数据类型区别
a. 基本类型代表简单的数据类型,引用类型代表复杂数据类型,引用类型所引用的实例包括操纵这种数据类型的行为,通过"."运算符,就能访问引用变量所引用的实例的方法
b.基本类型Java虚拟机会为其分配数据类型实际占用的内存空间,引用类型仅是一个指向堆区中某个实例的指针