数据类型与运算符(初识Java)

变量和类型

运算符

变量指的是程序运行时可变的量,相当于开辟一块内存空间来保存这些数据,类型是对变量的种类进行了划分,不同的类型变量具有不同的特性。

1.1整型变量

代表示例:

public class HelloWorld {
	public static void main(String[] args) {
			int num=10;
	System.out.println(num);
	}
}

int表示变量是整型,在Java中,一个int占4个字节,包装类为:Integer。

public class HelloWorld {
	public static void main(String[] args) {
	System.out.println(Integer.MAX_VALUE);
	System.out.println(Integer.MIN_VALUE);
	}
}

用以上代码可以查看Java中的整型数据范围。

1.2长整型变量

代表示例:

public class HelloWorld {
	public static void main(String[] args) {
		long num=10L;
		System.out.println(num);
	}
}

需要强调的是:必须要在10后面加L,否则会被默认当做整型。
long类型占8个字节,表示数据范围同样可以用以下代码测试:

public class HelloWorld {
	public static void main(String[] args) {
		// long num=10L;
		// System.out.println(num);
	 System.out.println(Long.MAX_VALUE);
	 System.out.println(Long.MIN_VALUE);
	}
}

1.3双精度浮点型变量(重点)

代码示例:

public class HelloWorld {
	public static void main(String[] args) {
		double num=1.0;
		System.out.println(num);
	}
}

在Java中,int除以int的值仍然是int,会直接舍弃小数部分,如下:

public class HelloWorld {
	public static void main(String[] args) {
		int a=1;
		int b=2;
		System.out.println(a/b);
	}

结果如下:


D:\JavaCode\20200716>java HelloWorld
0

如果想要得到0.5,需要使用double类型计算,如下:

public class HelloWorld {
	public static void main(String[] args) {
		double a=1.0;
		double b=2.0;
		System.out.println(a/b);
	}
}

结果如下:

D:\JavaCode\20200716>java HelloWorld
0.5

1.4单精度浮点型变量

代码示例:

public class HelloWorld {
	public static void main(String[] args) {
		float num=1.0f;
		System.out.println(num);
	}
}

浮点型变量后面应该加上f,否则系统会认为其是double型。

1.6字节类型变量

代码示例:

public class HelloWorld {
	public static void main(String[] args) {
		byte value=0;
		System.out.println(value);
	}
}

字节类型表示的也是整数,但是只占一个类型,字节类型和字符类型也互不相干。

1.7短整型变量

代码如下:

public class HelloWorld {
	public static void main(String[] args) {
		short value=0;
		System.out.println(value);
	}
}

short占用两个字节,表示的数据范围较小。

1.8布尔类型变量

代码示例:

public class HelloWorld {
	public static void main(String[] args) {
		boolean value=true;
		System.out.println(value);
	}
}
  1. boolean类型的变量只有两种取值,true表示真,false表示假
  2. Java的boolean类型和int不能相互转换,不存在0表示假,非0表示真。
  3. boolean类型有些JVM的实现是占1个字节,有些是占1个比特位,没有明确的规定。

1.9字符串类型变量

  1. Java使用双引号+若干字符的方式表示字符串字面值
  2. String不是基本类型,而是引用类型
    代码示例:
public class HelloWorld {
	public static void main(String[] args) {
		String name="zhangsan";
		System.out.println(name);
	}
}

字符串中的一些特定的不太方便直接表示的字符需要进行转义。
代码示例:

public class HelloWorld {
	public static void main(String[] args) {
		String name="my name is \"zhangsan\"";
		System.out.println(name);
	}
}

输出结果:

D:\JavaCode\20200716>java HelloWorld
my name is "zhangsan"

常见的转义字符如下:

转义字符解释
\n换行
\t水平制表符
\’单引号
\"双引号
\\反斜杠

字符串+的操作
代码示例:

public class HelloWorld {
	public static void main(String[] args) {
		String a="hello";
		String b="world";
		String c=a+b;
		System.out.println(c);
	}
}

运行结果:

D:\JavaCode\20200716>java HelloWorld
helloworld

常量

final关键字修饰的常量,被定以后就不能修改,要初始化才能使用。

类型转换

  1. 大类型赋值给小类型,一定要强制类型转换
  2. int和boolean或其他数据和boolean不能转换
  3. byte表示的数据范围是-128->+127,不能超出其范围,否则会报错。

数值提升问题

  1. 不同类型的数据混合运算,范围小的会提升成范围大的
  2. 对于short,byte这种比4个字节小的类型,会先提升成4个字节的int再运算。
    代码示例:
public class Test {
public static void main(String[] args) {
	byte a=1;
	byte b=10;
	byte c=a+b;
	System.out.println(c);
	}
}

运行结果:

PS D:\JavaCode\20200717> javac -encoding utf-8 Test.java
Test.java:5: 错误: 不兼容的类型:int转换到byte可能会有损失
        byte c=a+b;
                ^
1 个错误

用强制类型转换:

public class Test {
public static void main(String[] args) {
	byte a=1;
	byte b=10;
	byte c=(byte)(a+b);
	System.out.println(c);
	}
}

结果如下:

PS D:\JavaCode\20200717>
 javac -encoding utf-8 Test.java
PS D:\JavaCode\20200717> java Test
11

int和string之间的转换

int转string
直接上代码:

public class Test {
public static void main(String[] args) {
	int a=10;
	String str1=a+"ab";
	System.out.println(str1);
	}
}

结果如下:

PS D:\JavaCode\20200717> java Test
10ab

String转int

public class Test {
public static void main(String[] args) {
	String str="100";
	int num=Integer.parseInt(str);
	System.out.println(num);
	}
}

运算符

基本运算符 + - * / %

注意两个代码:
第一个:

public class Test {
public static void main(String[] args) {
	int a=10;
	a=a++;
	System.out.println(a);
	}
}

结果如下:

PS D:\JavaCode\20200717> java Test
10

第二个:

public class Test {
public static void main(String[] args) {
	System.out.println(10%3);
	System.out.println(10%-3);
	System.out.println(-10%3);
	System.out.println(-10%-3);
	}
}

结果如下:

PS D:\JavaCode\20200717> java Test
1
1
-1
-1

关系运算符:== != < > <= >=

关系运算符的表达式返回值都是Boolean类型

逻辑运算符&& || !

逻辑与&&:两个操作数都为true,结果为true,否则结果为false
逻辑或||:两个操作数都为false,结果为false,否则结果为true
逻辑非!:操作数与结果数恰好相反。

位运算符& | ~ ^

按位与&:同为1,结果为1,否则为0
按位或|:同为0,结果为0,否则为1
按位异或^:相异为1,相同为0
按位取反~:0转1,1转0

要努力呀~想的很远,更要努力啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值