变量概述
变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。
Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
整个内存就好像是酒店,当中包含了多个房间。
房间的容量(大小)不同(单人间、两人间...)
每个房间都有一个唯一的门牌号。
每个房间的住客(类型)也不同。
酒店的房间 — 变量
房间的类型 — 数据类型
房间门牌号 — 变量名
房间的住客 — 值
Java语言中数据类型:2大类
基本数据类型
引用数据类型
字节
字节是我们常见的计算机中最小存储单元,计算机存储任何的数据,都是以字节的形式存储。
8个bit(二进制位) 0000-0000表示为1个字节,写成1 byte或者1 B。
8 bit = 1 B
1024 B =1 KB
1024 KB =1 MB
1024 MB =1 GB
1024 GB = 1 TB
Java基本数据类型
基本数据类型:4类8种
布尔类型:boolean,数值只有2个:true,false
字符类型:char,2个字节(16位)
整数类型:
byte,字节。1字节(8bit),
short,短整型。2字节(16bit),
int,整型。(默认类型)。4字节(32bit)
long,长整型。加L或l。8个字节(64bit)
浮点类型:
float,单精度。加f或F。4个字节(32bit)
double,双精度。(默认类型)。8个字节(64bit)
基本数据类型是 Java 语言中内置的类型。整数类型、小数类型、字符类型、布尔类型 这四类是最基础的类型
类型 | 说明 | 最小值 | 最大值 | 默认值 | 空间 |
byte | 字节类型 | -128(-2^7) | 127(2^7-1) | 0 | 8 |
short | 短整型 | -32768(-2^15) | 32767(2^15-1) | 0 | 16 |
int | 整型 | -2^31 | 2^31-1 | 0 | 32 |
long | 长整型 | -2^63 | 2^63-1 | 0L | 64 |
float | 单精度 | 0.0f | 32 | ||
double | 双精度 | 0.0d | 64 | ||
boolean | 布尔 | false | 表示一位的信息 | ||
char | 字符 | \u000(0) | \uffff(65,535) | 单一的16位Unicode 字符 |
char 字符型 ,2 个字节 ,用单引号表示 '' ,刚好容纳一个汉字
注意: char 里面只能放一个
long类型:建议数据后加L表示。
float类型:建议数据后加F表示。
变量定义
变量:计算机内存中的一块存储空间,是存储数据的基本单元。
语法:变量包括三个要素: 数据类型 、 变量名 、 数据值 。
数据类型 变量名 = 数据值;
示例:
public static void main(String[] args) {
byte b1 = 123;//赋值就是存数据
short s1 = 200;
int i1 = 300; //默认int;
long l1 = 1000L;//long类型后面要写上大写的L或者小写的l
//访问变量就是取数据
System.out.println("b1:" + b1);//+是表示字符串的拼接
System.out.println("s1:" + s1);
System.out.println("i1:" + i1);
System.out.println("l1:" + l1);
b1 = 120;
System.out.println("-------------------------");
float f1 = 3.14f;//用小写的f或者大写的F标识这是float类型
double d1 = 3.149;//小数的类型默认为double
System.out.println("f1:" + f1);
System.out.println("d1:" + d1);
System.out.println("-------------------------");
boolean bb1 = true;
boolean bb2 = false;
System.out.println("bb1:" + bb1);
System.out.println("bb2:" + bb2);
System.out.println("-------------------------");
char c1 = 'A';
char c2 = '中';
System.out.println("c1:" + c1);
System.out.println("c2:" + c2);
}
注意:
Java中每个变量必须先声明,后使用
使用变量名来访问这块区域的数据
变量的作用域:其定义所在的一对{ }内
变量只有在其作用域内才有效
同一个作用域内,不能定义重名的变量
字符类型
ASCII(American Standard Code for Information Interchange),美国标准信息交换码
在计算机内部,所有数据都使用 二进制表示。每一个二进制位(bit)有 0 和 1 两种状态,因此 8 个二进制位就可以组合出 256 种状态,这被称为一个字节(byte)。一个字节一共可以用来表示 256 种不同的状态,每一个状态对应一个符号,就是 256 个符号,从0000000 到
11111111。
ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码。ASCII码一
共规定了128个 个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。
GB2312老国标 支持中文简体字和一部分少数民族文字 GBK 新国标 支持中文简体字和少数民族文字 UTF-8 万国码 支持世界上通用文字,也是后期开发中会使用的到的编码 JavaWEB项目 HTML前端页面 数据库软件编码集全部都是对应的UTF-8 BIG5 中文繁体字编码,主要流行于中国香港,中国澳门,中国台湾省,新加坡 ASCII码 美国XXXXX协会制定的一个标准编码。
Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字 母,一个汉字,或其他书面语的一个字符。
Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值。
字符赋值:char c1 = 'A';(通过''描述为字符赋值)
整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)
进制赋值:char c3 = '\u0041';(通过十六进制数41在字符集中所对应的字符赋值)
示例:
public static void main(String[] args) {
char c1 ='1';
char c2 = 97;//char类型的数字1对应ascii对应的一个字符,
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println("-------------------");
//转义字符
System.out.println("\"hello,world\"");
System.out.println("\'hello,world\'");
System.out.println("\"hello,\nworld\"");
System.out.println("\"hello,\tworld\"");
}
基本数据类型的转换
Java允许程序员在一定程度上进行数据类型的转换。
8种基本数据类型:
7种数值类型可以参加转换:byte,short,char,int,long,float,double(boolean不参加)。
显式转换
显式转换(强制转换):取值范围大的转为取值范围小的。
小范围数据类型 变量 = (小范围数据类型 变量)大范围数据类型;
int n = (int)6.7;
语法结构:(要转换的类型)数值
隐式转换
隐式转换(自动转换):取值范围小的转为取值范围大的。
大范围数据类型 变量 = 小范围的数据类型;
double d = 10000;
数据范围从大到小:
double >float>long>int>short>byte
示例:
public static void main(String[] args) {
byte a = 123;
short s = a;//隐式的自动类型转换;
int i = s;
System.out.println("a:"+a);
System.out.println("s:"+s);
System.out.println("i:"+i);
int i2 = 128;
byte b2 = (byte)i2;//强制类型转换:会有数据溢出
int i3 = 129;
byte b3 = (byte)i3;
double d1 = 6.7;
int i4 = (int)d1;
System.out.println("b2:"+b2);
System.out.println("b3:"+b3);
System.out.println("i4:"+i4);
System.out.println("----------------------");
//特殊点1:byte,short,char这三种在运算的时候,会自动转成int;
// byte a1 = 12;
// byte a2 = 13;
// byte bb = a1+a2;
//特殊点2:
long l1 = 100L;
long l2 = 100;//int---->long自动类型转换
}