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:与黑夜为伍------------------------------