Java 数据类型
1. 八大根本数据类型
类型 | 贮存需要 | 取值范畴 |
---|---|---|
byte(字节型) | 1 字节 | -128~127 |
short(短整型) | 2 字节 | -32,768~32,769 |
int(整型) | 4 字节 | -2,147,483,648~2,147,483,647 |
long(长整型) | 8 字节 | -9,223,372,036,854,775,808~9,807 |
float(单精度) | 4 字节 | 大概:正负 3.40282347E+38F(有效位数 6~7 位) |
double(双精度) | 8 字节 | 大概:正负 1.79769313486231570E+308(有效位数 15 位) |
char(字符型) | 2 字节 | 0~65535 |
boolean(布尔型) | byte | true 或 false |
2.Java 的援用数据类型
Java 除了根本数据类,还有援用类型
援用数据类型是以一种非凡的形式指向对象实体的存储机制。应用时,零碎只会保留援用数据的地位信息,具体的援用数据的内容须要在该地位额定分配内存空间进行存储,例如:字符串与数组均属于援用数据类型。
援用数据类型能够使数组、接口、类等。
变量
简略的说,变量用来存储数据,在程序执行期间,存储的数据值能够依据须要进行扭转。在 Java 程序中,变量在应用之前必须先申明。再赋值进行应用。
标识符
标识符是用于标识某个对象(变量、类名、接口名、数组名等)名称。通过标识符能够不便地援用数据对象,特地是应用标识符作为变量名来拜访存储再变量中的数据。
Java 中的标识符命名标准如下:
1. 由字母、数字、下划线和 ”$” 中的任意字符组合而成。
2. 首字符必须是字母、下划线或 ”$”。
3. 须要具备肯定的意义,而且不能时零碎关键字。
4. 严格辨别大小写。
变量的申明
语法:
数据类型 变量名称;
// 例如:int age;//int 类型年龄
double score;//double 类型的分数
boolean flag;//boolean 类型的状态
int num1,num2,num3;//int 类型的 num1,num2,num3;
变量的初始化和赋值
语法:
数据类型 变量名称 = 变量的初始值;
// 例如:int age = 23;// 年龄为 23 岁
double score = 98.5;// 分数为 98.5 分
char name = '张三';// 姓名叫张三
变量应用中常见的谬误
1. 变量应用前没有申明。
2. 局部变量应用前未初始化。
3. 反复申明变量。
4. 变量名不合乎标识符的命名标准。
5. 变量的值与变量的数据类型不匹配。
运算符
Java 中的运算须要运算符来反对,运算符和变量形成了 Java 语言的根本语句类型之一:表达式语句。
Java 中的运算符包含:赋值运算符、算数运算符、关系运算符、逻辑运算符和条件运算符。
1. 赋值运算符
语法:
变量 = 表达式;
// 例如:int age = 23;// 间接给变量赋值;age = age + 10;// 将表达式的值赋给变量;
罕用的复合赋值运算符如下表
运算符 | 形容 | 举例 |
---|---|---|
+= | 加法运算 | a+=10;// 将 a 自增 10 |
-= | 减法运算 | a-=10;// 将 a 自减 10 |
*= | 乘法运算 | a*=10;// 将 a 自乘以 10 |
/= | 除法运算 | a/=10;// 将 a 自除以 10 |
%= | 取余运算 | a%=10;// 计算 a 除以 10 后的余数 |
2. 算术运算符
算术运算符符用来进行算术运算。常见的算术运算符如下表:
运算符 | 形容 | 举例 |
---|---|---|
+ | 加法运算 | a + 2; |
– | 减法运算 | a – 2; |
* | 乘法运算 | a * 2; |
/ | 除法运算 | a / 2; |
% | 取余运算 | a % 2; |
++ | 自增 1 运算 | a ++;++a; |
– | 自减 1 运算 | a–;–a; |
++ 和–,都是一元运算符,参加运算符的只有一个变量。而且对于自增和自减运算符来说,能够放在变量的右边,也能够放在变量的左边,而二种状况下的运算成果是不一样的。
留神:
int a = 10;
int b = a++;// 先是将 a 的值赋给 b,而后将 a 自增 1;// 运算后果为:b=10;a=11;
int b = ++a;// 先将 a 自增 1,而后将 a 自增后的后果赋给 b;
// 运算后果为:b=11,a=11;
3. 关系运算符
关系运算符用于比拟运算符二边操作的大小关系,其后果类型为 boolean,通常用于判断条件是否成立,罕用的关系运算符如下表:
运算符 | 形容 | 举例 |
---|---|---|
== | 等于 | 2 == 2 |
!= | 不等于 | 2 != 3 |
> | 大于 | 2 > 1 |
>= | 大于等于 | 5 >= 2 |
< | 小于 | 4<5 |
<= | 小于等于 | 4 <= 5 |
4. 逻辑运算符
逻辑运算符用于对 boolean 型后果的表达式进行运算,运算后果依然是 boolean 类型,罕用的逻辑运算符如下表:
运算符 | 形容 | 举例 |
---|---|---|
&& | 逻辑与,判断运算符二侧的条件是否同时成立 | a && b |
二个竖杠 | 逻辑或,判断运算符二侧的条件只有有一个正确后果就为 true | 2==2 二个竖杠 b<10 |
! | 逻辑非,求与运算后果相同的值 | !true |
逻辑与(&&)
只有左右二边的条件同时成立,整个逻辑表达式的值才为真,如果 && 左侧的条件为假时,程序将不再计算左边的表达式。
逻辑或(||)
左右二边只有有一个条件成立,整个逻辑表达式的值为真,当左侧的条件成立时,程序将不再计算右侧的表达式。
逻辑非(!)
用于获取与运算符后果相同的值。
5. 条件运算符
条件运算符属于三元运算符,通常用于判断一个条件是否成立,如果成立则执行语句 1;反之,执行语句 2。
代码:
条件表达式?语句 1 : 语句 2;// 例如
int a = 5;
String b = 5>4 ? "5 大于 4" : "5 不大于 4";
6. 运算符的优先级
罕用的运算符优先级如下表:
序号 | 运算符 |
---|---|
1 | 括号 |
2 | 一元运算符:如:-、++、! |
3 | 算术运算符:如:*、/、%、+、- |
4 | 关系运算符:如:>、>=、<、<=、==、!= |
5 | 逻辑运算符如:&&、二个竖杠 |
6 | 条件运算符和赋值运算符,如:?:、=、*=、/=、+=、-= |
数据类型之间的转换
数据类型转换图如下:
因为数据类型之间存在差别,在赋值时须要进行数据类型的转换。再 Java 语言中,将源数据类型转换为指标数据类型的形式分为主动类型转换和强制类型转换二种。
1. 主动类型转换
主动类型转换是数据类型的取值范畴由小向大进行转换,且转换的二转数据类型须要齐全兼容。当二种数据类型彼此不兼容或指标类型的取值范畴小于源数据时,主动转换将无奈进行。
2. 强制转换
语法:
指标类型变量 = (指标类型) 值;// 举例
// 主动转换
int a = 2;
float b = 3.2f;
long c = 4L;
double d = 12.23;
d = a + b + c;
// 后果:d = 9.199999809265137
// 强制类型转换
int w = (int)d;
// 后果:w = 9
控制台输出
System.out.println() 和 System.out.print() 控制台输入语句。Java 中的控制台输出是通过 Scanner 类来实现的。Scanner 类的罕用办法如下表
办法名 | 阐明 |
---|---|
next() | 当用户在控制台输出字符串时,用此办法接管 |
nextInt() | 当用户在控制台输出整数时,用此办法接管 |
nextFloat() | 当用户在控制台输出 float 类型的数字时,用此办法接管 |
nextDouble() | 当用户在控制台输出 double 类型的数字时,用此办法接管 |
例如:
import java.util.Scanner;
public class Demo_one {public static void main(String[] args) {
// 创立 Scanner 对象 sc
Scanner sc = new Scanner(System.in);
System.out.println("请输出学生姓名");
String name = sc.next();
System.out.println("请输出学生年龄");
int age = sc.nextInt();}
}
总结
1.== 和 equals 办法有什么区别?
双等于操作符专门用来比拟两个变量的值是否相等,也就是用于比拟变量所对应的内存中所存储的数值是否雷同,要比拟两个根本类型的数据或两个援用变量是否相等,只能用 == 操作符。
equals 办法是用于比拟两个独立对象的内容是否雷同。
例如,对于上面的代码:
String a=new String(“foo”);
String b=new String(“foo”);
两条 new 语句创立了两个对象,而后用 a,b 这两个变量别离指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即 a 和 b 中存储的数值是不雷同的,所以,表达式 a == b 将返回 false,而这两个对象中的内容是雷同的,所以,表达式 a.equals(b) 将返回 true。
2.& 和 && 的区别?
& 和 && 都能够用作逻辑与的运算符,示意逻辑与(and),当运算符两边的表达式的后果都为 true 时,整个运算后果才为 true,否则,只有有一方为 false,则后果为 false。
&& 还具备短路的性能,即如果第一个表达式为 false,则不再计算第二个表达式。
& 还能够用作位运算符,当 & 操作符两边的表达式不是 boolean 类型时,& 示意按位与操作。
—————————- 本文章转载自 CSDN:与黑夜为伍 ——————————