1、java数据类型
数值型:
整型:默认0
byte:8位、-128~127、 -2^7~2^7-1 (0~255无符号位,java不存在)(jvm缓存机制)
0111 1111(第一位作为符号位)
1000 0000
short:16位、-32768~32767、-2^15~2^15-1
int: 32位、-21亿~21亿 -2^31~2^31-1 (最常用,默认为int)
long:64位
浮点型::默认0.0
float:单精度浮点型:1.1f 最大保存7位
double: 双精度浮点型:1.1(默认) 最大保存19位
非数值型:
字符型char:由字母、数字、符号、不可见字符
ASCII码表: 48对应字符'0'、65对应字符'A'、97对应字符'a';
字符由单引号
布尔值型boolean:真、假(true、false)、默认为false
以上为基本数据类型
java提供类型:
字符串型string:一串字符,表现为"一串字符"
自定义类型:
快捷键:public static void main() ---- psvm
System.out.print ----- sout
常量final:禁止修改
名称全大写,用下划线分割 如:OBJECT_OF_B
2、Scanner用法:
1、Scanner变量定义:Scanner 变量=new Scanner(System.in);
2、导入包 import java.util.Scanner;
import java.util.*;宽泛包
3、输出提示信息
4、接收输入
String 对应 变量.next()
int 对应 变量.nextInt()
double 对应 变量.nextdouble()
5、控制台输出
3、变量的组成:变量名,变量类型,变量值
命名规则:字母,下划线,$符号,¥符号,数字;不可以数字开头
不可以使用关键字
4、类型转换
//类型转换
//所有基本数据类型之间的赋值,都是值传递
public class Demo5 {
public static void main(String[] args) {
float avgScore1=81.29f;
int add=2;
//底层原理是不支持不同类型间的计算
//隐式类型转换(默认类型转换)
float avgScore2=avgScore1+add;//float+int -> float+float
double result=avgScore2;//大类型接收小类型
double a=2.0;
int b=(int)a;//强制类型转换
System.out.println(avgScore2);
}
}
1、不同类型之间运算的前提:能互相转换(一般指数值类型)
2、不同类型运算会默认转成大类型再运算
3、大类型接收小类型,会默认转成大类型
4、小类型接收大类型,需要强制转换成小类型,否则不可以
5、强制类型转换时,会丢失精度(直接丢弃)----造成数据失真
5、运算符:
public class Demo6 {
public static void main(String[] args) {
int a=1,b=2;
int tmp=a;//三变量交换法
a=b;
b=tmp;
System.out.println("a是"+a+" b是"+b);
}
}
加(+) 减(-) 乘(*) 除(/) 取余(%) ++ --
复合运算符
+= 、-=、 *=、/=、%=;
public class Demo7 {
public static void main(String[] args) {
int a=1;
System.out.println(a++);//表达式本身有值、a++代表加之前的值
System.out.println(a);
System.out.println(++a);//++a代表加之后的值
System.out.println(a);
//复合运算符
int b=7;
b+=3;//b=b+3
System.out.println(b);
b-=3;//b=b-3
b*=3;//b=b*3
b/=3;//b=b/3
b%=3;//b=b%3
}
}
关系运算符:
等于:== 一般用于值的判断,基本数据类型
不等于:!=
大于:>
小于:<
大于等于:>=
小于等于:<=
输出结果为true或false(布尔值)
>、<、>=、<=运算符的优先级别高于==、!=
逻辑运算符:
a&&b a和b同时为true时结果才为ture; 短路与 前式不成立,则不再计算后式
a||b a和b同时为false的时候结果为false; 短路或 前式成立,则不再计算后式
a&b 逻辑与 前式不成立时,依旧计算后式 按位与:(3&2)即:11&10 相同为1,所以结果为10(2)
a|b 逻辑或 按位或:(3&2)即:11&10 有1即为1,所以结果为11(3)
!a 非 若a的值为true,则结果为false;
优先级:
单目运算符包括! ++ --,优先级别高
优先级别最低的是赋值运算符
可以通过()控制表达式的运算顺序,()优先级最高
从右向左结合性的只有赋值运算符、三目运算符和单目运算符
算术运算符 > 关系运算符 > 逻辑运算符
三元表达式:
判断条件?a:b 条件为true结果为a,false结果为b
int min;
min = 5 < 7 ? 5 : 7;
System.out.println(min);
min = 10 < 7 ? 10 : 7;
System.out.println(min);