码迷,mamicode.com
首页 > 编程语言 > 详细

Java基本程序设计结构

时间:2016-01-17 17:39:39      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

1.注释

单行注释——//

多行注释——/*  */

1 public class Main {
2     public static void main(String[] args) {
3         //这是一个单行注释
4         
5         /*
6          * 这是一个多行注释
7          */
8     }
9 }

2.数据类型

整型

在Java中,数字均为有符号整数,不存在无符号整数,数字在计算机中可以有三种编码方式:

原码:最高位为符号位,其余位为数字的绝对值的二进制表示。

[1]=[0000 0001]  [-1]=[1000 0001]

反码:最高位为符号位,其余位如果数字为正数则为其原码值;如果数字为负数则在其原码基础上按位取反。

[1]=[0000 0001]  [-1]=[1111 1110]

补码:最高位为符号位,其余位如果数字为正数则为其原码值;如果数字为负数则在其反码技术上加1.

[1]=[0000 0001]  [-1]=[1111 1111]

基于简化CPU硬件设计的考虑,将减法运算器整合到加法运算器中,因此,在计算机中,数字基本是以其补码的形式进行存储的

对于由a位二进制位表示的数字,0<=m<2(a-1),0<m<2(a-1)m-n=m+2(a-1)-n-2(a-1)。其中2(a-1)-n为-n的补码。

对于有符号整数,只有在两个相同符号的数进行加法操作的情况下,才会产生进位操作。而如果把符号位也按照普通的二进制位参与到计算中,如果只有次高位有进位操作或只有符号位有进位操作,表示结果的数值已经超过了a位二进制数可以表示的数值范围。

在书写数字时,可以以0x前缀使用十六进制表示数字,以0前缀使用八进制表示数字,以0b前缀使用二进制表示数字(Java7+),使用十进制表示数字。

byte:

使用1字节存储数字。

short:

使用2字节存储数字。

int:

使用4字节存储数字。

long: 

使用8字节存储数字。 

浮点型

在Java中,浮点数以IEEE754规定的浮点数表示法为标准存储浮点数,该表示法是一种科学计数法,用符号、指数、尾数来表示。

float:

使用4直接存储数字,以1位二进制位为符号域,8位二进制位为指数域,23位二进制位为小数域,指数偏移量为127。

double: 

使用8直接存储数字,以1位二进制位为符号域,11位二进制位为指数域,52位二进制位为小数域,指数偏移量为1023。

Double类中存在三个特殊的常量值,Double.POSITIVE_INFINITY-正无穷大,Double.NEGATIVE_INFINITY-负无穷大,Double.NaN-非数字,在进行相应的验证时,需要调用相应的方法进行验证。

字符型

在不同的编码集中,字符的编码方案各不相同。

代码点:指与一个编码表中某个字符对应的代码值。

代码单元:在基本的多语言级别中,每个字符用16位表示,通常被称为代码单元。

char:

在Java中,char类型用UTF-16编码描述一个代码单元,其中辅助平面内的字符需要一对char来表示。在JAVA5之后,开始支持增补字符集。 

Unicode规范涉及两个步骤:

  1. 定义一个规范,给所有的字符指定一个唯一对应的数字。
  2. 将字符对应的数字保存在计算机中。

在Unicode中,代码点被分为17个平面,每个平面包含65536个码位。第一个平面称为基本多文本平面,其余平面被称为辅助平面。在基本多文本平面内,从U+D800到U+DFFF之间的码位区段是永久保留,不映射到字符。

UTF-16中,辅助平面内的字符被编码为一对16比特长的码元,称为代理对。第一部分称为高位代理或签到代理,码位从U+D800到U+DBFF。第二部分称为地位代理或后尾代理,码位从U+DC00到U+DFFF。

转换方式为:

  1. 将字符值减去0x10000,结果范围0x0000到0xFFFFF。
  2. 将结果的高10位与0xD800做逻辑或运算,低10位与0xDC00做逻辑或运算。
  3. 将两部分组合起来就是该字符值的UTF-16编码。

UTF-8使用一个字节或两个字节或三个字节来编码Unicode。

0xxxxxxx,使用一个字节表示一个Unicode代码点,可表示128个字符。

110xxxxx 10xxxxxx,使用两个字节表示Unicode代码点,可表示2048个字符。

110xxxxx 10xxxxxx 10xxxxxx,使用三个字节表示Unicode代码点,可表示65536个字符。

EF BB BF  UTF-8

FE FF    UTF-16/UCS-2,little endian

FF FE    UTF-16/UCS-2,big endian

FF FE 00 00  UTF-32/UCS-4,little endian

00 00 FE FF  UTF-32/UCS-4,big endian

布尔型

boolean:

用于逻辑运算,有true和false两个值。

参考资料:

http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

http://www.cnblogs.com/effulgent/archive/2011/10/30/two_s_complement.html

http://blog.csdn.net/shangboerds/article/details/7498317

http://www.cnblogs.com/kingcat/archive/2012/10/16/2726334.html

http://www.ibm.com/developerworks/cn/java/j-unicode/

Java基本程序设计结构

标签:

原文地址:http://www.cnblogs.com/qhdxqxx/p/5117401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!