2017.10.17 day002

  • java基本类型
  • java中最小的存储单位是字节,1字节等于8位​​​​​​

1、数字:

整型(默认值:0)、浮点型(默认值:0.0) 

 整型:byte、short、int、long

浮点型:float、double

2、整型(默认值:0):

byte 8位

short 16位

int    32位

long    64位

在JAVA中,整型数字运算时默认使用int型运算

3、浮点型(默认值:0.0):

float    32位单精度

double    64位双精度    

4、字符型(默认值:null):

char    16位    范围:0-65535

使用Unicode编码集进行编码

4.1、指定源文件使用的字符编码:-encoding

例:

char d = '猿';

System.out.println(d);

结果是乱码

a:java -encoding utf-8 xxx.java

4.2、bin目录下的native2ascii.exe可以将汉字转换成对应的unicode编码

步骤:

1.进入文件所在盘符及文件夹

2.natice2ascii xxx.txt

3.得到对应编码

4.3、例:

char word1 = '\u5927';

char word2 = '\u733f';

char word3 = '\u8f6f';

char word4 = '\u4ef6';

System.out.println("" + word1 + word2 + word3 + word4);

A:word1前面加引号是为了把语句转化为字符串输出

5、布尔型

boolean表示逻辑上的“真”或者“假”

boolean类型的值只能使用true或者false

boolean类型不可和其他基础类型相互转换

  • 向上转型、向下转型

byte    short    int    long    float    double

有小到大:向上转型(安全)

由大到小:向下转型(强制、需在前面添加对应的类型)

例:

int a = 1;

int b = 2;

short c = (short)(a+b)

  • 溢出的问题

例:

int max_int = 2147483647;

int a_int = 1;

int b_int = 2;

long along = max_int + a_int + (long)bint;

输出结果为负值,即溢出

(因前两位相加的值已溢出,故无法提升长度)

a:把(long)提前,如下:

long along = (long)max_int + a_int + bint;

  • 除以零的问题

整数除以0:报异常

浮点数除以零:正负无穷大

 

  • 运算问题
  • 控制运算的优先级使用()来控制执行顺序

1、三目运算:

运算符:?:

例:

boolean aBool = true;

String result = 1 > 2 ? "it is true" : "it is false";

(若结果为true则输出?后面的语句;若为false则输出:后面的语句)

?后面的值的类型要与前面定义的类型一致

2、位运算:

例:左移<<                                                                        右移:>>

int a = 10;                                                                          int a = 10;

int b = a << 2;                                                                   int b = a >> 2;    

System.out.println(b);                                                        System.out.println(b);

输出b为40即:b = a*2*2(a乘2的2次方)                       输出b为2:即b = a/2*2(a除以2的2次方)

若b = a<<3 即:b = a*2*3(a乘2的3次方)

  • 异或

两个数异或,相同输出0,不同输出1。

例1:

1^1;//输出0;

A:

1:0001;

1:0001;

得:0000 = 0;

例2:

1^2;//输出3

A:

1:0001;

2:0010;

得:0011 = 3;

  • 按位非
  • 二进制的最高位是符号位(若一个数最高位为1,则这个数为负数)
  • 取反时除符号位外取反

步骤:原码->取反->正数-1、负数+1->补码->按位非值

即数值加一取反;如~5;5+1取反 = -6;~-12;-12+1取反11

例1:

~10

A:(正数减1)

原码:0000......0000 1010 =10

反码:0111......1111 0101 

-1:   0111......1111 0100

补码:1000......0000 1011 = -11

例2:

~-12

A:(负数加1)

原码:1000......0000 1100 = -12

反码:1111......1111 0011

+1  :1111......1111 0100

补码:0000......0000 1011 = 11

 

转载于:https://my.oschina.net/u/3708596/blog/1552204

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值