- 变量与常量
- 标识符
- 变量
- 常量
- 基本数据类型
- 类型转换
- 表达式和运算符
- 操作符(运算符)
变量与常量 标识符
标识符是一个名称,其第一个字符必须是下列字符中的一个:大写字母(A~Z),小写字母(a~z),下划线(_)或者($),后面的字符可以是上述字母或者数字(0~9)中的一个。
在标识符中,有一部分已被系统定义,用户不能使用,被称为保留字或关键字。(关键字表见官网文档)
Java关键字https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
- $var1 、_var2 、student_number是合法标识符。
- 2student(数字不能作为标识符第一个字母)
- try(关键字不能作为标识符)
- var#(含有非法字符#)
变量是一个由标识符命名的项,它具有类型和作用域,它的值可以被改变。声明变量语法如下;
type varname = value;
type百事数据类型名;
varname表示变量名,任意的合法的标识符;
value表示赋值予变量的该数据类型的值;
int num,total; String name = "java";
public class main {
public static void main(String[] args)
{
int i = 1;
String name = "java";
System.out.println(i);
System.out.println(name);
}
}
输出: 1 java常量
在变量声明格式前加上final修饰符,就声明了一个常量,常量一旦被初始化就不能被改变。语法格式如下;
final Type varname = value;
final int price = 30; final double pi = 3.141592654;基本数据类型
基本数据类型是指Java固有的数据类型,是编译器本身能理解的,可以分为数字型、布尔型和字符型。
数字型基本数据类型有6种;
| 类型 | 说明 | 长度 | 最小值 | 最大值 |
|---|---|---|---|---|
| byte | 带符号微整数 | 8位 | -128 | 127 |
| short | 带符号短整数 | 16位 | -2^15 | 2^15-1 |
| int | 带符号整数 | 32位 | -2^31 | 2^31-1 |
| long | 带符号长整数 | 64位 | -2^63 | 2^63-1 |
| float | 单精度浮点数 | 32位 | -2^(-149) | (2-(2^-23)) * (2^127) |
| double | 双精度浮点数 | 64位 | 2^(-1074) | (2-(2^-52)) * (2^1023) |
int intNum = 10; float floatNum = 5.99;
布尔型
布尔型表示一个逻辑量,只有两个值true和false,它们不对应任何整数值。
boolean isStudent; isStudent = true;
字符型(char)
字符类型数据(char)用于存储单个自符,字符以代码形式存储。Java字符型数据类型是16位的,最小值0,最大值65535。
char letter = 'A';类型转换
类型转换的意思就是你把一个数值转换成另一个数据类型。
扩展转换
按照这个方向,从一种整型转到另一种整型,或者从float转成double时,不损失任何信息。从整型转换到float或double时,会损失精度。
byte -> short -> char -> int -> long -> float -> double
int i =128; byte b = (byte)i;
窄化转换
将位数大的数据类型转换成位数小的数据类型。
窄化转换可能会丢失信息。
double -> float -> long -> int -> char -> short -> byte
(int)23.7 == 23; (int)-45.89f == -45;
在Java中,包括null在内的任何类型的都可以被转换成字符串类型。
下面四种情况,可能发生类型转换;
1)赋值转换:表达式运算结果的类型和被赋值的变量的变量类型不一致时,表达式结果的类型自动被转换成变量所对应的类型;
2)方法调用转换:在方法或者构造方法中进行类型转换;
3)强制类型转换:将一个表达式类型强制转换成另外的类型,例如:(double)6;
4)字符串转换:在“字符串+操作数”的情况下,操作数会自动转换为字符串类型。
表达式由一系列的变量、运算符和方法调用构成,用于计算、对变量赋值,以及作为程序控制的条件。表达式的值由其中的各个元素决定,可以是基本数据类型也可以是对象类型。
操作符(运算符)1、算术运算符
+ - * / % ++ --
这些运算符接受整数类型或者浮点数类型的操作数,产生整数类型或者浮点类型的结果。
2、赋值运算符
int a; a = 8;
int a; a += 8;
当然还有一些复合赋值运算符;
a=b=c=d=3; a=3+(b=10); a=(b=14)/(c=7); a+=a-=a*a;
3、关系运算符
关系运算符分为算术比较运算符和类型比较运算符。
关系表达式的结果只能是布尔型。
> >= < <= == !=
类型运算符只有一个,即instanceof,
e instanceof Point //Point为一个类
如果e是Point类的一个实例,结果为true,否则结果为false。
4、逻辑运算符
1)与运算符&&
如果两个操作数的值都为true,表达式运算结果为true,否则结果为false。
2)或运算符||
如果两个操作数的值都为false,表达式的运算结果为false,否则结果为true。
3)非运算符!
如果操作数的值为false,则表达式运算结果为true,如果操作数的值为true,则表达式的运算结果为false。
5、位运算符
位运算符对二进制位进行操作。
6、条件运算符
条件运算符为三目运算符,语法形式如下:
expression ?statement1: statement2
首先计算表达式expression,它的结果应该是一个布尔值,如果该值为true,则执行语句statement1,否则执行语句statement2.语句statement1和statement2需要返回相同的数据类型。条件运算符实现了if- else语句的功能,而且比较简练。
public class main {
public static void main(String[] args)
{
boolean isStudent;
isStudent = true;
int salary;
salary=(isStudent ? 500:1000);
System.out.println(salary);
}
}
输出: 500



