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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© JYcainiao 中级黑马   /  2015-10-16 21:15  /  1197 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天是第一天课,课程比较简单,做了一些笔记,虽然作用不大,但也是为了以后回顾起来方便,希望版主不要删掉我的帖子啊  这都是我上课自己一个字一个字打出来的   记录我自己的学习路程



一、计算机
        1、计算机 = 硬件 + 软件
        2、软件 = 数据 + 指令
        3、计算机语言
                A:机器语言:0和1
                B:汇编语言
                C:高级语言:C C++ C# JAVA
        4、人机交互
                A:命令行方式
                B:图形图像化方式
        5、快捷键
                win + D        快速显示桌面
                Alt + Shift + N        新建文件夹
        6、常用DOS命令【掌握】
                d:回车        盘符切换
                dir                                //列出当前目录下的文件及文件夹
                md(make directory)                //创建目录
                rd(remove directory)                //删除目录
                cd(change directory)                //进入制定文件夹
                .                                //当前目录
                ..                                //上一级目录
                cd\                                //退回到当前根目录       
                del(delete file)                //删除文件
                exit                                //退出dos命令行
                cls(clear screen)                //清屏
                /                                //正斜杠
                \                                //反斜杠

                notepad                                //创建文件
                       
                删除带内容的文件夹
                        rd /s 文件夹名称        // 删除时询问一下
                        rd /s /q 文件夹名称        //强制删除
二、Java语言概述
        1、java之父        詹姆斯·高斯林
                Sun公司开发
                Sun被Oracle公司收购       
        2、平台版本
                JavaSE        //标准版   winForm 微软开发桌面程序
                JavaME        //微型版
                JavaEE        //企业版
        3、java特点
                A:开源
                B:跨平台
        4、
                JVM                java virtual machine java虚拟机
                JRE                Java Runtime Environment java运行环境
                JDK                Java Development KIT java开发工具包
                JDK>JRE>JVM
                JDK中包含JRE        因为开发后要运行
        5、跨平台原理
                Java程序是运行在JVM里面的。编写的Java程序可以借助对应平台版本的JVM在不同系统平台上运行

三、HelloWorld案例和环境变量配置
        class HelloWorld {                                //左大括号跟上一排 前面                                                          加空格
        public static void main(String[] args) {
                System.out.println("Hello,World");        //碰到左大括号下一拍要缩                                                  进   用Tab键
        }
}
        编译:javac HelloWorld.java--------> HelloWorld.class
        运行:java HelloWorld

        2.常见错误
                A:文件扩展名
                B:关键字大小写问题
                C:大小括号好成对写
                D:中英文标点符号问题

        3.path的环境变量
                A:作用:在任何路径下都可以访问jdk的命令
                B:怎么配置
                ①计算机右键-----属性-----高级系统选项----高级----环境变量--系统环境变量---path--编辑---在最前面加上bin的路径,后面加个;


                ②新建

                JAVA_HOME   ---  JDK根目录
                path       ---   %JAVA_HOME%\bin;……

四.Java语言的书写格式(约定俗成)
        A:大括号要对齐,并且成对写
        B:左大括号前面要有空格  
        C:遇到左大括号要缩进 用Tab键
        D:方法和程序块之间加空行让程序看起来清晰
        E:并排续剧之间要加空格,例如for语句
        F:运算符两侧加空格

五、注释、关键字、标识符
        1、注释
                用来解释说明程序
                //单行注释可以用来嵌套
                /*
                多行注释不允许嵌套
                */
                /**
                文档注释
                */

        2、关键字
                描述:被Java语言赋予特定含义的单词
                特点:组成关键字的字母全部小写
                关键字注意事项
                        A:goto和const作为保留字存在,目前并不适用
                        B:类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记,非常直观
        3、标识符
                概述:就是给类,接口,方法,变量等起名字时使用的字符序列
                规则:
                        A:英文大小写字母
                        B:数字字符
                        C:$和_
                注意事项:
                        A:不能已数字开头
                        B:不能是Java中的关键字
                        C:区分大小写
        4、标识符常见命名规则       
                包(其实就是文件夹,用于解决相同类名的问题)
                        报名要求全部小写,一般都是公司的域名倒着写
                        例如:        www.heima.com
                                com.heima.包的作用
                类或者接口
                        如果是一个单词,要求首字母大写,如果是多个单词,要求每个单词首字母大写(驼峰命名)
                        例如:        DemoStudent
                方法和变量
                        如果是一个单词,每个字母都小写,如果是多个单词,从第二个单词开始首字母大写
                        例如:        getName()  
                常量
                        如果是一个单词,所有字母大写,如果是多个单词,也是所有字母大写,但是用下划线分开。
                        例如:        MAX
                                MAX_NUMBER

