发表时间:2022-03-25来源:网络
两大类:
基本数据类型(八种)
八大基本数据类型
整型(4种)byte short int long
浮点型(2种)float double
字符型(1种)char
布尔型(1种)boolean
引用数据类型(复杂数据类型):
数组 类 接口等
注意:字符串类型是引用数据类型(字符串是类)
java强类型的语言:对数据类型校验非常严格
int age = 18;
弱类型的语言:js 对数据类型校验不严格
var 变量名 = 初始化值;
var val = 8;
val = 2.5;
val = “hello”;
java数据类型:
两大类:
基本数据类型
八大基本数据类型–四类八种
整型(4种) 根据大小或者存储空间来划分
正整数、负整数:
通过二进制的最高位来区分
xxxx xxxx
最高位–符号位
0(正数) 1(负数)
0000 0000–0 0111 1111–127
1000 0000-- -128
1111 1111 – -1
注意:
1、在java中数字较大的情况下,可以通过_来进行位数的划分,方便计算位数
2、int类型是最常用的
3、整数字面值默认是通过int类型来表示的;如果需要指定通过long类型来存储,则可以在整数字面值后边加L或者l后缀
浮点型(2种)
注意:
1、浮点数字面值默认类型为double类型;
2、当把默认double类型的浮点数字面值赋值给float类型,程序认为可能会出现溢出,所以编译报错;可以在浮点数字面值后边加F或者f后缀;
3、常用的浮点型是double
4、float有效数字的位数 7-8位
double有效数字的位数15-16位
5、double类型数值也可以加D或者d后缀
6、浮点数存在精度损失问题
例如0.01+0.05=0.060000000000000005
字符型(1种)
char 字符型
注意:char类型的变量可以通过整数来进行赋值;但是该整数值必须在码表的范围之内
布尔型(1种)
boolean:布尔型
true false
以字节为基本单位
引用数据类型:数组 类 接口 枚举等
八大基本数据类型:
四类八种
byte short int long float double char boolean
byte:-128~127
自动数据类型转换
数值型:从小到大
byte->short->int->long–>float->double
char->int->long–>float->double
整型转为浮点型,直接补.0
强制数据类型转换
从大到小,直接转程序认为可能会溢出,编译报错;
格式:(要强转类型)数据值或变量


虽然18是int类型 18也在byte内,但是在编译时不知道数所以编译会报错
注意:
1、浮点型强转为整型,直接舍弃小数部分
2、大的数据类型强转为小数据类型时,从大数据类型的最低位开始截取小数据类型所能存储的最大的位数;

3、请谨慎使用
概念:被定义了运算规则的符号
分类:
算术运算符
赋值运算符
关系运算符
逻辑运算符
三目运算符
算术运算符:+ - * / %:
结果数据类型:和元素中大的数据类型保持一致
特殊情况:byte short char而言,当参与运算时会自动提升为int类型
面试题:结果数据类型的判断
byte b1 = 3;
byte b2 = 4;
byte sum = b1+b2;–编译会报错 b1会自动提升为int b2也会提升为int型 大的类型给小的类型会报错
byte sum1 = 3+4;–编译优化会对整数字面值进行运算,先3+4求和得到7,会判断结果在不在byte类型内,如果超出byte的范围则会报错
这个为什么不会报错呢?下面这个是整数字面值,上面那个是变量,变量程序只会检查其数据类型 不知道是多少
解决方法:1.将sum的类型改成int 2.强转

基本用法:
1、输出语句中直接运算并打印
2、对变量做运算并输出
3、将运算结果赋值给变量
/:
int/int 结果仍然为int类型的整数(直接舍弃小数部分)
如果希望得到小数结果:
1、将元素类型改为double
2、运算中通过*1.0改变元素类型
3、通过强制类型转换将某个元素转为double


1、被除数为整数,除数为0时:
抛出一个运行时异常:
Exception in thread “main” java.lang.ArithmeticException: / by zero
at OperatorDemo.main(OperatorDemo.java:60)
2、被除数为正浮点数,除数为0时:
Infinity–无穷大
3、被除数为负浮点数,除数为0时:
-Infinity–无穷小
4、0.0/0:
NaN:Not a Number(非数字)
%:
整除:取余是否为0
奇偶数:对2取余是否为0
++ --:
++:自增运算符 每次+1
–:自减运算符 每次-1
注意:
1、++ – 作用于变量,不能作用于数据值或者常量
2、++ – 底层默认包含了强制类型的转换
i++;可以理解为:
i=(type)(i+1);
++ --可以在变量的前边,也可以变量的后边;
如果,++ 单独使用,前后没区别的;
如果++和其他语句一起使用,有区别
变量在前,++在后,先使用变量原来的值,再+1
++在前,变量在后,先让变量在原来值的基础上+1,再使用增加之后的值;

