怎么做网站卡盟,wordpress改小程序,创意活动策划网站,中企动力是国企还是央企Java-数据类型 一、字面常量二、数据类型#xff08;1#xff09;基本数据类型 三、变量1、变量概念2、语法格式#xff08;1#xff09;语法#xff1a;#xff08;2#xff09;示例#xff1a; 3、整型变量#xff08;1#xff09;整型变量#xff08;int#xf… Java-数据类型 一、字面常量二、数据类型1基本数据类型 三、变量1、变量概念2、语法格式1语法2示例 3、整型变量1整型变量inta.语法b.最大值与最小值c.注意 2长整型变量longa.语法b.最大值与最小值c.注意 3短整型变量shorta.语法b.最大值与最小值c.注意 4字节型变量bytea.语法b.最大值与最小值c.注意 4、浮点型变量1 双精度浮点型a.语法b.最大值与最小值c.注意 2单精度浮点型a.语法b.最大值与最小值c.注意 5、字符型变量a.语法b.最大值与最小值c.注意 6、布尔型变量a.语法b.注意 7、 类型转换1自动类型转换隐式转换2强制类型转换显式转换3转换时的注意事项4类型提升int 与 long之间byte与byte之间总结 四、字符串变量1、字符串拼接2、int转String3、String转int 一、字面常量
字面常量顾名思义就是固定不变的量。 比如
public class Demo{public static void main(String[] args){System.Out.println(hello world!);System.Out.println(100);System.Out.println(3.14);System.Out.println(A);System.Out.println(true);System.Out.println(false);}
}在上面的代码中helloworld、100、3.14等都是常量。那么根据这些常量的不同类型可以将字面常量分为
字符串常量由括起来的比如“12345”、“hello”、“你好”。整形常量程序中直接写的数字(注意没有小数点)比如100、1000浮点数常量程序中直接写的小数比如3.14、0.49字符常量由 单引号 括起来的当个字符比如‘A’、‘1’布尔常量只有两种true和false空常量null
二、数据类型
在Java中数据类型分为两大类基本数据类型和引用数据类型
1基本数据类型
基本数据类型分为四大类整型、浮点型、字符型以及布尔型 这四大类可以细分为八种 这里我们需要做几点说明用来区别我们之前学过的C语言。
在C语言中部分数据类型在32位电脑和64位电脑中是存在一定差异的。但是java中的数据类型不论是32位还是64位都不会发生改变这也就是可移植性的体现如果大家阅读了作者上一章的内容JavaSE介绍与第一个Java程序的话就知道这种可移植性是与java的虚拟机有关的。
同时整型和浮点型都是有符号的。
三、变量
1、变量概念
在我们的java程序中除了有始终不变的字面常量外还有一些量是变量这些变量也是有分类的比如有的变量是浮点数有的变量是字符因此刚刚介绍的数据类型就是来定义不同种类的变量的。
2、语法格式
1语法
方式1
数据类型 变量名 初始值;当然也可以分开写 方式2
数据类型 变量名;
变量名 初始值;如果我们要定义很多相同数据类型的变量我们也可以采取以下方式 方式3
数据类型 变量名1 初始值1,变量名2 初始值2,变量名3 初始值3,...;2示例
方式1
int a 10;
double b 2.3;
char c c;方式2
int a;
a 10;double b;
b 20.1;方式3
int a1 1, a2 2, a3 3;3、整型变量
1整型变量int
a.语法
\\方式1
int a1 1;
\\方式2
int a2;
a2 2;b.最大值与最小值
我们可以用以下方式输出int的最大值和最小值。
//最大值
System.out.println(Integer.MAX_VALUE);
//最小值
System.out.println(Integer.MIN_VALUE);c.注意
使用未初始化的变量会发生报错。如果没有合适的初始值可以先赋值为0。在给int赋值的时候如果超过了int的范围则会发生报错。int的包装类型为 Integer。
2长整型变量long
a.语法
\\方式1
long a1 1L;
\\方式2
long a2;
a2 2L;这里要在数值的后面加字母L因为整型的字面常量默认是int类型的因此如果我们给long类型的变量赋上超过int范围的数字的话会出现报错所以我们需要将字面常量转化为长整型。
b.最大值与最小值
//最大值System.out.println(Long.MAX_VALUE);
//最小值
System.out.println(Long.MIN_VALUE);c.注意
long类型的赋值需要给数字加上L。长整型不论在那个系统下都占8个字节。long的包装类型为Long。
3短整型变量short
a.语法
\\方式1
short a1 1;
\\方式2
short a2;
a2 2;short不需要将字面常量的int转化为short因为short的范围比int小所以我们不会遇到超过int范围的赋值情况。
b.最大值与最小值
//最大值
System.out.println(Short.MAX_VALUE);
//最小值
System.out.println(Short.MIN_VALUE);ic.注意
short在任何系统下都占2个字节。使用时注意不要超过范围(一般使用比较少)。short的包装类型为Short。
4字节型变量byte
a.语法
\\方式1
byte b1 10;
\\方式2
byte b2;
b2 10;b.最大值与最小值
//最大值
System.out.println(Byte.MIN_VALUE);
//最小值
System.out.println(Byte.MAX_VALUE);c.注意
4、浮点型变量
1 双精度浮点型
a.语法
double d1 1.0;
double d2;
d2 2.0;b.最大值与最小值
//最大值
System.out.println(Double.MAX_VALUE);
//最小值
System.out.println(Double.MIN_VALUE);c.注意
double在任何系统下都占8个字节。double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差因此浮点数是个近似值并不是精确值。 为了证明这一点我们可以运行以下代码
public class HelloWorld {public static void main(String[] args) {double d1 1.1;double d2 1.1;System.out.println(d1 * d2);}
}我们会发现运行结果为
double的包装类型为Double。在运算过程中只有至少存在一个浮点数的时候结果才是浮点数。
2单精度浮点型
a.语法
//方式1
float a1 1.2f;
//方式2
float b1;
b1 2.1f;b.最大值与最小值
//最大值
System.out.println(Float.MAX_VALUE);
//最小值
System.out.println(Float.MIN_VALUE);c.注意
浮点型的字面常量默认是double类型的所以如果我们想给浮点型赋值的话我们需要在字面常量的后面加上字符f。float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double, 不太推荐使用 float. float的包装类型为Float。
5、字符型变量
a.语法
//方式1
char a1 a;
//方式2
char a2;
a2 b;b.最大值与最小值 System.out.println(Character.MAX_VALUE);System.out.println(Character.MIN_VALUE);c.注意
计算机中的字符本质上是一个整数。在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文。char的包装类型为Character。
6、布尔型变量
a.语法
//方式1
boolean b1 true;
//方式2
boolean b2;
b2 false;b.注意
boolean 类型的变量只有两种取值, true 表示真, false 表示假。Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法。Java虚拟机中并没有明确地规定boolean类型占几个字节也没有专门用来处理boolean的字节码指令在Oracle公司的虚拟机实现中boolean占1个字节。boolean的包装类型为Boolean。
7、 类型转换
Java是一个强类型的语言即当不同类型之间的变量相互赋值的时候会有严格的类型校验规则。
在Java中当参与运算数据类型不一致时就会进行类型转换。Java中类型转换主要分为两类自动类型转换(隐式) 和 强制类型转换(显式)。
1自动类型转换隐式转换
什么叫自动类型转换自动类型转换即代码不需要经过任何处理在代码编译时编译器会自动进行处理。 那么什么情况下会进行自动类型转换呢 当我们将数据范围小的转为数据范围大的时候编译器会自动进行类型转换。 比如下面的代码
public class HelloWorld {public static void main(String[] args) {int a 100;long b 200;b a;//将int赋值给long,int会自动转化为long}
}那么如果我们反过来呢我们将long赋值给int那么此时由于是需要将long转换为int即大范围转小范围的过程所以此时不会发生自动类型转换编译器会出现报错。 如下图所示
2强制类型转换显式转换
强制类型转换当进行操作时代码需要经过一定的格式处理不能自动完成。 特点数据范围大的到数据范围小的时候需要我们手动将大类型转化为小类型转化的语法即我们在被转变量前加上(小范围的数据类型)。 示例如下
public class HelloWorld {public static void main(String[] args) {int a 1;long b 2;a (int)b;byte b1 (byte) 12456;double d1 3.14;float f1 (float)d1;}
}3转换时的注意事项
不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型。如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失。将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查。强制类型转换不一定能成功不相干的类型不能互相转换比如整型和布尔型。
4类型提升
类型提升是指在进行表达式运算的时候数据类型小的会被提升到数据类型大的。
int 与 long之间
public class HelloWorld {public static void main(String[] args) {int a 10;long b 20;long c a b;//int long表达式int会被提升到long类型所以转化成了longlong结果也为longint d a b;//结果也为long但是long结果给int需要强制类型转换不转换会报错。}
}byte与byte之间
public class HelloWorld {public static void main(String[] args) {byte a 30;byte b 120;byte c a b;//出现报错java: 不兼容的类型: 从int转换到byte可能会有损失}
}为什么byte之间的运算还与int的转化有关呢
byte 和 byte 都是相同类型 但是出现编译报错。原因是虽然 a 和 b 都是 byte 但是计算 a b 会先将 a和 b 都提升成 int 再进行计算得到的结果也是 int 这时赋给 c 就会出现上述错误。
从硬件运算效率的角度分析 由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据为了硬件上实现方便诸如 byte 和 short这种低于 4 个字节的类型会先提升成 int 再参与计算。
总结
不同类型的数据混合运算范围小的会提升成范围大的。对于 shortbyte 这种比 4 个字节小的类型会先提升成 4 个字节的 int 再运算。
四、字符串变量
1、字符串拼接
public class HelloWorld {public static void main(String[] args) {String str1 ab;String str2 cd;String str3 str1 str2;System.out.println(str3);}
}2、int转String
public class HelloWorld {public static void main(String[] args) {int num 10;//方法1String str1 num ;//方法2String str2 String.valueOf(num);}
}其余类型的转化与之类似。
3、String转int
public class HelloWorld {public static void main(String[] args) {String str1 123;int a1 Integer.parseInt(str1);System.out.println(a13);}
}其余类型的转化与之类似。