5 个回复

倒序浏览

        1、常量
                ①在程序的运行过程中,其值不可以发生改变的量;
                ②字面值常量
                        A:字符串常量                用双引号括起来的内容
                        B:整数常量                所有整数         
                        C:小数常量                所有小数
                        D:字符常量                用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号
                        E:布尔型常量                比较特殊,只有true和false
                        E:空常量                        null(数组部分讲解)
                ③自定义常量(面向对象)

        2、进制概述
                ①什么是进制
                        就是进制位,是人们规定的一种进位方法。对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制就是逢八进一,十进制就是逢十进一,十六进制就是逢十六进一。
                        例如一周有七天,七进制,一年有十二个月,十二进制
                ②十进制的由来
                        十进制的由来是因为人类有是个手指
                ③二进制的由来
                        其实二进制来源于中国,请看史料记载
                ④八进制的由来
                ⑤十六进制的由来
                ⑥不同进制表现同一个数据的形式特点
                       
        3、不同进制的表现形式
                ①二进制的数据表现形式
                        由0,1组成,以0b(b可以大写也可以小写)开头
                ②八进制的数据表现形式
                        由0-7组成,以0开头
                ③十进制的数据表现形式
                        由0-9组成。整数默认是十进制的。
                ④十六进制额数据表现形式
                        由0-9和a-f(大小写均可)组成,以0x开头
                例如:100的不同进制表现
                        二进制:         0b1100100
                        八进制:         0144
                        十六进制:0x64
                        十进制:         100       
        4、进制的转换
                任意进制到十进制
                        系数:每一位上的数据
                        基数:x进制,基数就是x
                        权:在右边,从0开始编号,对应位上的编号即为该位的权。
                        结果:把系数 * 基数的权次幂相加即可
               
                十进制到任意进制的转换原来
                        除基倒取余    除以基数得到余数  倒着取余数  就是该进制的表现形式
        5、快速的进制转换法
                ①8421码及特点
                        8421码是中国大陆的叫法,8412码是BCD代码中最常见的一种。在这种编码方式中每一位二进制码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码;
                        1   1   1   1   1   1   1   1
                       128  64  32  16   8   4   2   1
               
               
                ②通过8421码的方式进行二进制和十进制的相互转换
                ③二进制到八进制的简易方式
                        二进制从右开始,每三位对应一个八进制数的位,不足补0
                ④二进制到十六进制的简易方式
                        二进制从右开始,每四位对应一个十六进制数的位,不足补0
                       

        6、原码  反码  补码【计算机在对数据进行存储和运算的时候,都是以补码额形式操作的。】
                ①为什么要学习原码反码补码?
                        后面要学习强制类型转换,如果不知道有元反补会看不懂结果。
                ②有符号数据表示法的几种方式
                        原码
                                就是二进制定点表示法,即最高位符号位,“0”表示正“1”表示负,其余位表示数值的大小
                                通过一个字节,也就是8个二进制位表示+7和-7
                                0(符号位) 000 0111        +7原码
                                1(符号位) 000 0111        -7原码
                       
                        反码
                                正数的反码与其原码相同;负数的反码是对其反码逐位取反,但符号位除外。
                                0(符号位) 000 0111        +7反码
                                1(符号位) 111 1000        -7反码
                       
                        补码
                                正数的补码与其原码相同;负数的补码是在其反码的末位加+
                                0(符号位) 000 0111        +7补码
                                1(符号位) 111 1001        +7补码
                                          正数         正数的元反补都一样             负数  负数的元反码有区别
                                           +7                                      -7
                                原码   0 000 0111                         1 000 0111   原码和对应的正数最高位不一样 为1
                                反码   0 000 0111                         1 111 1000   反码最高位不变  其余数值位取反
                                补码   0 000 0111                         1 111 1001   补码在原码的基础上末位+1

        7、变量的概述及格式
                ①什么是变量?
                        在程序执行的过程中,其值在指定范围内可以发生改变的量
                ②变量的定义格式
                        ⑴数据类型 变量名 = 初始化值;;
                        ⑵数据类型 变量名;
                        变量名 = 初始化值;
                ③为什么要定义变量
                        用来不断的存放同一类型的常量,并可以重复使用。

        8、数据类型的概述和分类
                ①为什么有数据类型
                        java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
                ②java中数据类型的分类
                        A:有基本数据类型和引用数据类型
                                a、基本数据类型(4类八种)
                                        ⑴整数型                  占用内存        大小范围
                                                byte           1个字节        -128~127
                                                short           2个字节        -2^15~2^15-1
                                                int           4个字节        -2^31~2~31-1
                                                long           8个字节        -2^63~2^63-1 (如果long类型要加L进行标识,最好加L,因为小写l很像数字1)
                                        ⑵浮点型
                                                float           4个字节        -3.403E38~3.40E38        E是10的基数  后面的308是次幂
                                                double           8个字节        -1.798E308~1.798E308        (小数默认是double类型的,float类型需要在数据后面加f)
                                        ⑶字符型
                                                char           2个字节        0~65535   可以存储一个汉字,因为汉字也是两个字节
                                        ⑷布尔型
                                                boolean           1个字节        true,false
                                       
                                        ⑸注意:         整数,默认类型是int,如果要定义long类型时,最好在后面加个大L标识,防止定义数值大于int造成错误。
                                                 小数,默认类型是double,如果要定义float类型时,必须在定义数值后面加个f标识。
                       
                                       

                        引用数据类型(接口,)
                                面向对象部分讲解
