变量
变量:一个数据存储空间的表示
不同数据存入具有不同内存地址的空间,相互独立
变量:变量名、变量类型、变量值
通过变量名可以简单快速地找到数据
变量命名规则
可使用数字、字母、下划线、美元符、人名币符
数字不能开头
有意义
不能使用java关键字,如:public、class等
遵循驼峰规则
基本数据类型
数值型:
整型:
byte:字节型 8位 范围:2的8次方
short:短整型 16位 范围:2的16次方
int:整型 32位 范围:2的32次方
long:长整型 64位 范围:2的64次方
非整型:
float:单精度浮点型
double:双精度浮点型
非数值型:
字符型:char
布尔型:boolean(true、false)
String不是基本数据类型,是引用数据类型,它是Java提供的一个类
变量声明和使用
第一步:声明变量,根据数据类型在内存申请空间
数据类型 变量名; int money;
第二步:赋值,即“将数据存储至对应的内存空间”
变量名 = 数值; money = 1000;
第一步和第二步可以合并
数据类型 变量名 = 数值; int money = 1000;
第三步:使用变量,即“取出数据使用”
代码演示:
public class Demo1 {
//快捷键psvm
public static void main(String[] args) {
double score=98.5;
String name="张三";
char gender='男';
System.out.println("Java课程最高分为:"+score);
//sout 快捷键
System.out.println("最高分学员姓名:"+name);
System.out.println("最高分学员性别:"+gender);
//"+"拼接 从左往右执行
System.out.println("示例"+1+1);//示例11
System.out.println(1+1+"示例");//2示例
}
}
运行
如何自动显示JavaDoc注释
点击File-settings-Editor-File and Code Templates-class
${DATE}设置时间
常量
常量名大写
不同字符使用下划线分隔
常量一旦被赋值,就不可被更改
例如:
final double GRAVITATIONAL_ACCELERATION=9.8;
Scanner使用
import java.util.Scanner;//第一步 导入Scanner类
public class Dmeo2 {
public static void main(String[] args) {
//定义Scanner对象
Scanner input = new Scanner(System.in);
//打印提示信息
System.out.println("请输入一个整数:");
//接收输入
int number=input.nextInt();
System.out.println("请输入一个小数");
double d=input.nextDouble();
System.out.println("请输入字符串");
String s =input.next();
System.out.println("请输入true或false");
boolean b =input.nextBoolean();
System.out.println("接收的整数是;"+number);
System.out.println("接收的消失是:"+d);
System.out.println("接收的字符串是:"+s);
System.out.println("接收的布尔值是:"+b);
}
}
运行
自动类型转换与强制类型转换
大类型接收小类型数据、小类型与大类型进行运算时,则小类型会自动转换成大类型
小类型接收大类型的数据时,需要强制类型转换
public class Demo3 {
public static void main(String[] args) {
double avg=81.29;
int add=2;
//自动类型转换 隐式类型转换 大类型接收小类型
avg=avg+2;//小类型与大类型进行运算,则小类型自动转换成大类型
System.out.println(avg);
int money=1000;
//小类型接收大类型的数据 ,需要强制类型转换
money=(int)(money*(1+0.05));
System.out.println(money);
//类型转换的特殊情况
int a=97;
char c=(char)a;
System.out.println(c);
char ch='F';
int rst=ch;
System.out.println(rst);
//拼接字符串
System.out.println("abc"+1+2+3);
}
}
运行
赋值运算符及应用
变量名 = 表达式;
表达式就是符号(如加号、减号)与操作数(如b,3等)的组合
应用:实现两个两个数据的交换
public class Demo4 {
public static void main(String[] args) {
int a=8;
int b=9;
int tmp =a;
a=b;
b=tmp;
System.out.println(a);
System.out.println(b);
}
}
运行
算数运算符
基本的算术运算
+、-、、/、%、++、–
复合算术运算符
+=、-=、=、/=、%=
public class Demo5 {
public static void main(String[] args) {
int a=5;
int b=2;
System.out.println(a/b);
System.out.println(a%b);
//++自增1 --自减1
//a++本身的值等于加之前a的值
//++b本身的值等于加之后b的值
System.out.println(a++);
System.out.println(a);
System.out.println(++b);
System.out.println(b);
}
}
运行
关系运算符
=为赋值运算符,==为等于运算符
关系表达式的结果为布尔值
>、<、>=、<= 运算符的优先级别高于==、!=
>、<、>=、<=运算符只支持数值类型的数据比较
短路、短路或、非
&& 两个操作数都是true,结果才是true
|| 两个操作数一个是true,结果就是true
! 操作数为true,结果为false
操作数为false,结果为true
public class Demo6 {
public static void main(String[] args) {
boolean a=true;
boolean b=false;
System.out.println(a&&b);
System.out.println(a||b);
System.out.println(!a);
}
}
运行
逻辑与、逻辑或
& 两个操作数都是true,结果才是true
| 两个操作数一个是true,结果就是true
逻辑与、逻辑或、短路与、短路或
短路与、短路或
如果第一个操作数已经能确定表达式的值,第二个操作数就不必计算了
逻辑与、逻辑或
后面都会运行到
短路与
public class Demo6 {
public static void main(String[] args) {
int a=1;
boolean b=true;
b = a++>1&&a-->1;
System.out.println(b);
System.out.println(a);
}
}
运行
逻辑与
public class Demo6 {
public static void main(String[] args) {
int a=1;
boolean b=true;
b = a++>1&a-->1;
System.out.println(b);
System.out.println(a);
}
}
运行
按位与、按位或、按位异或、按位取反
& 按位与:
参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果位才为1,否则为0
9&5 : 1001 & 0101 = 0001 所以9&5=1
| 按位或:
参与运算的两数各对应的二进位相或.只要对应的二个二进位有一个为1时,结果位就为1
9|5 : 1001 | 0101 = 1101 所以9|5=13
^ 按位异或:
参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1
9^5: 1001 ^ 0101 = 1100 12