day02笔记

来源:互联网 发布:爱奇艺vip破解版 mac 编辑:程序博客网 时间:2024/04/30 17:56

2.01_Java语言基础(常量的概述和使用)(掌握)

1:常量(掌握)

    (1)在程序执行的过程中,其值不发生改变的量    (2)分类:        A:字面值常量        B:自定义常量(后面讲)    (3)字面值常量        A:字符串常量 "hello"        B:整数常量  12,23        C:小数常量  12.345        D:字符常量  'a','A','0'        E:布尔常量  true,false        F:空常量   null(后面讲)    (4)在Java中针对整数常量提供了四种表现形式        A:二进制   由0,1组成。以0b开头。        B:八进制   由0,1,...7组成。以0开头。        C:十进制   由0,1,...9组成。整数默认是十进制。        D:十六进制  由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。

2:进制转换(了解)

           (1)其他进制到十进制        系数:就是每一个位上的数值        基数:x进制的基数就是x        权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。                结果:系数*基数^权次幂之和。    (2)十进制到其他进制        除基取余,直到商为0,余数反转。    (3)进制转换的快速转换法        A:十进制和二进制间的转换            8421码。        B:二进制到八进制,十六进制的转换

   3:变量(掌握)

    (1)在程序的执行过程中,其值在某个范围内可以发生改变的量    (2)变量的定义格式:        A:数据类型 变量名 = 初始化值;        B:数据类型 变量名;          变量名 = 初始化值;

   4:数据类型(掌握)

    (1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。    (2)分类:        A:基本数据类型:4类8种        B:引用数据类型(后面讲)    (3)基本数据类型        A:整数            占用字节数            byte            1            short           2            int             4            long            8        B:浮点数            float           4            double          8        C:字符            char            2        D:布尔            boolean         1,java没有明确给定                    注意:            整数默认是int类型,浮点数默认是double。                        长整数(long)要加L或者l。            单精度的浮点数(float)要加F或者f。

   5:数据类型转换(掌握)

    (1)boolean类型不参与转换    (2)默认转换        A:从小到大        B:byte,short,char -- int -- long -- float -- double        C:byte,short,char之间不相互转换,直接转成int类型参与运算。    (3)强制转换        A:从大到小        B:可能会有精度的损失,一般不建议这样使用。        C:格式:            目标数据类型 变量名 = (目标数据类型) (被转换的数据);    (4)思考题和面试题:        A:下面两种方式有区别吗?            float f1 = 12.345f;            float f2 = (float)12.345;        B:下面的程序有问题吗,如果有,在哪里呢?            byte b1 = 3;            byte b2 = 4;            byte b3 = b1 + b2;            byte b4 = 3 + 4;        C:下面的操作结果是什么呢?            byte b = (byte)130;        D:字符参与运算            是查找ASCII里面的值            'a'     97            'A'     65            '0'     48                        System.out.println('a');            System.out.println('a' + 1);        E:字符串参与运算            这里其实是字符串的连接                        System.out.println("hello"+'a'+1);            System.out.println('a'+1+"hello");            System.out.println("5+5="+5+5);            System.out.println(5+5+"=5+5");

   6:运算符(掌握)

    (1)算术运算符        A:+,-,*,/,%,++,--        B:+的用法            a:加法            b:正号            c:字符串连接符                System.out.println("a = " + a + ",b = " + b + ",c = " + c);        C:/和%的区别            数据做除法操作的时候,/取得是商,%取得是余数        D:++和--的用法            a:他们的作用是自增或者自减            b:使用                **单独使用                    放在操作数据的前面和后面效果一样。                    a++或者++a效果一样。                **参与操作使用                    放在操作数的前面:先自增或者自减,再参与操作                        int a = 10;                        int b = ++a;                    放在操作数的后面:先参与操作,再自增或者自减                        int a = 10;                        int b = a++;    (2)赋值运算符        A:=,+=,-=,*=,/=,%=等        B:=叫做赋值运算符,也是最基本的赋值运算符            int x = 10; 把10赋值给int类型的变量x。        C:扩展的赋值运算符的特点            隐含了自动强制转换。                        面试题:                short s = 1;                s = s + 1;                                short s = 1;                s += 1; //s = (short)(s + 1);                请问上面的代码哪个有问题?    (3)比较运算符        A:==,!=,>,>=,<,<=        B:无论运算符两端简单还是复杂最终结果是boolean类型。        C:千万不要把==写成了=   

   1,常量和进制

    (1),常量(掌握)        a:字面值常量            字符常量:用单引号括起来的单个字符,单个数字,单个符号            字符串常量:用双引号括起来的内容            整数常量:            小数常量:            布尔常量:true和false            空常量:null        b:自定义常量(后面讲)    (2),进制(掌握)        不同表现形式            二进制:                组成:0和1。                表示:以0b开头            八进制:                组成:0到7                表示:以0开头            十六进制:                组成:0到9,a到f        任意进制到十进制的转换               12345            系数:每一位上的数字            基数:x进制,基数就是x            权:从右开始编码,从0开始                        结论:系数乘以基数的权次幂        十进制到任意进制的转换            结论:除积倒取余        8421快速转换                    原码,反码,补码            原码:二进制的表现形式,最高位是符号位,其余的是数值位            反码:正数的反码和原码一样。负数的反码在原码的基础上,符号位不变,数值位按位取反            补码:正数的反码和原码一样。负数的补码在反码的基础上,符号位不变,数值位+1   2,变量    在程序执行过程中,其值在一定范围内可以发生变化    格式:        数据类型 变量名 = 初始化值;        数据类型 变量名;   3,数据类型    基本数据类型(4类8种)        整数类型            byte    一个字节            short   两个字节            int 四个字节            long    八个字节        浮点数类型            float   四个字节            double  八个字节        字符类型            char    两个字节        布尔类型            boolean                true                false           注意:            a:整数默认的是int类型,如果要定义long类型,在数值后加l或者L,建议用大写的            b:浮点类型默认的是double,如果要定义float类型,在数值后加f或者F,建议用大写的           int a = 100;        byte b = 8888888;        int a;        a = 100;            变量的定义            注意事项:                a:同一个作用域不能定义相同的变量名                b:在使用变量之前必须赋值                c:可以在一条语句中定义多个变量       引用数据类型(面向对象讲)   4,数据类型转换    隐式转换        大数据类型和小数据类型进行运算时,会将小的数据类型隐式的提升为大的数据类型    强制转换        将大的数据类型赋给小的数据类型的变量,这样就得强制类型转换           格式:目标数据类型 变量名 = (目标数据类型)要转换的数据;       byte,short,char < int < long < float < double           4,运算符    a:算术运算符        基本算术运算符            + - * / %        在java中“+”的用法:            (1)表示正数            (2)做加法运算            (3)字符串连接        扩展算术运算符            ++ --            a:单独使用                ++或者--放在变量的前面或者后面,结果都是一样的            b:参与运算时                ++或者--放在变量的前面,先做自增一或者自减一,然后再参与运算                ++或者--放在变量的后面,先参与运算,然后再自增一或者自减一    b:赋值运算符        基本赋值运算符:=        扩展赋值运算符:+= -= *= /= %=    c:关系运算符(比较运算符)        == != > >= < <=* A:什么是常量    * 在程序执行的过程中其值不可以发生改变 * B:Java中常量的分类    * 字面值常量    * 自定义常量(面向对象部分讲) * C:字面值常量的分类    * 字符串常量 用双引号括起来的内容    * 整数常量      所有整数    * 小数常量      所有小数    * 字符常量      用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号    * 布尔常量      较为特殊,只有true和false    * 空常量           null(数组部分讲解)* D:案例演示    * 用输出语句输出各种常量。null不演示### 02.02_Java语言基础(进制概述和二,八,十六进制图解)(了解)* A:什么是进制    * 进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。    * 例如一周有七天,七进制,一年有十二个月,十二进制* B:十进制的由来     * 十进制的由来是因为人类有十个手指 * C:二进制的由来    * 其实二进制来源与中国,请看史料记载    * 18世纪德国数理哲学大师莱布尼兹从他的传教士朋友鲍威特寄给他的拉丁文译本《易经》中,读到了八卦的组成结构,惊奇地发现其基本素数(0)(1),即《易经》的阴爻yao- -和__阳爻,其进位制就是二进制,并认为这是世界上数学进制中最先进的。20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制。它不但证明了莱布尼兹的原理是正确的,同时也证明了《易经》数理学是很了不起的。* D:八进制的由来    * 任何数据在计算机中都是以二进制的形式存在的。二进制早期由电信号开关演变而来。一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。     * 所以就想把一大串缩短点,将二进制中的三位用一位表示。这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。 * E:十六进制的由来    * 但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,四个二进制位最大是15,这就是十六进制。* F:不同进制表现同一个数据的形式特点    * 进制越大,表现形式越短

02.03_Java语言基础(不同进制数据的表现形式)(掌握)

  • A:二进制的数据表现形式
    • 由0,1组成。以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)
  • B:八进制的数据表现形式
    • 由0,1,…7组成。以0开头
  • C:十进制的数据表现形式
    • 由0,1,…9组成。整数默认是十进制的
  • D:十六进制的数据表现形式
    • 由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头
  • E:案例演示
    • 输出不同进制表现100的数据。
    • 0b100
    • 0100
    • 100
    • 0x100

