数据类型和运算符
一.变量的命名
1.首先说下什么是变量,变量的定义是什么:一个数据存储空间的表示(CPU内存开辟的一个空间),变量的存储地址唯一,不重复。
2.变量的命名规则 : 字,下,美,人,数,骆驼
字:代表以字母开头 例如:name
下:代表以下划线开头 例如:_name
美:以美元符号开头 例如:$name
人:以人民币符号开头 例如:¥name
数:变量名中包含数字可以,但不能以数字开头 例如:name6 6name就是错的写法
骆驼:即驼峰命名法:变量名以多个单词组成,后面的单词手字母要大写 例如 nameNum;驼峰命名法可视为一种习惯,增强程序员的可读性,但绝不强制要求。
还有一点大家要注意下:不能使用关键字作为变量名,例如public class System 等等。
如果你的变量名是由多个单词组成,切记单词之间不要有空格,例如:zip code 这种情况在环境里编写会报错
package test; public class Demo { public static void main(String[] args){ int name=100; int _name=100; int $name=100; int ¥name=100; int name6=100; int nameNum=100; } }
3.变量的三要素:变量类型,变量名,变量值;
变量的类型 变量 = 变量值 int money = 1000 ;
二.数据类型
1.数据类型有两种:数值型,非数值型
数值型:整数类型,浮点型(我们常说的小数:98.5 88.5)
非数值类型:字符型,布尔型
整数类型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
引用数据类型:String 存放字符串
以上类型都有它们的各自的取值范围:取值范围的顺序
byte short int long float double
char int long float double
2.常量
特点:
(1)常量名通常大写
(2)不同字符建议使用下划线分割
(3)不能被二次赋值(换句话说就是如果进行二次赋值就会报错)
注意:变量类型前一定要加final
public static void main(String[] args){ final String CHENHU_SEX = "男"; System.out.println(CHENHU_SEX); CHENHU_SEX = "女"; System.out.println(CHENHU_SEX); }
3.Scanner的使用方法
步骤:
1.导入import java.util.Scanner;
2.Scanner scanner = new Scanner(System.in);
3.调用String name = scanner.next();
package test; //第一步:导入Scanner类 import java.util.Scanner;//导入老外写的Scanner类,包路径是Scanner /** * 案例2:Scanner的使用 * */ public class Demo02 { public static void main(String[] args){ //提示语句 System.out.println("请输入您要输入的值是:"); //第二步: 创建Scanner对象 Scanner scanner = new Scanner(System.in); //第三步:获取键盘输入的值(调用scanner对象的next()方法,将返回值赋给name变量,name变量类型是String类型) String name = scanner.next(); //测试 System.out.println("您刚刚输入的值是:"+name); } }
4.数据类型转换:强制类型转换,自动类型转换
(1).由小转大,直接转 int a = 3;//将3赋值给变量a double b ; b = a;
float c=5.6f; System.out.println(b); (2)由大转小,需要强制转换,语法:加入小括号 int a; double b = 5.0; a = (int)b; System.out.println(a);
(3)int num1=10;
double num2=9.8;
int num4=num1-(int)num2;
System.out.println(num4);
强制类型转换
(1)浮点数的默认类型是double 如果将5.6直接赋给float会出现编译错误 因为float的取值范围小于double 要在float后加f
(2)因为double的取值范围大于int的取值范围,将b赋给a需要强制类型转换
(3)当表达式中有一个值为double 那么整个结果提升为double 当double类型转给int类型时 会造成精度丢失 小数点后面的值将全部丢失num2会变成9 输出num4值是1
自动类型的转换:就是小的取值范围的类型转给大的类型 不会出现编译错误
转换规则:
满足自动类型转换的条件:1.两种类型要兼容 2.目标类型大于原里类型
三.运算符
1.赋值运算符 "="
(1)语法:变量名 = 表达式; /** * 案例1:(赋值运算符实现) *学员王浩的Java成绩是80分,学员张萌的Java成绩与王浩的相同,输出张萌的成绩 */ public class Demo09 { public static void main(String[] args) { int wanghaoScore = 80; int zhangmengScore = wanghaoScore; System.out.println("张萌的成绩是:"+zhangmengScore); } }
赋值运算符的核心原理
案例1:定义变量步骤: //1.声明一个变量 int money; //2.给变量赋值 money = 100; //3.获取变量的名称 System.out.println(money); 案例2:二次赋值过程: //1.初始化money变量,并赋值为100 int money = 100; //2.输出money的值 System.out.println("前:"+money); //3.第二次对money赋值,赋值的内容是30 money = 30; //4.输出money此时此刻的值。结果为30 System.out.println("后:"+money);
讲解:“=”作为赋值运算符是将右边的值‘’给‘’左侧的变量,而不是左右相等。如果一个变量进行二次赋值 第二次的值将会覆盖前一个值
2.算数运算符 :+ ,— , * , / ,%,++,--
public class Demo{
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int i = 1;
System.out.println(a+b);//算术加
System.out.println(a-b);//算术减
System.out.println(a*b);//算术乘
System.out.println(c/b);//算术除
System.out.println(c%b);//算出取
System.out.println(i++);//自增
System.out.println(++i);//自增
}
}
讲解:+ ,-,*我们都中所周知。主要说下/,%这两个运算符:/ 是两个数相除取“商” ,c/b取商就是1 ,%是两个数相除取“余数” c%b取余数就是1
i++,++i,是在原有基础上加1的意思,但前者是先输出i在加1,而后者是先加1在输出
3.关系运算符:==,>=,<=,!=,> ,<
package test; public class Demo { public static void main(String[] args){ int a = 1; int b = 2; int c = 3; int d = 4; System.out.println(a==b);//等于运算符 “=”赋值运算符 要分清楚 结果false System.out.println(a!=b);//不等于 结果true System.out.println(a>b);//大于 结果false System.out.println(a<b);//小于 结果true System.out.println(c>=b);//大于等于 结果true System.out.println(c<=b);//小于等于 结果false } }
注意:=是赋值运算符,==是等于运算符 要分清楚
关系运算符表达式结果为布尔值
>,<,>=,<=运算符优先级别高于==,!=
>,<,>=,<=运算符只支持数值类型的数据比较
4.逻辑运算符 &&,||,!
package test; public class Demo { public static void main(String[] args){ int a = 1; int b = 2; int c = 3; int d = 4; System.out.println((a==b)&&(c==d));//短路与 返回值也是boolean值 false System.out.println((a!=b)||(c>=b));//短路或 true } }
(a==b)&&(c==d)
注意:可以理解为"并且"; 运算规则:两个操作数都是true,结果就是true;如果其中一个是false,那么整个结果就是false;
提示:如果前者返回值是false, 程序将不会执行后一个会直接返回false ;
(a!=b)||(c>=b)
注意:可以理解为"或者"; 运算规则:两个操作数只要有一个是true,结果就是true;如果其中一个是false,另一个是true 整个结果也是true;
提示:如果前者返回值是false, 程序将会执行后者继续判断 ;
5.条件运算符 :条件?表达式1:表达式2
package test; public class Demo { public static void main(String[] args){ int min; min=5<7?5:7; System.out.println(min); min=10<7?10:7; System.out.println(min); } }
讲解:判断是否5<7,显然5是小于7的那么结果就是true 将输出冒号左侧的信息;判断10<7,显然10是大于7的那么结果是false 将输出冒号右侧的信息;
总结:表达式判断结果是true 那么返回结果将是左侧的数值,如果表达式判断的结果是false 那么返回结果将是右侧信息