变量是个代词,指代数据,也就是代数。 是存放运算过程当中须要用到的数据
也是指代在内存中开辟的存储空间。关于存储,这个是一件很重要的概念,如今暂时不讲。
1)声明: int a;
2)命名:
首先要区分项目名 包名 类名 变量名 这四个名都叫作 Java标识符。
2.1)只能包含数字/字母/_/$/,且不能以数字开头
2.2)不能占用Java关键字
2.3)可使用汉字,但不建议(这个是特殊规则)
2.4)命名应见名知义 建议驼峰命名法(一个单词就都小写,多于一个单词的变量名,那后面的首字母都要大写)
帕斯卡命名法 适用于类 项目 而包名默认都是小写 变量名则适用于驼峰命名法java
3)初始化
3.1)初始化就是第一次赋值
3.2)先声明再初始化
4)使用git
4.1)对变量的使用就是对它所存的那个数据的使用(必定要清楚,计算机科学中数默认是一个大的范畴,即数据)
4.2)变量在使用以前必须声明并初始化
4.3)对变量的使用要与变量的数据类型相匹配编码
Java的8种基本数据类型,分别用于存储整数/浮点数/字符数据/布尔类型数据;
8种基本数据类型 分为4类 分别是整型/浮点型/字符型/布尔型
其中整型 整型有四种byte/short/int/long 浮点分为float/double
常常用的5种,int,long,double,char,boolean
Java规定两个整数相除,结果仍是整数,小数无条件舍弃
注意运算结果的溢出和精度丢失现象,这两点都要在设计时避免。设计
literal 整数直接量 在Java中都默认为int类型 整数直接量 通常会有10/16/8进制,
Java中若求百分比,须要先*100,由于若是后*100,那因为舍弃小数后面的数字,整个算式结果为0;code
//基本数据类型之间的转换
运算时有可能溢出的话,L(long类型标识后缀)应放在前面,即在第一个数字后假L;
若是要表示float直接量,须要加F后缀;
double运算时会出现舍入偏差:
默认的浮点直接量为double型;整数的直接量的类型默认为int类型,若是直接写出的整数超过了int的表达范围,将会出现编译错误;
二进制中没法精确的表示1/10,就好像10进制没法精确的表示1/3同样,因此,2进制表示10进制会有一些舍入偏差,对于一些要求精确运算的场合会致使代码的缺陷。e.g:
double money = 3.0;
double price = 2.9;
System.out.println(money - price); //输出的结果是: 0.10000000000000009
若是须要精确的运算能够考虑放弃使用double或float而采用BigDecimal,相似于超出long类型的更大的整数 用BigInteger来实现。关于这一点,将在后续的章节中介绍。内存
boolean 只容许取值trur false
字符本质上是一个无符号整数
字符型变量赋值的3种形式
方式一:
字符直接量:形如‘A’,变量中实际存储的是该字符的Unicode编码(无符号整数值),一个char型变量只能存储一个字符。示例以下:
char c1 = 'A';
方式二:
整型直接量:范围在0~65535之间的整数,变量中实际存储的即该整数值,但表示的是该整数值所对应的Unicode字符。示例以下:
char c2 = 65;
Unicode形式:形如‘\u0041’,Unicode字符的16进制形式。示例以下:
char c3 = '\u0041';
对于不方便输出的字符能够采用转义字符来表示,转义字符是\ 开头,他有不少;ci
记住3个ASCII码,‘a' --97 'A'---65 '0'--48it
ASCII码是Unicode字符集编码的一种表现形式
char c2 = '\u4e2d'; //‘4e2d’为‘中’所对应的16位Unicode编码的16进制表示形式,那\ 是表明Unicode格式编译
基本数据的类型转换import
自动转 byte---short---int---long-----float----double
特别指出 char 也会自动转为int
强制转 上述反向转型则须要强制转;强制转可能形成溢出和精度丢失现象,若是在一个表达式中出现了多种数据类型,则运算结果会自动的向较大的类型进行转化
e.g.
long l = 1024L * 1024 * 1024 * 4;
int j = (int) l; //会产生溢出
System.out.println(j); // 结果为:0
double pi = 3.1415926535897932384;
float f = (float) pi; //会形成精度的损失,由于单精度的精确度小于double
System.out.println(f); //结果为:3.1415927
int直接量能够直接赋值给byte,short,char(e.g. '2'+'2' =100),但不能超出它们各自的范围。
byte,short,char型数据参与运算先一概转化为int再计算
e.g.
short b1 = 5;
short b2 = 6;
short b3 = (short)(b1 + b2);//特别须要注意强转时对运算表达式加括号,以确立运算优先级
如今讲Scanner;
给变量赋值的3个方式;
----------赋一个固定的值
----------由用户输入(import java.util.Scanner;Scanner 变量名 = new Scanner(System.in))
----------随机赋值
P.S.
这里我须要理清的概念是8种基本Java类型的存储空间
byte---------1字节8位
short--------2字节16位
int-----------4字节32位
long---------8字节64位
float--------4字节32位
double-------8字节64位
char---------2字节16位
boolean------1字节8位
字节 Byte 习惯用B表示 位 bit是 二进制码的英文词组缩写即 binary digit
RAM(随机存取存储器)和硬盘都使用字节做为容量单位,文件大小也以字节为单位显示。
1 byte = 8 bits 8个二进制位 00000000-11111111 表示 0-255 共2^8 256个状态 组合数公式 两个字节有16位,能够表示2^16种状态 这个可能有点设计计算机科学的专业基础知识了,我暂时理解的还不透彻。今天到此为止吧。 1 MB = 8192 Bits 即8192个二进制位