小言_互联网的博客

Java之数据类型与运算符详解

425人阅读  评论(0)

目录

数据类型

运算符


本篇博客主要介绍Java语言中的数据类型与运算符。

数据类型

1.首先我们介绍一下什么是变量

变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据.
类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性.
我们所讨论的 "变量" 主要和我们的 "内存" 这样的硬件设备密切相关.

2.变量的类型
在Java中变量分为整型变量、浮点型变量、字符型变量、字节类型变量、布尔类型变量和字符串类型变量。

注Java中String也就是字符串类型,它是一个类,也就是如下图的引用类型

 

3.整型变量:

①int

在Java中一个int占4个字节,与操作系统无关,不像c语言分32位,64位等~

基本语法格式:

int 变量名 = 初始值;

 代码示例:


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. int a = 10;
  4. System.out.println(a);
  5. }
  6. }

运行结果:

注:

1.int 表示变量的类型是一个整型

2.变量名是变量的标识后续都是通过这个名字来使用变量

3.Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值

4. 初始化操作是可选的, 但是建议创建变量的时候都显式初始化

5. 最后不要忘记分号, 否则会编译失败

我们来测一下int的范围代码如下:


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. System.out.println(Integer.MAX_VALUE); //int的最大值
  4. System.out.println(Integer.MIN_VALUE); //int的最小值
  5. }
  6. }

运行结果是

表示int是4个字节 4个字节的范围是[-2^31,2^31-1]

②long

long与int对变量命名规则类似,Java中long占8个字节。

long 变量名 = 初始值;//建议数字最后加上大写的L或者小写的l,便于区分。 


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. long a = 10L;
  4. System.out.println(a);
  5. System.out.println(Long.MAX_VALUE); //long的最大值
  6. System.out.println(Long.MIN_VALUE); //long的最小值
  7. }
  8. }

运行结果:

表明long 的范围是[-2^63,2^63-1]

③short

short占2个字节

short 变量名 = 初始值;

4.浮点型变量

①float

基本格式: 单精度浮点型float,占4个字节。

float 变量名 = 初始值;//建议初始值后加大写F或小写f表示这个数是一个单精度浮点型!


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. float a = 10L;
  4. System.out.println(a);
  5. }
  6. }

运行结果:

②double

基本格式:双精度浮点型,占8个字节。

double 变量名 = 初始值;


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. double a = 12.5;
  4. System.out.println(a);
  5. }
  6. }

运行结果:

5.字符型变量

char

char占2个字节!Java中字符都是用Unicode编码

char 变量名 = 初始值;

代码示例:


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. char a = 'A';
  4. System.out.println(a);
  5. }
  6. }

运行结果:

6.字节型变量

byte

byte 变量名 =初始值;

7.布尔类型变量

boolean

boolean 变量名 = 初始值;

注:boolean只有false和true两个值!

Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法

8.字符串类型变量

String

串通常是用" "包含;

String 变量名 = 初始值;


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. String name = "zhangsan";
  4. System.out.println(name);
  5. }
  6. }

Java中可以实现两个字符串"相加",此相加并不是真正的相加,只是将字符串拼接到另一个字符串的后面。


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. String name1 = "zhangsan";
  4. String name2 = "lisi";
  5. System.out.println(name1+name2);
  6. }
  7. }

运算符

1.算术运算符 :+ - * / %

代码如下:


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. int a= 5;
  4. int b= 2;
  5. System.out.println(a+b); //加法运算符结果是7
  6. System.out.println(a-b); //减法运算符结果是3
  7. System.out.println(a*b); //乘法运算符结果是10
  8. System.out.println(a/b); //除法运算符结果是2
  9. System.out.println(a%b); //求余运算符结果是1
  10. }
  11. }

注:0不能作为除数!


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. int a = 5;
  4. int b = 0;
  5. System.out.println(a/b);
  6. }
  7. }

会抛出0不能作为除数的异常!

2.增量运算符:+= -= *= /= %=


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. int a = 5;
  4. a+= 1; //等价于a=a+1;此时a=6;
  5. System.out.println(a); //6
  6. a-= 1; //等价于a=a-1;上次执行完a+=1时a已经变成了6,这时执行a-=1 a变成了5
  7. System.out.println(a); //5
  8. a*= 2; //等价于a=a*2 此时a=10;
  9. System.out.println(a); //10
  10. a/= 2; //等价于a=a/2;此时a=5;
  11. System.out.println(a); //5
  12. a%= 2; //等价于a=a%2;此时a=1
  13. System.out.println(a); //1
  14. }
  15. }

3.自增 自减运算符 前缀++ 后缀++ 前缀-- 后缀--


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. int a= 1;
  4. int b=a++; //等价于b=a a=a+1此时b=1 a=2;
  5. System.out.println(b); //1
  6. System.out.println(a); //2
  7. b=++a; //等价于a=a+1 b=a 此时a=3 b=3;
  8. System.out.println(b); //3
  9. System.out.println(a); //3
  10. b=a--; //等价于b=a a=a-1 此时b=3 a=2;
  11. System.out.println(b); //3
  12. System.out.println(a); //2
  13. b=--a; //等价于a=a-1 b=a 此时a=1 b=1
  14. System.out.println(b); //1
  15. System.out.println(a); //
  16. }
  17. }

4.逻辑运算符:&&(与) ||(或)  !(非)

逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean 也就是说 只有2值 true 或 false


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. int a = 10;
  4. int b = 5;
  5. int c = 6;
  6. System.out.println(a>b&&a>c); //T
  7. System.out.println(a>b||a>c); //T
  8. System.out.println(a!=b); //T
  9. System.out.println();
  10. System.out.println(a<b&&a>c); //F短路求值,&&运算符中一假为假!
  11. System.out.println(a<b||a>c); //T 或运算符中一真为真!
  12. }
  13. }

 

短路求值!

结论: 1. 对于 && , 如果左侧表达式值为 比特科技 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式

2. 对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式.

5.位运算符

&(按位与) |(按位或)  ~(按位取反) ^(按位异或)

位指二进制位


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. int a= 3;
  4. int b= 4;
  5. System.out.println(a&b); //0
  6. System.out.println(a|b); //7
  7. System.out.println(a^b); //7
  8. System.out.println(~a); //-4
  9. }
  10. }

我们来看 a和b的二进制表示

以上4张图是为什么得到这个答案的分析过程。
6.移位运算符

>>(右移):最右位不要了,正数最左侧补0,负数补1

  <<(左移):最左侧位不要了,最右侧补0

>>>(无符号右移):最右侧不要了,最左侧补0

注:>>运算符 相当于除以2 右移n位 相当于除以2的n次方

       <<运算符 相当于 乘2    左移n位  相当于乘2的n次方

7.条件运算符

格式:

表达式1?表达式2:表达式3

比如:


  
  1. public class TestDemo {
  2. public static void main(String[] args) {
  3. int a = 10;
  4. int b = 2;
  5. int c=a>b?a:b;
  6. System.out.println(c);
  7. }
  8. }

答案毫无疑问是10,这是在求2个数的较大值。也就是说表达式1成立执行表达式2,表达式1不成立执行表达式3!

​​​​​​​感谢观看!!!


转载:https://blog.csdn.net/JixTlhh/article/details/115432167
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场