java基础第2天

来源:互联网 发布:自学编程书籍 编辑:程序博客网 时间:2024/04/28 11:22


1:常量
(1):在程序的运行过程中,其值是不改变的量
(2):常量的分类
A:整数常量 例如:10
B:小数常量 例如:12.5
C:布尔型常量 例如:true,false
D:字符常量  例如:'1','A'
E:字符串常量 例如:"Hello World"
F:空常量 (null常量) 


2:进制
(1)就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,
  就表示某一位置上的数运算时是逢X进一位
(2)java语言中整数的表现形式
A:八进制
**逢八进一
**所能表示的数据有:0-7
**用0开头表示
B:十进制
**逢十进一
**所能表示的数据有:0-9
C:十六进制
**逢十六进一
**所能表示的数据有:0-9,A-F(10-15)
**用0x或者0X开头表示
(3)进制的由来及特点。进制越大,表现形式越短
(4)进制转换
A:其他到十进制的转换
**其他进制包含二进制,八进制,十六进制
**转换规则
***系数
***基数
***权
***先把数据的每一位上的系数乘以对应基数的权次幂,然后相加即可
***练习:1101,046,F4
B:十进制到其他进制的转换
**规则:除基取余,直到商为0,最后将余数反转
**十进制到二进制
***除2取余,直到商为0,最后将余数反转
***十进制13对应的二进制数据是1101
***二进制到十进制的技巧(8421码)
**十进制到八进制
***除8取余,直到商为0,最后将余数反转
***十进制13对应的把进制数据是15

***十进制--二进制--八进制
****首先把十进制转成二进制
****其次把二进制数据每三位组合。左边不够三位用0补位
****然后把每个组合计算成对应的十进制数据
****最后从左到右把数据相连接即可得到八进制
**十进制到十六进制
***除16取余,直到商为0,最后将余数反转
***十进制13对应的把进制数据是D

***十进制--二进制--十六进制
****首先把十进制转成二进制
****其次把二进制数据每四位组合。左边不够四位用0补位
****然后把每个组合计算成对应的十进制数据
****最后从左到右把数据相连接即可得到十六进制


3:有符号数据的表示形式
(1)原码
A:所谓原码就是二进制数的有符号表示法,即最高位为符号位,"0"表示正,
  "1"表示负,其余位表示数值的大小
**举例
***+7 0 0000111
***-7 1 0000111
(2)反码
A:正数的反码和原码相同
**举例
***+7 0 0000111
B:负数的反码是符号位不变,数值为按位取反,就是0变1,1变0
**举例
***-7 1 1111000
(3)补码
A:正数的补码和原码相同
**举例
***+7 0 0000111
B:负数的补码是符号位不变,数值为按位取反,就是0变1,1变0,最后在加1
**负数的补码其实就是反码加1
**举例
***-7 1 1111001


4:变量
(1)在程序的运行过程中,其值在指定范围内变化的值
(2)是内存中一个区域,用于存储数据
(3)变量的定义格式:
A:数据类型 变量名 = 初始化值;
(4)变量在使用的时候
A:第一种,在声明的时候,就初始化值
**数据类型 变量名 = 初始化值;
**举例:byte by = 100; System.out.println(by);
B:第二种 在使用前,赋值
**声明
**赋值
**使用
**举例 byte by2; by2 = 100; System.out.println(by2);
5:数据类型
(1)java语言分为两种数据类型
A:基本数据类型
B:引用数据类型(类,接口,数组)
(2)基本数据类型
A:区别 在内存中分配的空间大小不同,从而导致它表示的数据范围不同
B:4类8种
**整数
***byte 占1个字节  内存中占8个二进制位,一个八位 -128--127 负的2的7次方到正的2的
***short 占2个字节
***int 占4个字节
***long 占8个字节 其后加L或l标识
**浮点数
***float 占4个字节 其后加F或f标识
***double 占8个字节
**字符
***char 占2个字节
**布尔型
***boolean 占一个字节 
***true,false
C:默认情况下:
**整数是int类型
**浮点数是double类型
(4) 定义变量
  定义变量的标准格式 数据类型 变量名 初始化值
    注意,变量在同一范围内,不能重复定义
    变量只在定义的这个范围内,有效