回复 使用道具 举报
9、数据类型转换
                隐式转换(从小到大会自动转换)
                        当小的数据类型和大的数据类型进行运算时,小的数据类型会自动提升为大的数据类型,这就是隐式转换
                        byte,short,char --> int --> long --> float --> double
               
                强制转换(从大到小须强制转换)
                        当要把大的数据类型赋值给小的数据类型是,需要加上强转符号-->()括号里面写小的数据类型。

                【注意:byte,short,char之间不能进行隐式转换,因为他们进行运算时,都是自动提升为int类型进行运算的。】

        10、面试题
                byte b1 = 3;
                byte b2 = 4;
                byte b3 = b1 + b2;        //编译出错,可能损失精度;
                byte b4 = 3 + 4;        //编译通过,运行b4 = 7;

                原因:        byte b3 = b2 + b1;
                        A:【byte与byte、short、char进行运算的时候,都会自动提升为int类型进行运算】,两个int类型的变量相加,结果还是int了性,把大的int类型赋值给小的byte,可能损失精度。
                        B:b1和b2是两个变量,编译器是不知道变量里面的具体数值的,两个byte类型的变量相加,其结果有可能超出byte范围,所以有可能会损失精度。
                       
                        byte b4 = 3 + 4;
                        java有常量优化机制。3和4是两个整数常量,编译器在编译的时候,就已经把3+4的结果7算出来了,然后它再判断7在不在byte 的取值范围内,所以不报错。
                                               
                字符串和数据类型的运算
                        任何数据类型用 + 与字符串相连接都会产生新的字符串,这里的 + 是连接符。
                        打印结果加()是提升()里面的运算顺序。
               
                ASCII码表
                        'a' = 97
                        'A' = 65
                        '0' = 48
        11、运算符
                ①什么是运算符?
                        就是对常量和变量进行操作的符号
                ②运算符的分类
                        算术运算符
                        赋值运算符
                        关系运算符
                        逻辑运算符
                        位运算符
                        三元运算符
                ③算数运算符有那些?
                        “+,-,*,/,%,++,--”
                        【注意事项】:
                                ⑴+ 在java中有三种作用,代表正号,做加法运算,字符串的连接符。
                                ⑵整数相除只能得到整数,如果想要得到小数,必须把数据变化为浮点数类型。(只变化一个就可以,另一个会自动提升)
                                ⑶/运算符获取的是除法操作的商,%获取的是除法操作的余数
                                ⑷%运算符
                                        a.当左边的绝对值小于右边的绝对值时,结果是左边
                                        b.当左边的绝对值等于右边或是右边的倍数时,结果为0
                                        c.当左边的绝对值大雨右边的绝对值是,结果是余数
                                        d.%运算符结果的符号只和左边有关系,与右边无关
                                        e.任何一个正整数%2的结果不是0就是1可以用来当作切换条件。
                                ⑸++  --  运算符(隐含有强制类型转换)
                                        A.单独只用
                                                放在操作数的前面和后面结果一样。(这种用法是我们比较常见的。)
                                        B.参与运算使用
                                                a.放在操作数的前面(左边),先自增或者自减,然后再参与运算。
                                                b.放在操作数的后面(右边),先参与运算,再自增或者自减。


                                ++    int x = 5;
                                      int y = x++;
                                      System.out.println(x+","+y);
                                第一步,运行x  ,值没变化;  第二步  运行 x++, x自增1  x=6;第三步  把第一步的值赋给y, y=5 ;


                                ++ int x = 5;
                                        x = x++;

                                第一步, 运行x  ,x值没变化;  第二步,运行x++  x自增1  x=6; 第三步  把第一步的值赋给x,  x= 5
                               
                               
                               
                               
                                ++    int x = 5;
                                      int y = x++;
                                      System.out.println(x+","+y);

                                      可以这样理解
                                        临时存储变量temp

                                          y = x++等同于   先创建一个临时存储变量temp,将x的值赋给temp  temp = x = 5;   然后x自增,x=6;然后在拿着临时存储变量temp里的值 赋给y   y = temp = 5




                ④赋值运算符
                        基本的赋值运算符:=                        把右边的值赋给左边(左边必须是变量)
                       
                        扩展的赋值运算符:+= -= *= /= %=                把左右两边的值进行扩展运算,再赋值给左边(左边必须是变量)
                                        特点: 扩展的赋值运算符本身含有强制类型转换
                ⑤关系运算符(比较运算符,条件运算符)
                        ==,!=,>,<,>=,<=
                        【注意事项】:无论操作是简单还是复杂,结果都是boolean类型
                                        ==不能写成=   前面是比较运算符  后面是赋值运算符