i无论前后都最后加1
–同理
赋值运算符 =
+= -= *= /= %=
赋值运算符的优先级是最低的
+=:
x+=y;-----x = (type)(x + y);
先使用x和y进行求和运算,将结果赋值给x;
x必须为变量
其他的和+=同理
关系运算符
比较运算符,运算结果一定是boolean类型
< >= 或=)
== (相等) !=(不相等)


逻辑运算符
对boolean类型的值做运算,结果仍然为boolean类型
& | ! ^
&:且 与 AND
x&y:
x:true false
y:true false
true&true=true
true&false=false
false&true=false
false&false=false
运算规则:都为true,则为true;有false,结果为false;
|:或 OR
x|y
true|true=true
true|false=true
false|true=true
false|false=false
运算规则:都为false,则为false;有true,结果为true
!:取反
!true=false
!false=true
^:异或
x^y
true^true=false
false^false=false
true^false=true
false^true=true
运算规则:
两个相同为false,不同为true;
**&& ||:短路
&&短路与 双与
如果&&左边是false,则右边短路不再执行,结果必然为false;
**
||:短路或
如果||左边为true,则右边短路不再执行,结果必然为true;
自行测试||短路效果
三元表达式
单目运算符:作用于一个元素 ++ – !
双目运算符:作用于二个元素 + - & >
三目运算符:作用于三个元素
格式:表达式或值 ? 表达式1 : 表达式2
执行流程:
1、表达式或值,要求结果必须是boolean
true: 则执行表达式1
false: 则执行表达式2
案例:
判断奇偶数
判断两个整数变量值的大小 输出最大值

判断三个整数变量值的大小 输出最大值

或者三目运算符的嵌套(不建议用)
整数 基于二进制来进行运算的,位元素符的效率最高
& | ~ ^
> >>>
&:按位与
1 true 0 false
1&1=1
1&0=0
0&1=0
0&0=0

|:按位或
1 true 0 false
1|1=1
1|0=1
0|1=1
0|0=0

~:按位取反
~1=0
~0=1
计算机中存储和计算使用的都是二进制的补码形式
正数:原码=反码=补码
负数:
原码:符号位1,按照十进制转二进制直接转出来的
反码:符号位不变,其余位依次取反
补码:反码的基础上+1

^:按位异或
0^0=0
1^1=0
0^1=1
1^0=1
1^2=3
两个变量交换数值:
int a=3;
int b=5;
方式一:定义一个临时变量
int tmp = a; a = b; b = tmp; System.out.println(a); System.out.println(b);方式二:先求和再求差
a = a+b;//a=8 b=5 b = a-b;//a=8 b=3 a = a-b;//a=5 b=3 System.out.println(a); System.out.println(b);方式三:使用^
规律:一个数亦或另一个数两次 ,结果是那个数
1==>1
8>>2==>2
在一定的范围内:x/(2^y)
1 : > > >:无符号右移
x>>>y:将x的二进制整体右移y位,右侧多出来的直接舍弃,左侧空出来的补0
正数和右移一样
如何定义字符串变量:
字符串不是基本数据类型;
是类String,是引用数据类型
数据类型 变量名 = 初始化值;
格式:String name = “zhangsan”;
+:求和 字符串拼接
字符串+字符串
字符串+基本数据类型 例如:hello100



Scanner:–JDK
获取用户键盘输入的数据
步骤:
1、导包import java.util.Scanner;
位置:类定义之前
2、创建Scanner类的对象
Scanner sc = new Scanner(System.in);
3、调用对象的方法
格式:对象.方法名();
方法名:nextInt();–获取int类型的整数
nextDouble();–获取double类型的浮点数
next();–获取String类型的字符串
例如:int 变量 = sc.nextInt();
double 变量 = sc.nextDouble();
String 变量 = sc.next();
4、关闭Scanner sc.close();
概念:控制程序执行语句
分类:
顺序结构:从上到下 从左到右,最基本也是最常用的控制结构语句。
分支结构
循环结构
分支结构:1.if判断语句
格式一:
if(判断条件){
当判断条件成立时要执行的代码块;
}
判断条件结果必须是boolean
案例:
判断一个数是否大于0,如果大于则输出这个数
判断一个数的奇偶性
格式二:if else
if(判断条件){
当判断条件成立时要执行的代码块;
}else{
当判断条件不成立时要执行的代码块;
}
案例:
判断一个数的奇偶性
三目运算符就是格式二的简化形式
格式三:if.else if.else
格式:
if(判断条件1){
当判断条件1成立时要执行的代码块;
}else if(判断条件2){
当判断条件1不成立
且
判断条件2成立
要执行的代码块;
}else if(判断条件3){
当判断条件1不成立
且
判断条件2不成立
且
判断条件3成立
要执行的代码块
}else{
当所有的判断条件都不成立时要执行的代码块;
}
案例:
获取用户输入的成绩,根据成绩输出对应的等级
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14