一、注释
注释就是对一行或者多行代码的功能或者作用进行简单描述或说明‘
三种注释:
// 单行注释
/* */ 多行注释
/** */ 文档注释
/**
* 文档注释
* 可以注释多条内容
*/
public class HelloWorld {
/*
* 这是多行注释
* 这是多行注释
* 这是多行注释
*/
public static void main(String[] args){
//这是单行注释
System.out.println("Hello World");
}
}
二、Java 标识符
标识符 凡是在java中能够由我们自己明明的地方都称为标识符
标识符:主要包括类名 方法名称 变量名 接口名 常量名 等
标识符的规则:
1 组成 : 只能由数字 字母 下划线(_) 美元符号($)
2 不能以数字开头
3 不能是关键字
4 标识符是大小写敏感的(严格区分大小写的)
5 标识符的命名尽量做到见名知意 尽量采用有意义的英文单词(或者采用公认的单词的缩写) 如果实在想不到合适的单词 可以采用拼音
int a = 3;
int _123=23;
int $22a=33;
int 变量a = 11;//java支持中文命名 但是不允许
int 111a = 1111;//不合法
int a# = 0;//不合法
int int = 20;//不合法
常见的命名约定
驼峰命名法:
方法,变量
- 标识符是一个单词的时候 所有的字母都小写 name
- 标识符如果有多个单词组成 则从第二个单词开始 之后的每个单词的首字母要大写 firstName
类,接口:
- 标识符无论是几个单词 每个单词的首字母都必须大写
常量
- 所有的单词的所有字母都大写 并且单词和单词之间使用下划线分割
三、Java关键字
关键字:就是被Java语言赋予了特定含义的单词
Java 语言目前定义了 51 个关键字,这些关键字不能作为变量名、类名和方法名来使用。以下对这些关键字进行了分类。
- 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
- 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
- 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
- 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
- 保留字:true、false、null、goto、const。
- 关键字的字母全部小写。因此 public 是关键字,而 Public 则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名。
- 常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。比如现在我们能看到的public、class、static等。
四、常量
常量是指在程序的整个运行过程中值保持不变的量。声明常量的同时要赋予一个初始值。常量一旦初始化就不可以被修改。
Java 语言使用 final 关键字来定义一个常量,其语法如下所示:
final dataType variableName = value
final 是定义常量的关键字,dataType 指明常量的数据类型,variableName 是变量的名称,value 是初始值。
常量类型 | 说明 | 举例 |
---|---|---|
字符串常量 | 用双引号括起来的内容 | “HelloWorld”,“程序员” |
整数常量 | 不带小数的数字 | 666,-88 |
小数常量 | 带小数的数字 | 13.14,-5.21 |
字符常量 | 用单引号括起来的内容 | ‘A’,‘0’, ‘我’ |
布尔常量 | 布尔值,表示真假 | 只有两个值:true,false |
空常量 | 一个特殊的值,空值 | 值是:null |
public class HelloWorld {
// 静态常量
public static final double PI = 3.14;
// 声明成员常量
final int y = 10;
public static void main(String[] args) {
// 声明局部常量
final double x = 3.3;
}
}
常量有三种类型:静态常量、成员常量和局部常量。
常量的注意事项:
- 在定义常量时就需要对该常量进行初始化。
- final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
- 为了与变量区别,常量取名一般都用大写字符。
五、变量
变量就是计算机内存中的一块存储单元
变量的值在程序运行期间可以被修改。
变量所占据的空间大小有数据类型来决定
定义变量:
数据类型 变量名 = 变量值;
int a = 100;
变量使用的注意事项:
1 在同一个大括号范围内 变量名称不允许重复
2 变量在第一次使用之前必须进行初始化(赋值)
public static void main(String[] args){
int a = 100;//声明的同时完成了变量的初始化
a = 200;
int b;//声明变量
b = 20;//初始化变量
b = b+1;//变量使用
System.out.println(b);//使用变量
}
3 对于我们的long和flot类型 在声明该类型的变量的时候 必须在其末尾添加标记
六、数据类型
Java 语言支持的数据类型分为两种:基本数据类型(Primitive Type)和引用数据类型(Reference Type)。
基本数据类型
基本数据类型包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和 double (双精度浮点型)共 8 种
- e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方
- 在java中整数默认是int类型,浮点数默认是double类型。
整数类型: byte、 short、 int、 long
- Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。
- Java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’
- Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
浮点
浮点类型是带有小数部分的数据类型
十进制数形式:如: 5.12 512.0f .512 (必须有小数点)
科学计数法形式:如: 5.12e2 512E2 100E-2
float 单精度 尾数可以精确到7位有效数字 4个字节
double 双精度 精度是float的两倍 这是浮点型的默认类型 8个字节
一个值要能被真正看作 float,它必须以 f(或 F)后缓结束;否则,会被当作 double 值。对 double 值来说,d(或 D)后缓是可选的。
public static void main(String[] args){
float f = 3.14F; //浮点数默认的类型是double 当我们想要表示一个float类型的浮点数的时候 此时我们就需要在数值后边加上一个F或者f
double d = 3.14D;
float f1 = 0.1f;
double d1 = 1.0/10;
System.out.println(f1 == d1);//false
float f2 = 42323442F;
float f3 = f2 +1;
System.out.println(f2==f3);//true
}
以上代码 由于收到长度和精度的限制,无法精确地去表示一些浮点数 只是近似的等于 。因此在以后的开发中,当我们在遇到需要精确表示小数的时候 特别是金融方面的时候,千万不要直接使用float和double去表示。
字符型char
char表示字符 占用两个字节
java中的所有的字符都使用的是Unicode编码 一个字符可以存储一个字母 可以存储一个汉字 还可以存储其他的字符
字符的表示形式:
public static void main(String[] args){
//字符的第一种表示形式 使用单引号引起来的
char c1 ='1';
char c2 = '中';
char c3 = 'a';
char c4 = '&';
//转义字符
char c5= '\t';//制表符
char c6='\r';//回车
char c7 = '\n';//换行
//常量表示 直接使用unicoide值进行表示
}
布尔类型:boolean
表示的是逻辑值 只有true和false 两个值
boolean isable; // 声明 boolean 类型的变量 isable
boolean b = false; // 声明 boolean 类型的变量 a,并赋予初值为 false
引用数据类型
引用数据类型建立在基本数据类型的基础上,包括数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。
引用类型还有一种特殊的 null 类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针
空类型(null type)就是 null 值的类型,这种类型没有名称。因为 null 类型没有名称,所以不可能声明一个 null 类型的变量或者转换到 null 类型。
空引用(null)是 null 类型变量唯一的值。空引用(null)可以转换为任何引用类型。
七、数据类型转换
数据类型的转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。
自动类型转换
把一个表示数据范围小的数值 或者变量赋值给一个表示数据范围大的
//完成了数据类型的转换 将int类型转换为了double
double d = 100;// 100 这个数值单独来说他是属于int类型 但是当我们完成赋值操作之后 此时保存在d这个变量中的数据就是double 自动类型转换
byte b = 100;// byte -128--127
int i= b;// 将byte转换为了int 有小范围到大范围 自动类型转换
i = 200;
b = (byte)i;//强制转换 转换是存在一定的风险的 会造成数据的损失
System.out.println(b);
数值型数据的转换:byte→short→int→long→float→double。
字符型转换为整型:char→int。
强制类型转换
把一个大范围的数值或者变量赋值给另一个表述数据范围小的变量
当把大范围的数据强制转换为小范围的数据的时候 保留低位 舍弃高位,
在强制类型转换中,如果是将浮点类型的值转换为整数,直接去掉小数点后边的所有数字;而如果是整数类型强制转换为浮点类型时,将在小数点后面补零。
数据类型 变量 = (目标类型) 变量/数据;
byte b1 = 10;
byte b2 =20;
byte b3 = (byte) (b1 + b2);// 在进行算术运算时 会默认自动将整数转换为int类型 在计算结果 结果就是一个int类型 此时如果要将b1 + b2的结果赋值给b3 则需要强制转换