(5) 类型转换
    java程序中要求,进行运算的数据要保持一致
    当运行的数据不一致时,将出现类型转换现象
    转换的原则,是小类型向大型类进行提升
    |--强制类型转换,尽量少做
      格式(需要转成的类型)(转换的数据)
      任何类型和字符串进行加法运算,加号失去了加法的意义
      编程了连接符号,得到的结果还是字符串


(6)数据参与运算
A:整形,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则
**容量小的类型默认转换为容量大的数据类型;数据类型按容量大小排序为:
***byte,short,char->int->long->float->double
***byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型
**容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,
 但可能造成精度降低或溢出;使用时要格外注意。
**有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,
 然后再进行计算。
B:强制转换符
**格式:(数据类型)(要被转换的数据) byte b = (byte)(130);
C:字符型参与运算
**首先会去找对应字符的ASCII码值。然后运算。
D:布尔型参与运算
**不能参与运算
E:字符串参与运算
**它是和参与运算的数据相连接组成了一个新的字符串。

思考:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?


6:运算符
(1)算术运算符 +,-,*,/,%,++,--
A:%
**当左边小于右边:结果是左边
**当左边等于右边:结果是0
**当左边大于右边:结果是余数
**取余的正负号取决于左边
**用途:任意数%2 结果是要么0,要么1。用于切换条件
B:++,--
**递增,递减运算符。就是加1或者减1
**单独存在,放在操作数的前面或者后面,结果一样
**参与运算时:
***放在操作数的前面,先自身加或者减1,然后再参与运算
***放在操作数的后面,先参与运算,然后再自身加或者减1
C:+
**作为数据的符号
**做加法运算
**字符串连接符
(2)赋值运算符
A:=:赋值运算符 把右边的值赋给左边
**举例:int x = 3; 把3赋给int类型变量x
B:+=:加赋值运算符 把左边和右边的和赋给左边
**举例:int x = 3; x+=2;
**+=运算符在给s赋值时,自动完成了强转操作。
(3)比较运算符
A:==,!=,>,<,>=,<=
B:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
(4)逻辑运算符
/*
逻辑与运算符 &

第一个条件    第二个条件     结果
true          truetrue
false         true           false
true          false          false
false         false          false


简单记:同时为true,结果为true。
*/


/*
逻辑或运算符 |

第一个条件    第二个条件     结果
true          truetrue
false         true           true
true          false          true
false         false          false


简单记:同时为false,结果为false。
*/


/*
逻辑异或运算符 ^

第一个条件    第二个条件     结果
true          truefalse
false         true           true
true          false          true
false         false          false


简单记:同时为同一种情况,结果为false。
*/


/*
逻辑非运算符 !

!true  false
!false true
       !!true true
*/


/*
短路与:


&:左边无论什么结果,右边都执行。
&&:左边为false,右边不执行,结果为false。




短路或:
|:左边无论什么结果,右边都执行。
||:左边为true,右边不执行,结果为true。
*/
(5)位运算符
二进制位的运算
    << : 左移运算:移动位数越多,结果越大
         8<<1  8*2的一次方  8<<2 8*2的2次方
    >> : 右移运算:移动的位数越多,结果越小0
         8>>1  8/2的一次方
    >>>: 无论二进制最高位是0还是1 ,都将填补0


    ~: 负数的二进制是,整数取反+1


    ^ : 当一个数,异或一个数2次,结果还是原来这数
(6)三元运算符
A :(条件表达式)?表达式1:表达式2;
**如果条件为true,运算后的结果是表达式1;
**如果条件为false,运算后的结果是表达式2;
B:条件运算符运算完之后一定有一个结果





原创粉丝点击