A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 槐树向北 初级黑马   /  2016-5-29 21:20  /  854 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#5月29第三天
##上课的第二天.Day02.Java基础之核心基础
###常量
1. 常量是其值不能改变的量
    1. 整数常量,所有整数
    2. 字符串常量,用双引号扩起来的内容.
    3. 小数常量,所有小数.
    4. 字符常量,单引号扩起来的内容,里面只能放单个字符,单个数字.
    5. 布尔常量,只有ture 和 false 比较特殊.
    6. 空常量,null ,数组部分会讲到.
###进制
1. 进制,就是进位制.人为规定的进位方法.
2. 十进制由来,数手指头的起源.所以十进制就在人类大脑里产生了.
3. 二进制由来,中国的易经里说道阴爻和阳爻(yaó),莱布尼兹发现这是宇宙最强进位制.
###进制表现
1. 二进制,0b或0B开头,1.7版本之后的java能表现二进制了.
    1. 二进制用 0,1两个数值标识
2. 八进制,0开头.
    1. 用0,1,2,3,4,5,6,7共八个数值标示.
3. 十进制表现形式,整数默认十进制.
    1. 用0,1,2,3,4,5,6,7,8,9共十个数值表示.
4. 十六进制,0x或0X开头.
    1. 用0,1,2,3,4,5,6,7,8,9,A.B.C.D.E.F共十六的数值表示.
###任意进制转到十进制
1. 数制规则.
    1. 系数,每个数位上的数值.
    2. 基数,进制数,如:十进制基数是10 ,八进制基数是8.
    3. 权,从右往左从零开始加权每次加1.
    4. 结果:各个系数*基数的权次幂的累加和.
###十进制转换到任意进制
> 基本原则: **除基倒取余**

1. 十进制转二进制:除2取余倒排.
2. 十进制转八进制:除8取余倒排.
3. 十进制转十六进制:除16取余倒排.
    1. 63转二进制 63/2-31-1 31/2-15-1 15/2-7-1 7/2-3-1 3/2-1-1 1/2-0-1 111111
    2. 63转八进制 63/8-7-7 7/8-0-7 77
    3. 63转十六进制 63/16-3-f 3/16-0-3  3F
###进制快速转换法
> **先将十进制初二取余倒排转换为二进制**

1. 二进制转到十进制,把各位有1的对应十进制数相加.
2. 二进制转到八进制,三位二进制一组,转换成一位八进制.
3. 二进制转到十六进制,四位二进制一组,转成一位十六进制.
###原码,反码,补码
1. 原码:原始二进制码.
2. 反码:正数反码何其原码相同,负数反码对其原码逐位取反,符号位除外
3. 符号位,0表示正,1表示负.在数码的左起第一位.
4. 补码:正数补码与其原码相同,负数补码是其反码的末位加1.
*注意:我有个问题就是为什么要使用补码,是为了负数的运算都能变成加法运算码?*
###变量
1. 变量声明格式: 数据类型 变量名=变量值.
2. 变量的定义,在程序执行的过程中,在某个范围内,其值可以发生改变的量称之为变量.
3. 为什么要有变量?用来不断的存放同一类型的数据.重复使用.
###数据类型
1. 为什么有数据类型,
    1. java是强类型语言,为每一种数据都指定数据类型.
    2. 根据不同的数据类型在内存分配不同大小的内存空间.
2. 基本数据类型
    1. 整数型
        1. byte 1byte -128~127
        2. short 2byte-2^15~2^15-1
        3. int 4byte -2^31~2^31-1(整数默认是int型)
        4. long 8byte(在数值后加L或l标识)
    2. 浮点型
        1. float 4byte(数值后加F或f标识)
        2. double 8byte(浮点数默认double型,D或d标识)
    3. boolean型
        1. ture 1byte
        2. false 1byte
    4. 字符型
        1. char 2byte
3. 应用数据类型
###变量注意问题
1. 作用域问题,同一的作用域中不能使用相同变量名命名两个或以上变量.
2. 初始化问题,局部变量在使用之前必须初始化.
3. 一条语句可以同时定义几个变量.
###数据类型转换之隐式转换(自动类型提升)
**第一弹请看以下代码**

            int x=3;
            byte b=4;
            x=x+b;
            System.out.println(x);

**现在输出为7**

1. 当底位类型的数据类型提升到高位数据类型,从小到大的过程,在前面补零.
**第二弹请看以下代码**

            int x=3;
            byte b=4;
            b=x+b;
            System.out.println(b);
**编译时报错提示可能损失精度**

1. 我们把x+b算出的int型数据复制给byte型的b.这样真的会损失精度呀.哈哈,程序果然不骗人.
###数据类型转换之强制转换
1. 在第二弹中,我们发现了损失精度的报错.这时候我们可以进行强制类型转换,我们强制转换成特定类型.
2. 强制转换如果是大变小会有损失精度带来的危险.
###详解byte类型运算过程中的细节.
- ***变量相加***

**请看以下代码,是否有问题,如有问题请指出**

        byte b1=3;
        byte b2=4;
        byte b3=b1+b2;
        System.out.print(b3);
**从两方面,1,byte与byte (short,char)进行运算,的时候为了保存精度,都会提升到int型运算.2,b1和b2的两个变量,变量存储的值是变化的,在编译的时候无法判断具体的值.**

- ***常量相加***

**java编译器有常量优化制,所以byte b4=3+4;就不会报错.因为优化了3加4的结果可以使用byte型表示.**

###long和float也会打架吗

        float f=12.3f;
        long x=12345;
        x=(long)f;    //强制类型转换
        System.out.println(x);
        /*float占4个字节
        IEEE 754
        首位代表符号位
        8位代表指数位
        00000000 - 11111111
        0 - 255
        0代表0
        255代表无穷大
        1-254
        -126 - 127
        23位代表尾数位
        最后总结float比long大.        
        */

###字符和字符串参与运算

任何数据类型的值用+号和字符串连接时都会变成新的字符串.

###运算符
1. 算术运算符
    - +,-,*,/,%,++,--
    - +号有三种作用,正号,做加法运算,字符串连接符.
    - 整数相除只能的到整数,如果想的到小数,必须把数据转换为浮点类型.
    - /获取的是除法操作的商 %获取的是除法操作的余数
    - %运算符很有意思.
2. 赋值运算符
3. 比较运算符
4. 逻辑运算符
5. 位运算符
6. 三目运算符
####++,--运算符的细节.
++在变量前后的时候结果都是变量自增1,但是++a和a++两个表达式的值分别是a自增后的值和a自增前的值.
###比较运算符(关系运算符)
==,!=,<=,>=

1 个回复

倒序浏览
无形装逼最为致命
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马