变量

变量是个代词,指代数据,也就是代数。 是存放运算过程中需要用到的数据
也是指代在内存中开辟的存储空间。关于存储,这个是一件很重要的概念,现在暂时不讲。
1)声明: int a;
2)命名:
首先要区分项目名 包名 类名 变量名 这四个名都叫做 Java标识符。
2.1)只能包含数字/字母/_/$/,且不能以数字开头
2.2)不能占用Java关键字
2.3)可以使用汉字,但不建议(这个是特殊规则)
2.4)命名应见名知义  建议驼峰命名法(一个单词就都小写,多于一个单词的变量名,那后面的首字母都要大写)
帕斯卡命名法 适用于类 项目  而包名默认都是小写 变量名则适用于驼峰命名法

3)初始化
3.1)初始化就是第一次赋值
3.2)先声明再初始化
4)使用

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;

//基本数据类型之间的转换
运算时有可能溢出的话,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';
对于不方便输出的字符可以采用转义字符来表示,转义字符是\ 开头,他有很多;

记住3个ASCII码,‘a' --97 'A'---65 '0'--48

ASCII码是Unicode字符集编码的一种表现形式
char c2 = '\u4e2d';   //‘4e2d’为‘中’所对应的16位Unicode编码的16进制表示形式,那\ 是代表Unicode格式


基本数据的类型转换

自动转  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个二进制位  

转载于:https://my.oschina.net/u/3264179/blog/840432

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值