java中的常量、变量、数据类型及运算符

                          

1.字面常量

2.数据类型

目录

                          

1.字面常量

2.数据类型

3.变量

3.1变量概念

3.2定义格式

3.3整型变量

3.3.1整型变量

3.3.2长整型变量

3.3.3短整型变量

3.3.4字节型变量

3.4浮点型变量

3.4.1双精度浮点型(double)

3.4.2单精度浮点数(float)

3.5字符类型

3.6布尔类型

3.7类型转换

3.7.1自动类型转换(隐式)

3.7.2强制类型转换(显示)

3.3.7类型提升

int 与 long的运算

byte和byte运算

3.8引用类型(浅浅介绍)

3.8.1字符串类型


1.字面常量

常量即程序运行期间,固定保持不变的量。比如一年有四个季节、一年有12个月、一个星期有7天
用代码解释就是

public class Demo{
public static void main(String[] args){

System.Out.println("hello world!");//字符串常量
System.Out.println(3.14);//浮点数常量
System.Out.println('A');//字符常量
System.Out.println(true);//布尔常量

}

输出的helloworld、3.14、A、true都是常量

2.数据类型

在java中数据类型分为基本数据类型和引用数据类型

a.四类:整形、字符型、浮点型、布尔类型

b.八种

ps:a.比C语言中多出了字节型.比字节类型还小的还有bite且

     1byte=8bite 1KB=1024byte 1MB=1024KB 1GB=1024MB

注意:1.不管在16位还是32位,int类型都占4个字节,long类型都占八个字节

           2.整形和浮点型都是带有符号的

           3.整形默认为int类型,浮点型默认为double(使用float时,注意使用规范)