02.04_Java语言基础(任意进制到十进制的转换图解)(了解)

  • A:任意进制到十进制的转换原理
    • 系数:就是每一位上的数据。
    • 基数:X进制,基数就是X。
    • 权:在右边,从0开始编号,对应位上的编号即为该位的权。
    • 结果:把系数*基数的权次幂相加即可。
  • B:画图练习
    • 二进制–十进制
    • 八进制–十进制
    • 十六进制–十进制

02.05_Java语言基础(十进制到任意进制的转换图解)(了解)

  • A:十进制到任意进制的转换原理
    • 除积倒取余
  • B:画图练习
    • 十进制–二进制
    • 十进制–八进制
    • 十进制–十六进制

02.06_Java语言基础(快速的进制转换法)(了解)

  • A:8421码及特点
    • 8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。
  • B:通过8421码的方式进行二进制和十进制的相互转换
  • C:二进制到八进制的简易方式
  • D:二进制到十六进制的简易方式

02.07_Java语言基础(原码反码补码)(了解)

  • A:为什么要学习原码反码补码?
    • 后面要学习强制类型转换,如果不知道有原反补会看不懂结果
  • B:有符号数据表示法的几种方式
    • 原码
      • 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
      • 通过一个字节,也就是8个二进制位表示+7和-7
      • 0(符号位) 0000111
      • 1(符号位) 0000111
    • 反码
      • 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位不变。
    • 补码
      • 正数的补码与其原码相同;负数的补码是在其反码的末位加1,但符号位不变。

