目录
一、进制及其转换
1.1进制类型
十进制:人类使用
二进制:计算机使用
八进制和十六进制:为了更好的表示二进制(缩短二进制长度)
1.2计算机为什么使用二进制
- 物理上容易实现,可靠性强;
- 运算简单
- 便于进行逻辑运算。
二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”。
数字计算机只能识别和处理由‘0’.‘1’符号串组成的代码。其运算模式正是二进制。
二进制对应两种状态,广泛应用于电子科学。比如:可以对应电子器件的开关状态、对应信号电压状态(+5V等价于逻辑"1",0V等价于逻辑"0")、对应卡带是否打孔状态、电磁存储(磁体状态:南为0,北为1)等等。
二进制广泛应用于我们生活的方方面面。比如,广泛使用的摩尔斯电码,它由两种基本信号组成:短促的点信号“·”,读“滴”;保持一定时间的长信号“—”,读“嗒”。然后,组成了26个字母,从而拼写出相应的单词。
1.3进制转换
二进制转十进制
二进制转十进制采用“权相加法”。
十进制转二进制
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
1.4计算机数据存储单位
位 bit
最小值 0
最大值 1
表示的数的范围 0-1(21-1)
字节 byte=8bit
最小值 00000000
最大值 11111111
表示的数的范围 0-255(28-1)
字符
表示的数的范围0-65535(2^16-1)
KB、MB、GB、TB
1Byte=8bit
1KB = 1024Byte ≈103Byte
1MB = 1024KB ≈ 106Byte
1GB = 1024MB ≈ 109Byte
1TB = 1024GB ≈ 1012Byte
1.5计数范围
符号位
二进制数如何表示正数和负数呢?
使用最高位作为符号位,0代表正数,1代表负数;其余数位用作数值位,代表数值。
字节 byte表示的数的范围
无符号数:0-255(28-1) 256个数
有符号数:-128(-27)--127(27-1) 还是256个数
字符表示的数的范围
无符号数 0-65535(216-1) 65536个数
有符号数 -32768(-215)-----32767(215-1) 还是65536个数
1.6 字符集和字符编码
计算机中储存的信息都是用二进制数表示的;而我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果。通俗的说,按照何种规则将字符存储在计算机中,如'a'用什么表示,称为"编码";反之,将存储在计算机中的二进制数解析显示出来,称为"解码",如同密码学中的加密和解密。在解码过程中,如果使用了错误的解码规则,则导致'a'解析成'b'或者乱码。
字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。
字符编码(Character Encoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的一项基本技术。通常人们用符号集合(一般情况下就是文字)来表达信息。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。
常见的字符集和字符编码
ASCII (阿寺克)
- ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,到目前为止共定义了128个字符。每个字符用1个字节表示。
- 0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、DEL(删除)、BS(退格)等
- 32 空格
- 48~57为0到9十个阿拉伯数字。
- 65~90为26个大写英文字母
- 97~122号为26个小写英文字母
ISO-8859-1 ISO-8859-*
- Latin-1,是西欧常用字符,包括德法两国的字母
- 1个字节 8bit,兼容ASCII码
GB2312
- 大陆使用最早、最广的简体中文字符集;兼容ASCII编码
- 每个汉字用2个字节表示 16bit 65536
GBK
- GB2312的扩展,可以表示繁体中文
- 一个汉字用 2个字节表示
GB18030
- GBK的扩展,最新的规范,不仅可以表示汉字、还可以表示维吾尔文、藏文等多个少数民族的字符
- 一个字符用 2个字节表示
BIG5
- 台湾的大五码,表示繁体汉字 2个字节
Unicode ----UTF-8 UTF-16
- 统一码、万国码、单一码 通常认为一个字符占用2个字节
- 为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求国际通用字符集。
- 目前的Unicode字符分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。第0平面(BMP)最为重要。
- Unicode 编码共有三种具体实现,分别为utf-8,utf-16,utf-32,其中utf-8占用一到四个字节,utf-16占用二或四个字节,utf-32占用四个字节
ANSI:
- 并不是某一种特定的字符编码,而是在不同的系统中,ANSI表示不同的编码。
- 在简体中文Windows操作系统中,ANSI 代表 GBK 编码;在繁体中文Windows操作系统中,ANSI代表Big5;在日文Windows操作系统中,ANSI 代表 Shift_JIS 编码。
二、标识符和变量
2.1 标识符
(只要需要我们命名的东西就是标识符)标识符是用来给变量、类、方法以及包进行命名的,如Welcome、main、System、age、name、gender等。
标识符需要遵守一定的规则:
- 标识符可以是字母、下划线“_”、美元符“$”和数字的任意组合,但是不能用数字开头。
- Java 标识符大小写敏感,且长度无限制。
- 标识符不可以是Java的关键字。
标识符的使用规范
|
Java不采用通常语言使用的ASCII字符集,而是采用Unicode这样标准的国际字符集。因此,这里字母的含义不仅仅是英文,还包括汉字等等。但是不建议大家使用汉字来定义标识符!
字母开头,数字放后面 别用空格 特殊符号只能用_$
类名首字母大小,其他的首字母小写
合法的标识符:
int a = 3; int _123 = 3; int $12aa = 3; int 变量1 = 55; //不建议使用中文命名的标识符 |
不合法的标识符:
int 1a = 3; //不能用数字开头 int a# = 3; //不能包含#这样的特殊字符 int int = 3; //不能使用关键字 |
2.2 关键字
Java关键字是Java语言保留供内部使用的,如class用于定义类。 关键字也可以称为保留字,它们的意思是一样的,我们不能使用关键字作为变量名或方法名。
Java中的关键字/保留字 |
|||||
abstract |
assert |
boolean |
break |
byte |
case |
catch |
char |
class |
const |
continue |
default |
do |
double |
else |
extends |
final |