常量
常量:值不能改变的量
整数、小数、字符、字符串、布尔、空常量
字符:用单引号引起来的内容 'a' '中'
布尔类型:表判断结果 true false
字符串类型:双引号引起来的数据 "hello"
空常量:NULL
public class TestVar {
public static void main(String[] args) {
System.out.println("HelloWorld");//字符串常量
System.out.println("1");//整数常量
System.out.println("1.5");//小数常量
System.out.println('H');//字符常量
System.out.println(true);//布尔类型常量
System.out.println();//打印并换行
System.out.print();//打印不换行
}
}
变量
变量:值可以改变的数据 计算机内存中的一块存储空间,是存放数据的基本单元。
变量的组成:数据类型,变量名,数据
变量的使用:
1.声明一个变量:数据类型 变量名;
2.为变量赋值:变量名 = 值;
3.使用变量:直接使用变量名即可
public class TestVar2 {
public static void main(String[] args) {
//声明变量
int money;
//为变量赋值
money = 100;
//使用变量的值
System.out.println(money);
//改变变量的值
money = 200;
}
}
变量定义的其他方式
1.先声明再赋值
数据类型 变量名;变量名 = 值;
2.声明并赋值
数据类型 变量名 = 值;
3.同时定义多个相同类型的变量
数据类型 变量名1 = 值1,变量名2= 值2;
int a = 100;
System.out.println(a);
int c = 0, e = 100;
System.out.println(c);
System.out.println(e);
计算机的存储单元
计算机设备的最小存储单元 :bit 两种可能 0 1
计算机存储数据的最小单元为 : 字节 Byte 1B=8b 2^8个数
数据类型
基本数据类型(简单数据类型):8种 byte short int long float double char boolean
引用数据类型(对象数据类型) : 类(String) 接口 数组
字面值:能够为程序中的某一个数据类型赋的值
Byte类型: 1B -128~127 -2^7-2^7-1
short类型:2B -32768-32767 -2^15-2^15-1
int类型: 4B -2147483648-2147483647 -2^31-2^31-1
long类型: 8B -2^63-2^63-1
float类型:4B
double类型:8B
注意:整数的数据类型默认为int,如需为long类型赋值需要在值的后面加上L/l,建议加L,小数的数据类型默认为double,如需为float类型赋值需要在值的后面加上F/f。小数可以使用科学计数法,float的取值范围比long的范围大编码
char类型:2B 用单引号引起来的单个字符 支持Unicode编码(GBK(大陆) Big5(*)),支持ASCII
public static void main(String[] args) {
long L1= 1;
System.out.println(L1);
long L2= 2147483648L;
System.out.println(L2);
}
}
表示方式:字符表示,整数表示,16进制表示
转义字符:
\\' 单引号
\\ 反斜杠
\t 空格
\n 换行
char c4 = '\'';
System.out.println(c4);
//打印反斜杠
char c5 = '\\';
System.out.println(c5);
//打印空格
char c6 = '\t';
System.out.println(c6);
//打印换行
char c7 = '\n';
System.out.print(c7);
引用类型:String就是用双引号引起来的多个字符。
类型转换:
自动类型转换:
要求:1.两种类型必须相互兼容
2.目标类型必须要大于原类型(取值范围)
直接转换:目标类型 变量名 = 原类型的变量名
强制类型转换:
要求:1.两种类型必须相互兼容
2.目标类型要小于原类型(取值范围)
强转语法:目标类型 变量名 = (目标类型)原类型的变量名;
强转结果
1.大类型转小类型 高位截取,只保留地位
1.大类型为正数,结果还是正数
2.大类型为正数,结果还是负数
2.小数转换成整数 小数位砍掉只保留整数位
double d = 1.5; int a = (int)d ; a = 1;
3.char 类型可以直接转换成 Int long float double
4.char 类型可以和short进行转换,但必须强制
类型提升
1.两个数做运算,如果有一个为double类型,则结果为double类型。
2.两个数做运算,如果有一个为float类型,则结果为float类型。
3.两个数做运算,如果没有double和float类型,有一个为long类型,则结果为long类型。
4.两个数做运算,如果没有double和float,long类型,有一个为int类型,则结果为int类型。
5.其他情况均为int类型
运算符
算术运算符
+加
-减
*乘
/除
%模
布尔类型不能参与运算
一元运算符
++ 表示自增 给变量的值加一
-- 表示自建 给变量的值减一
a++和++a的区别
a++:先使用再+1 先将a的值给表达式(a++),然后再给a的值+1
++a先将a的值+1再使用 将a的值+1,然后赋值给表达式++a
赋值运算符
= 将右边的值赋值给左边
+= 将左边的值加上右边的值再复制给左边
-= 将左边的值减去右边的值再复制给左边
*= 将左边的值乘上右边的值再复制给左边
/= 将左边的值除以右边的值再复制给左边
比较运算符
< > <= >= != 比较左右不相等 == 比较左右相等
逻辑运算符
&&:且 都为真为true
||:或 都为假为false
&:且 都为真为true
|:或 都为假为false
!:取反
&&与&区别
&&:短路运算符 当前者为false,后者不再判断,结果为false
&:非短路运算符 前者为false,后者继续判断,结果为false
三元运算符
布尔表达式 ? 值1 :值2;
执行过程:首先判断布尔表达式,若为true则取值1,否则取值2
Scanner
Scanner 让用户自己输入
用法
//java.util 报名 权限类名
java.util.Scanner sc = new java.util.Scanner(System.in);
//快捷键导包 ctrl+shift+o
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
//导包不建议使用*
import java.util.*;
//要求输入的是一个整数
int n = sc.nextInt();
System.out.println(n);
//要求输入的是一个小数
Double n = sc.nextDouble();
System.out.println(n);
//要求输入的是一个字符串
String n = sc.next();
System.out.println(n);
//要求输入的是单个的字符
char n = sc.next().charAt(0);
System.out.println(n);
String n1 = sc.next();//next可以将回车和空格作为语句结束
String n2 = sc.next();
String n1 = sc.nextLine();//nextLine只能以回车作为语句结束
System.out.println(n1);
System.out.println(n2);