02.08_Java语言基础(原码反码补码的练习)(了解)

  • A:已知原码求补码
    • 0b10110100
  • B:已知补码求原码
    • 0b11101110

02.09_Java语言基础(变量的概述及格式)(掌握)

  • A:什么是变量
    • 在程序执行的过程中,在某个范围内其值可以发生改变的量
  • B:变量的定义格式
    • 数据类型 变量名 = 变量值;
  • C:为什么要定义变量
    • 用来不断的存放同一类型的常量,并可以重复使用

02.10_Java语言基础(数据类型的概述和分类)(掌握)

  • A:为什么有数据类型
    • Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
  • B:Java中数据类型的分类
    • 基本数据类型
    • 引用数据类型
      • 面向对象部分讲解
  • C:基本数据类型分类(4类8种)
    • 整数型
      • byte 占一个字节 -128到127
      • short 占两个字 -2^15~2^15-1
      • int 占四个字节 -2^31~2^31-1
      • long 占八个字节 -2^63~2^63-1
    • 浮点型
      • float 占4个字节 -3.403E38~3.403E38
      • double 占8个字节-1.798E308~1.798E308
    • 字符型
      • char 占两个字节 0~65535
    • 布尔型
      • boolean
        • boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小

02.11_Java语言基础(定义不同数据类型的变量)(掌握)

  • A:案例演示
    • 定义不同基本数据类型的变量,并输出
    • 赋值时候注意float类型,long类型

02.12_Java语言基础(使用变量的注意事项)(掌握)

  • A:案例演示
    • a:作用域问题
      • 同一个区域不能使用相同的变量名
    • b:初始化值问题
      • 局部变量在使用之前必须赋值
    • c:一条语句可以定义几个变量
      • int a,b,c…;

02.13_Java语言基础(数据类型转换之隐式转换)(掌握)

  • A:案例演示
    • a:int + int
    • b:byte + int
  • B:Java中的默认转换规则
    • 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
  • C:画图解释byte+int类型的问题

02.14_Java语言基础(数据类型转换之强制转换)(掌握)

  • A:强制转换问题
    • int a = 10; * byte b = 20;
    • b = a + b;
  • B:强制转换的格式
    • b = (byte)(a + b);
  • C:强制转换的注意事项
    • 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同