           4.字符串为引用类型

3.变量


3.1变量概念

在java中,既有保持不变的量,也有改变的量。比如人的年龄,身高,体重,数学函数等等。

这些经常发生改变的量,在java程序中被称之为变量,而数据类型就是用来定义不同类型的变量的

3.2定义格式

数据类型  变量名=初始值

3.3整型变量

3.3.1整型变量

//1.一种定义方式,直接初始化
int a = 0;
System.Out.println(a);
//2.第二这种定义方式
int b;
b = 0;
System.Out.println(b);
//如若使用第二种定义方式未进行初始化系统会报错
int c;
System.Out.println(c);

//注意赋值时不能超过整型数值的最大范围,下面为int类型的最大值和最小值
System.Out.println(Integer.MIN_VALUE);
System.Out.println(Integer.MAX_VALUE);
//Integer为int类型的包装类型
//举例
int d=1234567890000;
//超出范围则系统报错

注意:

1. int不论在何种系统下都是4个字节

2. 推荐使用方式一定义,如果没有合适的初始值,可以设置为0

3. 在给变量设置初始值时,值不能超过int的表示范围,否则会导致溢出(-2^32-2^32-1)

4. 变量在使用之前必须要赋初值,否则编译报错

5. int的包装类型为 Integer

3.3.2长整型变量

//初始化方式与int类型一致
//以下为注意事项
int a = 5;
long b = 10;



long b = 10l;//为了区分整型和长整形在赋值后面加上l或L
long b = 10L;//推荐使用L 因为1和l类似,不推荐使用

//赋值时也需要注意限定范围
System.Out.println(Long.MAX_VALUE);
System.Out.println(Long.MIN_VALUE);
long c = 1010000000000000000000000;//超出范围系统报错

注意事项:

1. 长整型不论在那个系统下都占8个字节

2. 长整型的表示范围为:(-2^64-2^64-1)

3. long的包装类型为Long

3.3.3短整型变量

//初始化与上述一致
short a = 10;
System.Out.println(a);
// short型变量所能表示的范围:
System.Out.println(Short.MIN_VALUE);
System.Out.println(Short.MAX_VALUE);
//也需要注意赋值大小

注意事项:

1. short在任何系统下都占2个字节

2. short的表示范围为:-32768 ~ 32767   

. short的包装类型为Short

3.3.4字节型变量

//初始化与上述一致
byte b = 10;
System.Out.println(b);
// byte型变量所能表示的范围:
System.Out.println(Byte.MIN_VALUE);
System.Out.println(Byte.MAX_VALUE);

注意事项:

1. byte在任何系统下都占1个字节

2. byte的范围是:-128 ~ 127

3. 字节的包装类型为Byte

ps:整型变量的使用由情况而定,选择适合的变量才能更高效的完成作业。

3.4浮点型变量

3.4.1双精度浮点型(double)

//初始化方式有两种这里之后只使用我推荐的方法
double a = 3.14;
System.Out.println(a);

int b = 1;
int c = 2;
System.Out.println(b/c);
//答案不等于0.5,因为除数与被除数定义的都为整数,结果都取整数。
//如果想得到一个0.5,应该定义为double类型
int d = 1;
int e = 2;
System.Out.println(d/e);//输出0.5

int f =1.1;
System.Out.println(f*f);//结果并不会输出1.21,double,小数位精度高,输出为1.2100000000000002

注意事项:

1. double在任何系统下都占8个字节

2. 浮点数与整数在内存中的存储方式不同,不能单纯使用 的形式来计算

3. double的包装类型为Double

4. double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势 必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。

3.4.2单精度浮点数(float)

//赋值
float a = 1.7f;//或者为F
System.Out.println(a);

注意

1.在java中,float中占4个字节

2.其包装类型为,Float

3.其精度范围比double小

4. 浮点数与整数在内存中的存储方式不同,不能单纯使用 的形式来计算

3.5字符类型

char ch ='a';//可以是字母
char b = '1';//也可以是字符
//均已单个字母或字符使用''引起来
System.Out.println(a);
Sysout.Out.println(b);


char c = '叒'
Sysout.Out.println(c);//也可以是汉字

注意事项

1.计算机中的数值本质上是整数java中使用Unicode表示字符,故占用两个字节

2.char的包装类型是Character

3.6布尔类型

boolean flga=1;//这种是错误的赋值方法
boolean flga=ture;//正确的复制方法
System.Out.println(flga);



boolean rigth=false;//正确复赋值方法
System.Out.println(right);

注意事项:

1.boolean中只有true和false,表示真和假,没有0为假非0为真的说法。

2.在java虚拟机中中明确规定,boolean没有具体的大小。

4. boolean的包装类型为Boolean。

3.7类型转换

在Java中,当参与运算数据类型不一致时,就会进行类型转换

这里放个引子

int a= 10;
long b = 20;

a = b;//会报错
b = a;//编译通过

为什么呢这里先卖个关子,往下看

3.7.1自动类型转换(隐式)

其概念是:代码不经过任何处理,在编译过程中,编译器自动发生转换;在数据小范围转变到数据范围大时会自动进行处理

int a = 10;
long b =20;

a = b;//将数据大范围的b赋值给a,这时代码是编译不过去的。大到小范围需要强制转化(后面会介绍)
b = a;//小范围a赋值给b,编译器会自动发生转换 int转为long。

//同样的浮点型中
float c = 1.2f;
double d = 2.1;

c = d;//将大范围的数据赋值给小范围的数系统会报错
d = c;//小范围赋值大范围,folat会自动转换为double


System.Out.println(1024);//1024默认为int数据
System.Out.println(3.14);//3.14默认为是double数据,如需要强调是float类型后面需+l或L

byte z = 10;//默认数据为int,但数据为超范围发生隐式转换。上述
byte x =200;//默认为int类型,但是超过byte类型的最大值,编译报错,如需要转换,可强制进行转换,但是可能会发生截断

3.7.2强制类型转换(显示)

概念为:代码需要一定的格式处理,不能自动发生转换。其特点为小范围到大范围

int a = 10;
long b =20;

a = (int)b;//大范围数据赋值小范围数据需要强制转换
b = a;//小范围a赋值给b,编译器会自动发生转换 int转为long。

//同样的浮点型中
float c = 1.2f;
double d = 2.1;

c = (int)d;//将大范围的数据赋值给小范围,需要强制转换
d = c;//小范围赋值大范围,folat会自动转换为double


System.Out.println(1024);//1024默认为int数据
System.Out.println(3.14);//3.14默认为是double数据,如需要强调是float类型后面需+l或L

byte z = 10;//默认数据为int,但数据为超范围发生隐式转换。上述
byte x =(int)200;//默认为int类型,但是超过byte类型的最大值,编译报错,如需要转换,可强制进行转换,但是可能会发生截断
boolean flag = true;
flag = a;//编译失败,类型不匹配
flag = c;//编译失败,类型不匹配

注意:

1.不同数字类型的数据,小范围的数据转换为大范围的数据会隐式发生

2.如需将大范围的数据赋值给小范围的数据需要强制类型转换

3.隐式类型转换不一定成功,两个不相关的数据类型无法完成转换

4.将数据赋值时,java会自动检索数据的范围

3.3.7类型提升

在不同数据类型的运算中,小范围的数据一般会提升为大范围数据之后在进行运算。

int 与 long的运算
int a = 10;
long b = 20;

//int c = a + b;//编译错误

long c = a + b;//编译过程中int提升为long类型之后再进行计算即 int + long->long + long
byte和byte运算
byte a = 10;
byte b = 20;

byte c = a + b;//虽然a 和 b都是byte类型,但是都要先提升为int类型才能进行计算
//报错为:错误: 不兼容的类型: 从int转换到byte可能会有损失

如真的需要为byte类型则强制转换
byte=byte(a + b);

注意:

1.不同数据类型进行计算,小范围数据都会先转换为数据大的类型再进行运算

2.小于2个字节的类型,比如short、byete,都需要提升为int类型再进行计算。

3.8引用类型(浅浅介绍)

3.8.1字符串类型

在java中使用String,定义字符串

public static void main(String[] args) {
String s1 = "hello";
String s2 = " world";
System.out.println(s1);
System.out.println(s2);
System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接
}

java中的字符串相较于c语言中,java有个有趣的地方,可以随意拼接,还有字符串和数字之间转换。

a.随意拼接,比如

public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a=="+a+b);//其输出为a==1020

}

相较于c语言是不是java中的字符串更加方便更加有趣。

b.1. int 转成 String

int num = 10;
// 方法1
String str1 = num + ""; 
// 方法2
String str2 = String.valueOf(num)

2. String 转成 int

String str = "100";
int num = Integer.parseInt(str);

这是对字符串进行简单的介绍

                                                                                                                            未完待续

学疏才浅,有错误欢迎指正。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值