java--java语言基础(2)--黑马程序员

java语言基础(2)

主要内容:《进制、原码反码补码、变量、数据类型、类型转换、运算符》

1 不同进制数据的表现形式

         A.将每三位取出,转换为十进制:

                            10011100101

           每三位取出:

                                010   011  100  101

           转成十进制:

                     2     3     4     5

           组成一个新的数字:2345,它是一个八进制数

           八进制在源码中可以表示为:

           在内存中存储的仍然是二进制:

         B.将每四位取出,转换为十进制:

                            10011100101

           每四位取出:

                            0100 1110 0101

           转成十进制:

                            4     14    5

           组成一个新的数字:十以上使用字母:A,B,C,D,E,F

          4E5。它是一个十六进制数;

           十六进制数在源码中表示为:

           在内存中仍然存储是二进制;

二进制      

由0,1组成。以0b开头

八进制      

由0,1,…7组成。以0开头

十进制      

由0,1,…9组成。整数默认是十进制的

十六进制   

由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头

2 十进制到任意进制的转换图解

十进制与其它进制的转换:

         十进制的表示方法:

         32652

         =3 * 10000 + 2 * 1000 + 6 * 100 + 5 * 10 + 2

         =3 * 10^4 + 2 * 10^3 + 6 * 10^2 + 5 * 10^1 + 2 * 10^0

         系数:每一位上的数据;

         基数:10(进制数,我们这里是十进制)

         权:多少次幂;

         整个表达式:系数 * 基数(的权次幂),的累加和

         二进制转换为十进制的表示方式:

         11111110:使用十进制的公式表示一下:

         = 1 * 2^7 + 1 * 2^6 + 1 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1 * 2^2 + 1 * 2^1 + 0 * 2^0

         = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 0

         = 254

         八进制转换为十进制:

         (0)376:使用十进制的公式:

         =       3 * 8^2 + 7 * 8^1 + 6 * 8^0

         =       192 + 56 + 6

         =       254

         十六进制转换为十进制:

         (0x)FE:使用十进制的公式:

         = F * 16^1 + E * 16^0

         = 15 * 16^1 + 14 * 16^0

         = 240 + 14

         = 254

         十进制到二进制:用除法

                   十进制到其它进制:用除法;

         其它进制到十进制:用乘法;

3 原码反码补码的讲解

有符号数据表示法

在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。

原码

就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码

正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码

正数的补码与其原码相同;负数的补码是在其反码的末位加1。

4 变量的概述及格式

为什么需要变量:

         1.当我们反复的想使用一个数据,例如:公司使用3.14159作为计算圆面积的π值:

           如果直接使用字面量,容易发生写错的情况。如果这个值需要更改,所有的位置都需要改;

         2.我们可以给这个值起个名字,以后使用这个名字即可;

         3.给某个值起个名字,这个就是"变量名":

         4.变量的定义格式:

                            数据类型  变量名  [ = 初始化值];

                            说明:

                                               数据类型:后边说;

                                               变量名:自定义的标识符。遵循标识符的命名规则和命名规范;

                                               初始化值:在声明时,可以不指定初始化值,但不能访问这个变量的值;

所以,建议在声明变量时,都要初始化值;

5 数据类型的概述和分类

Java中的数据类型:

                   1.基本数据类型:四类八种:

                            四类:

                                     整数:byte,short,int,long

                                     浮点:float,double

                                     字符:char

                                     布尔:boolean

                   2.引用数据类型:

                  注意:在Java中,所有的"整数字面量"全部使用int类型存储;

               在Java中,所有的"浮点字面量"全部使用double类型存储;

                     boolean的空间大小:有效的位是1位。在内存中,使用int空间对一个boolean类型的值进行运算。

        整数默认:int    小数默认:double

6 使用变量的注意事项

使用变量注意事项:

作用域      

变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。

初始化值

没有初始化值不能直接使用

在一行上建议只定义一个变量

可以定义多个,但是不建议

定义字符串类型:

         1.在Java中"字符串"不是"基本数据类型";它是一个"引用数据类型";

         2.目前只需要学会"定义字符串"就可以;

         3.定义格式:

                            String 变量名 = 值;

7 数据类型转换之隐式转换

byte,short,char—int—long—float—double

byte,short,char相互之间补转换,他们参与运算首先转换为int类型

8 数据类型转换之强制转换

         1.将一个"宽类型"转换为一个"窄类型"时,叫:"强制类型转换";

         2.强制类型转换:截掉高位,保留低位。其结果可能不可预知;

         3.任何的"数值类型"都可以强制转换;

         4.boolean类型不能转换为其它类型;

9 面试题之变量相加和常量相加的区别

byte b1 = 10;

         byte b2 = 20;

         byte b3 = b1 + b2;//编译错误

         byte b4 = b1 + 20;//编译错误

         byte b5 = 10 + b2;//编译错误

         byte b6 = 10 + 20;//OK的

字符串的相加:

         +符号:如果左右两边是"数值类型",做加法运算;

                      如果左右两边,有一边是"字符串"类型,将做"字符串连接"。返回一个"字符串"

10 算术运算符的基本用法

整数除0:运行时异常;

         整数模0:运行时异常;

         浮点除0:出现Infinity

         浮点模0:出现NaN

11 赋值运算符的基本用法

1.=  2.+=  3.-=     4.*=       5./=  6.%=

基本赋值运算符:顺序:从右至左。整个复制表达式最后会返回这个变量

12 逻辑运算符的基本用法

 

1.&& : 逻辑与(并且):左右两边都为true,结果为:true。有一个为false,结果就为false;

                   2.|| :逻辑或(或者):左右两边有一边为true,结果为:true。

                   3.!  : 非(不是....):!true等于false,!false等于true.

                  位运算符:可用作布尔的判断;它们的结果跟"逻辑与"和"逻辑或"一样的。

                   1.& : 与:

                   2.| : 或

                   3.^ : 异或:两位相同,结果为:false;两位不同,结果为:true

        

13逻辑运算符&&和&的区别

按位&与逻辑&&和按位|与逻辑||的区别:

         1.逻辑&&和逻辑||"具有短路行为";一旦确定整个表达式的结果,将不再继续判断后续表达式;

         2.按位&和按位|"不具有"短路行为";每个表达式都会执行到。但结果与使用逻辑运算符是一样的。

14 关系运算符的基本用法

1.==:判断是否相等:相等返回true,否则返回false;

         2.!:  判断是否不等。不等,返回true,否则返回false;

         3.<:  判断左操作数是否小于右操作数。是:返回true,否则返回false;

         4.>:  判断左操作数是否大于右操作数。是:返回true,否则返回false;

         5.<= :判断左操作数是否小于或等于右操作数。是:返回true,否则返回false;

         6.>= :判断左操作数是否大于或等于右操作数。是:返回true,否则返回false;

         7.instanceof:在面向对象那里说;

posted on 2015-08-06 21:20  林木森  阅读(161)  评论(0编辑  收藏  举报

导航