02.15_Java语言基础(面试题之变量相加和常量相加的区别)(掌握)

  • A:案例演示
    • 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
    • byte b1 = 3; 3默认为int类型,在byte范围内,java有常量优化机制直接赋值
    • byte b2 = 4; 不在范围内的会报错编译不通过,就要强转,但可能会丢失精度,不是想要的结果,最好不要强转。
    • byte b3 = b1 + b2; 需要强转成byte
      • 从两方面去回答这个题
      • b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
      • byte类型的变量在进行运算的时候,会自动类型提升为int类型
    • byte b4 = 3 + 4;
      • 3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了

02.16_Java语言基础(long与float的取值范围谁大谁小)(了解)

  • 进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的

    • byte,short,char – int – long – float – double

    • long: 8个字节

    • float:4个字节
    • IEEE754
    • 4个字节是32个二进制位
    • 1位是符号位
    • 8位是指数位
    • 00000000 11111111
    • 0到255
    • 1到254
    • -126到127
    • 23位是尾数位
    • 每个指数位减去127

    • A:它们底层的存储结构不同。

    • B:float表示的数据范围比long的范围要大
      • long:2^63-1
      • float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

02.17_Java语言基础(字符和字符串参与运算)(掌握)

  • A:案例演示

    • System.out.println(‘a’);
    • System.out.println(‘a’+1);

    • 通过看结果知道’a’的值是多少,由此引出ASCII码表

  • B:ASCII码表的概述
    • 记住三个值:
      • ’0’ 48
      • ‘A’ 65
      • ‘a’ 97
  • C:案例演示
    • System.out.println(“hello”+’a’+1);
    • System.out.println(‘a’+1+”hello”);
  • D:+在有字符串参与中被称为字符串连接符
    • System.out.println(“5+5=”+5+5);
    • System.out.println(5+5+”=5+5”);

02.18_Java语言基础(char数据类型)(掌握)

  • A:char c = 97; 0到65535
  • B:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
    • 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节
    • 所以,Java中的字符可以存储一个中文汉字

02.19_Java语言基础(算术运算符的基本用法)(掌握)

  • A:什么是运算符
    • 就是对常量和变量进行操作的符号。
  • B:运算符的分类
    • 算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符
  • C:算数运算符有哪些
    • +,-,*,/,%,++,–
  • D:注意事项:
    • a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
    • b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
    • c:/获取的是除法操作的商,%获取的是除法操作的余数
    • %运算符
      • 当左边的绝对值小于右边绝对值时,结果是左边
      • 当左边的绝对值等于右边或是右边的倍数时,结果是0
      • 当左边的绝对值大于右边绝对值时,结果是余数
      • %运算符结果的符号只和左边有关系,与右边无关
      • 任何一个正整数%2结果不是0就是1可以用来当作切换条件

02.20_Java语言基础(算术运算符++和–的用法)(掌握)

  • A:++,–运算符的作用
    • 自加(++)自减(–)运算
    • ++:自加。对原有的数据进行+1
    • –:自减。对原有的数据进行-1
  • B:案例演示
    • a:单独使用:
      • 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
    • b:参与运算使用:
      • 放在操作数的前面,先自增或者自减,然后再参与运算。
      • 放在操作数的后面,先参与运算,再自增或者自减。

02.21_Java语言基础(算术运算符++和–的练习)(掌握)

  • A:案例演示

    • 请分别计算出a,b,c的值?
    • int a = 10;int b = 10;int c = 10;a = b++;        c = --a;            b = ++a;        a = c--;            
  • B:案例演示

    • 请分别计算出x,y的值?

      int x = 4;int y = (x++)+(++x)+(x*10);
  • C:面试题
    • byte b = 10;
    • b++;
    • b = b + 1;
    • 问哪句会报错,为什么

02.22_Java语言基础(赋值运算符的基本用法)(掌握)

  • A:赋值运算符有哪些

    • a:基本的赋值运算符:=

      • 把=右边的数据赋值给左边。
    • b:扩展的赋值运算符:+=,-=,*=,/=,%=

      • += 把左边和右边做加法,然后赋值给左边。

02.23_Java语言基础(赋值运算符的面试题)(掌握)

  • A:案例演示
    • 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
    • short s=1;s = s+1;
    • short s=1;s+=1;

02.24_Java语言基础(关系运算符的基本用法及其注意事项)(掌握)

  • A:关系运算符有哪些(比较运算符,条件运算符)
    • ==,!=,>,>=,<,<=
  • 注意事项:

    • 无论你的操作是简单还是复杂,结果是boolean类型。

    • “==”不能写成”=”。

02.25_day02总结

  • 把今天的知识点总结一遍。