回复 使用道具 举报
一、   java中的运算符
        算术运算符
               





        逻辑运算符
                &逻辑与 |逻辑或 ^逻辑异或 !逻辑非
                & 两边都为true时,结果为true;只要有一边结果为false,结果就为false【遇false则fasle】
                | 只要有一边为true 结果就为true,两边都为false时,结果为false【遇true则true】
                ^ 两边结果一样时,结果为false,结果不一样时,结果为false【两边相同为fasle,两边不同为true】
                ! 取反
               
                &&(短路与) ||(短路或)
                &&  左边为fasle时,右边不参与运算,左边为true时,计算右边
                ||  左边为true时,右边不参与运算,左边为false时,计算右边

                & 和 && 区别:【结果一样,& 左右都运算, && 左边为false,右边不执行】
                | 和 || 区别:【结果一样,| 左右都运算, || 左边为true,右边不执行】

                开发常用的: && || !【&&和||】会稍微节省点时间,所以实际开发中应用会多点
       
        位运算符【对二进制进行操作】
                &位与 |位或 ^位异或 ~(按位取反,单目运算符)        二进制情况下进行运算
               
                & 同为1 取1 有0取0
                | 有1取1 同为0 取0
                ^ 相同取0 不同取1
                        【^特点】 a ^ b ^ b = a    一个数据位异或另一个数据两次,该数据不变


                例题:int a = 1,b = 2;要求在不使用第三方变量的前提下,交换a和b的值;
                     
                     a = a + b; //a = a + b = 3
                     b = a - b;        //b = a + b - b = 1
                     a = a - b;        //a = a + b - b = 2


                     a = a ^ b;        //a = a ^ b;
                     b = a ^ b;        //b = a ^ b ^ b = a
                     a = a ^ b;        //a = a ^ b ^ a = b



                ~ 内存位取反
                        例题:int ~7  结果为-8
                        00000000 00000000 00000000 00000111 整数原码补码反码都一样
                        11111111 11111111 11111111 11111000 ~7的结果   也是补码 是负数 求出原码
                        11111111 11111111 11111111 11110111 负数的补码-1是反码  
                        10000000 00000000 00000000 00001000 反码取反结果是原码  -8
               
                <<位左移                        结果是乘以(2的左移位次幂)
                >>(有符号)位右移        结果是除以(2的右移位的次幂)  高位根据数据去补   高位为0就补0  高位为1就补1
                >>>(无符号)位右移        结果是除以(2的右移位的次幂)  高位补0

               

        三元运算符
                格式:(关系表达式)?(表达式1):(表达式2); 关系表达式为true 返回表达式1的结果;关系表达式为false 返回表达式2的记过

