【Java学习系列】Java基础之变量和数据类型

变量命名规则

  • 字、下、美、人、数、骆驼有意义
  • 不能使用关键字,如public、class

Java常用数据类型

  • 数值
  • 整型:int
  • 浮点型:double、float
  • 非数值:char、boolean、String(String不是基本数据类型,是引用数据类型,它是Java提供的一个类)

数据类型说明

数据类型

大小

取值范围

byte

1字节8位

-128 ~ +127

int

4字节32位

-2147483648(-231) ~ + 2147483647(231-1)

short

2字节16位

-32768 (-215) ~ + 32767 (+215-1)

long

8字节64位

-263 ~ + 263-1

float

4字节32位浮点数

1.4E-45 ~ 3.4E+38 , -1.4E-45 ~ -3.4E+38

double

8字节64位浮点数

4.9E-324 ~ 1.7E+308, -4.9E-324 ~ -1.7E+308

常量

  • 在程序运行中,其值不能改变的量
  • 优点 :比较安全
  • 推荐做法:
  • (1)常量名通常大写
  • (2)不同字符使用下划线分隔
  • (3)只能被赋值一次,通常定义时即对其初始化

Scanner的使用

  • 在程序运行中,可以接收用户键盘输入的值

使用Scanner

  • 第一步:导入Scanner类
import java.util.*;
  • 第二步:创建Scanner对象
Scanner input = new Scanner(System.in);
  • 第三步:获得键盘输入的数据
int now = input.nextInt();
  • 注意:输入代码时注意代码顺序

类型转换

自动类型转换规则

  • 规则1:如果一个操作数为double型,则整个表达式可提升为double型
  • 规则2:满足自动类型转换的条件
  • 两种类型要兼容
  • 数值类型(整型和浮点型)互相兼容
  • 目标类型大于源类型:
  • 例如:double 型大于 int 型

强制类型转换规则

  • 大范围往小范围转化 , 转换后的值会有所损失。
  • 不同数据类型精度由小到大排列如下:
  • char–>byte --> short --> int --> long --> float --> double

实例

public class Lx3 {
	/**
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		//强制类型转换
		double a = 3.33;
		int b = (int)a;
		System.out.println(b);
		
		//自动类型转换(隐式类型转换)
		int c = 3;
		double d = 3.33;
		double e = c + d;
		System.out.println(e);
	}
}

赋值运算符

  • =

算数运算符

  • 基本的算术运算
+、-、*、/、%、++、--

++(–)的不同位置的输出

int a = 1;
System.out.println(a++); //结果为1
System.out.println(++a); //结果为3
System.out.println(a); //最后结果为3
  • 复合算术运算符
+=、-=、*=、/=、%=

关系运算符

运算符

含义

范例

结果

==

等于

5==6

false

!=

不等于

5!=6

true

>

大于

5>6

false

<

小于

5<6

true

>=

大于等于

5>=6

false

<=

小于等于

5<=6

true

  • 注意:
  • =为赋值运算符,==为等于运算符
    关系表达式的结果为布尔值
  • <、>、>=、<= 运算符的优先级别高于==、!=
  • <、>、>=、<=运算符只支持数值类型的数据比较

逻辑运算符

运算符

含义

运算规则

&&

短路

两个操作都是true,结果才是true

||

短路

两个操作数一个是true,结果就是true

!


操作数为true,结果为false

操作数为false,结果为true

  • 如果第一个操作数已经能确定表达式的值,第二个操作数就不必计算了;
  • 优先级别 ! > && > ||

短路与(&&)和与(&)的区别

  • &&:一旦有false结果就直接出结果(不再往后走)
  • &:无论有没有false结果都继续往后走

条件运算(三目(三元)运算符)

  • 条件?表达式1(true):表达式2(false)