变量
变量: 存数的,代词,指代的就是它所存的那个数
- 声明:
int a; //声明一个整型的变量,名为a
int b,c,d; //声明三个整型的变量,名为b,c,d - 命名:
- 只能包含字母、数字、_和$符,并且不能以数字开头
- 严格区分大小写
- 不能使用关键字
- 可以中文命名,但不建议
建议"英文的见名知意"、“驼峰命名法”
-
初始化:第一次赋值
-
使用:
- 变量的使用必须与数据类型匹配
int a = 3.14; //编译错误,数据类型不匹配
- 变量在用之前必须声明并初始化
System.out.println(s); //编译错误,s未声明
int s;
System.out.println(s); //编译错误,s未初始化
8种基本数据类型:
int:整型,4个字节,-21个多亿到21个多亿
- 整数直接量默认为int类型,但不能超出范围,超范围则编译错误
- 两个整数相除,结果还是整数,小数位无条件舍弃(不会四舍五入)
- 整数运算时若超出范围,则发生溢出,溢出是需要避免的
long:长整型,8个字节,很大很大很大
- 长整型直接量需在数字后加L或l
long a = 1000000000L;
- 运算时若有可能溢出,建议在第1个数字后加L
long a = 1000000000L*10*10;
- System.currentTimeMillis()用于获取自1970.1.1零时到此时此刻的毫秒数
long a = System.currentTimeMillis();
double:浮点型,8个字节,很大很大很大家
- 浮点型直接量默认为double型,表示float需在数字后加f或F
- double和float型数据参与运算时,有可能会出现舍入误差
- 赋值时,后面可以加d也可不加:
double d=1.0d;double d=1.0;
boolean:布尔型,1个字节
只能取值为true或false
char:字符型,2个字节
- 采用的是Unicode字符集编码,每个字符都有一个对应的码
表现的形式是字符char,但本质上是码int(0到65535之间)
(ASCII: ‘a’–97 ‘A’–65 ‘0’–48) - 字符型直接量需放在单引号中,并且只能有一个
- 特殊符号需要通过\来转义
char a = '\\'------\
float byte short(java里基本不用)
基本数据类型间的转换:
基本数据类型从小到大依次为:
byte,short/char,int,long,float,double
- 两种方式:
- 自动类型转换:小类型到大类型
- 强制类型转换:大类型到小类型
语法: (要转换成为的数据类型)变量
强转有可能溢出或丢失精度
int a = (int)1000000000L;
- 两点规则:
- 整数直接量可以直接赋值给byte,short,char,但不能超出范围
- byte,short,char型数据参与运算时,先一律转换为int再运算
System.out.println(2+'2');----打印52,
Scanner接收用户的输入:
- 在package下:
import java.util.Scanner; - 在main中:
Scanner scan = new Scanner(System.in); - 在第2步之后:
System.out.println(“请输入年龄:”);
int age = scan.nextInt();
System.out.println(“请输入价格:”);
double price = scan.nextDouble();
package day03;
import java.util.Scanner;
public class Cashier {
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("请输入单价(¥):");
double price = scan.nextDouble();
System.out.println("请输入数量:");
int number = scan.nextInt();
System.out.println("请输入金额(¥):");
double money = scan.nextDouble();
double change = 0;
double cost = price * number;
System.out.print("应收金额为:"+"¥"+cost+",");
change = money - cost;
System.out.println("找零为: "+"¥"+ change);
}
}