二、键盘录入
        格式:(记住)
                1、导包:
                        格式
                                import java.util.Scanner;(写在类上面)
                        位置
                                在class上面
                2、创建键盘录入对象
                        格式
                                Scanner sc = new Scanner(System.in); //创建键盘录入函数
                3、通过获取录入的数据
                        格式
                                int x = sc,nextInt(); //调用输入的值   需要调用几次  就写几次

二、流程控制语句
        1、什么是流程控制语句
                可以控制程序的执行流程。
       
        2、流程控制语句的分类
                A:顺序结构
                B:选择结构
                        if语句
                        switch语句
                C:循环结构
                        for语句
                        while语句
                        do……while语句
        2、选择结构的分类
                if语句
                switch语句
        3、if语句有几种格式【注意事项】;a、比较表达式无论简单还是复杂,结果必须是boolean类型
                                        b、if语句{}可以省略,省略后只能控制最近的一条有效语句。注: int x = 12;是两条语句,即 int x; x = 12;
                                        c、一般来说,有左大左括号就没有分号,有分号就没有左大括号。
                                        d、{}最好不要省略
                                        e、例题:  boolean s = false;
                                                if(s = true){
                                                        Stytem.out.print("s = " + s);
                                                }
                                           打印结果是 s = true  这个s是boolean 条件表达式 执行过程是 先给s赋值为true 然后判断 ,结果为true  执行括号里面的语句
                ① if(比较表达式) {
                        语句体;
                }
                执行流程,先计算表达式的值,看其返回值是true还是false  如果是true  执行语句体;如果是false  不执行语句体

                ②if(条件表达式) {
                        执行语句1;
                }
                 else {
                        执行语句2;
                 }【if else 执行语句可以是输出语句,但是三元运算符不可以讲解,三元运算符操作后必须要有一个结果
                        三元运算符可以实现的,if一定可以实现的,反之不成立】
                执行流程:        首先计算比较表达式的值,看其返回值是true还是false
                                如果是true  执行语句体1
                                如果是false 执行语句体2
               
                ③if(条件表达式1){
                        执行语句1;
                }
                else if(条件表达式2) {
                        执行语句2;
                }
                .
                .
                .
                else {
                        执行语句n;
                }
                执行流程:首先计算机比较表达式1看其返回值是true还是false
                          如果是true 就执行语句1,if语句结束
                          如果是fasle 接着计算比较表达式2 看其返回值是true还是false
                          如果是true 就执行语句2,if语句结束
                          如果是false 接着计算比较表达式3 看其返回值是true还是false
                          如果都是false 就执行语句体 n+1
                【注意事项】 最后一个else可以省略 但是不建议省略 ,可以对范围外的错误进行提示


        4、switch语句
                格式:   switch(表达式){ 【switch后面表达式的值必须是 byte short char int ; jdk5.0 多了个枚举;jak7.0 多了个字符串String】
                                case 值1: 【这里的case的值必须是常量值】
                                        语句体;
                                break;【break 是 跳出】
                                case 值2:
                                        语句体;
                                break;
                                case 值3:
                                        语句体;
                                break;
                                case 值4:
                                        语句体;
                                break;
                                  .
                                  .
                                  .
                                 default:
                                        语句体n+1;
                                 break;               
                }
                执行流程  先计算表达式的值,然后和case后面的匹配,如果有就执行相应的语句,否则就执行default控制的语句
                【注意】 case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的常量
                        default可以省略,但是不建议,因为它的作用是对不正确的情况给出提示
                        特殊情况:
                                case 就可以把值固定

                        break最后一个可以省略,其他最好不要省略,因为可能会出现 case穿透现象,建议不省略
                        default可以在任意位置,建议在最后(如果放到前面,也是最后判断的)
                        switch语句遇到break就结束了    或者遇到switch的右大括号也可以结束
               
                if语句和switch语句的区别
                        switch 建议判断固定值的时候用
                        if建议判定区间或范围的时候用
                        switch语句能实现的  if一定可以实现
                        但是if能实现的  switch不一定可以 例如 无穷大

                【注意】 if语句的else和switch语句的default里面一般存放的都是错误的 或者 超出范围的情况



回复 使用道具 举报
加油,好好学习。天天向上
回复 使用道具 举报
总结的真好,有层次,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马