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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唯伟123 中级黑马   /  2014-4-15 21:59  /  1151 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

:victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory::victory:
1.JDK,JRE,JVM的作用和区别?
    JDK:保证Java语言的开发。包含JRE和tools(开发工具)。
    JRE:保证Java语言运行。包含JVM和class library(核心类库)。
    JVM:保证Java语言跨平台。为不同的操作平台提供一个JVM。
   问题:Java语言是跨平台的吗?
         是。
         JVM是跨平台的吗?
         不是。采用假设法即可判断。如果JVM是跨平台的,那就不用为不同的
         操作平台提供不同的JVM了,只需要一个就行了。显然实际不是这样的。
2.为什么要配置Path,以及怎么配置?
    为什么要配置Path?
        其实我们可以直接在JDK的安装目录bin下,写Java程序,并运行。
        但是,这样做,不好也不安全。为了保证我们在任意的目录下可以
        使用javac和java命令,我们才去配置Path环境变量。
    怎么配置?
        A:直接把目录配置过来
                path:D:\develop\Java\jdk1.7.0_51\bin;以前的path
        B:配置JAVA_HOME,修改path。
                JAVA_HOME : D:\develop\Java\jdk1.7.0_51
                path : %JAVA_HOME%\bin;以前的path
3.为什么要配置classpath?
        为了保证在任意目录下去使用class文件。模拟path原理,java提供
        了一个classpath。
4.关键字
(1)在Java中被赋予了特殊含义的单词。
(2)特点:全部小写。
5.标识符
(1)就是给类,变量,方法等起名字。
(2)组成规则:
      A:由数字,字母及下划线,$组成。
      B:不能以数字开头。
      C:不能和关键字重名。
(3)命名规则:
      见名知意,驼峰命名。
      A:包
        全部小写,如果多级包,用 . 分开。
        举例:
            package com;
            package cn.itheima;
            域名反转。
            www.itheima.com
            com.itheima....
       B:类和接口
          如果是一个单词,首字母大写。
             举例:Hello,Demo,Test,Inter
          如果是多个单词,每个单词的首字母大写
             举例:HelloWorld,StudentDemo
       C:方法和变量
          如果是一个单词,首字母小写。
             举例:name,age,show()
            如果是多个单词,从第二个单词开始的每个单词首字母大写
             举例:studentName,setName(),getAge()
       D:常量
          全部大写,如果多个单词,用_连接
             举例:NUMBER,PI,STUDENT_MAX_AGE
6.注释:
   (1)对代码进行解释说明的文字。
   (2)分类:
        A:单行注释 //
        B:多行注释 /*   */
        C:文档注释(javadoc工具) /**  */
   (3)好处:
        A:对代码解释说明。
        B:调试错误。
7.常量
   (1)就是在程序运行的过程中,其值不发生改变的量。
   (2)分类:
        字面值常量:
            整数常量
            小数常量
            字符常量
            布尔常量
            字符串常量
            空常量 null
        自定义常量:
            final
    (3)Java中对整数常量的表现形式:
         二进制:(JDK7新特性)
         八进制:
         十进制:
         十六进制:
8.变量
    (1)就是在程序运行过程中,其值发生改变的量。
    (2)格式:
         数据类型  变量名 = 初始化值;
9.数据类型
    (1)分类:
         基本类型:4类8种
             整型:        字节
                byte     1
                short    2
                int      4
                long     8
             浮点型:
                float    4
                double   8
                  布尔型:
                boolean  1
             字符型:
                char     2
        (默认)整型:int
                浮点型:double
        引用类型:
            接口
            类
            数组
10.类型转换
   (1)数据参与运算:
          要求类型一致
   (2)分类:
        隐式转换:从小到大
          A:boolean不参与
          B:遵循如下规则
                byte,short,char-->int-->long-->float-->double
             为什么long 8个字节转换成float 4个字节?
             浮点数据的存储和整数不一样。
        强制转换:从大到小
           这种做法一般不推荐。因为会有数据的精度损失。
   例题:
        short s = 5;
        s=s+2;
        s+=2;
        有什么区别?     
        s=s+2 //编译失败,因为s会被提升为int类型,运算后的结果还是int类型。
              //无法赋值给short类型。
        s+=2  //编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。
11.运算符
   (1)算数运算符
        +,-,*,/,%,++,--
        +:加法,正数,字符串连接符。
   (2)赋值运算符
        =,+=,-=,/=...
        A:把左右两边的结果赋值给左边,左边是一个变量。s+=2;
        B:隐藏了强制类型转换
           上个例题中编译通过的 s+=2;//s=(short)(s+1);
   (3)比较运算符
        ==,!=,>,>=,<,<=
        运算结果是boolean类型。
   (4)逻辑运算符
        &,|,^,!,&&,||
       
        ^:异或,同为假,异为真
        常用的有:!,&&,||
   (5)位运算符
   (6)三元运算符
        表达式?值1:值2
        首先计算表达式的值,看其结果:
            true:值1
            false:值2
   (7)面试题:数据交换
        int a = 10;
        int b = 20;
        开发用:使用第三方变量
            int temp = a;
            a = b;
            b = temp;
        面试:位异或运算符
           左边:a,b,a
           右边:a^b
           a = a ^ b;
           b = a ^ b;
           c = a ^ b;
12.语句
   (1)顺序结构
        从上往下执行。
   (2)选择结构
        A:if结构
          a:第一种结构
                if (条件表达式){
                   语句体;
                }
                 执行流程:
                如果表达式为true,执行语句体;否则,不执行。
          b:第二种结构
                if (条件表达式){
                   语句体1;
                } else{
                   语句体2;
                }
                执行流程:
                如果条件表达式为true,执行语句体1;
                否则,执行语句体2;
              c:第三种结构:
                if (条件表达式1){
                   语句体1;
                }else if(条件表达式2){
                   语句体2;
                }else if(条件表达式3){
                   语句体3;
                }
                        ...
                else {
                   语句n;
                }

                执行流程:
                从第一个条件表达式开始判断,遇到true,就执行对应的语句体。
                如果都没有,最终执行语句n。

                注意事项:
                  A:任何if语句,本身代表的是一条语句。
                  B:if语句控制的语句体,可以不写{}。
                    但是,如果if语句要控制多条语句,必须加{}。
                    推荐:永远加{}
                  C:条件表达式无论简单还是复杂,结果肯定是boolean类型。
                  D:注意,下面两个东西,一般不同时使用
                    ;和{}
       
        B:switch结构
             格式:
                switch(表达式) {
                        case 值1:
                                语句1;
                                break;
                        case 值2:
                                语句2;
                                break;
                        case 值3:
                                语句3;
                                break;
                                ...
                        default:
                                语句n;
                                break;
                        }

                执行流程:
                首先计算表达式的值。
                接着依次和case进行比较,遇到想等,就执行对应的语句,并结束。
                如果没有匹配的,执行default。

                注意事项:
                a:表达式的取值一般来说是这几个:byte,short,int,char
                  JDK5以后可以是枚举
                  JDK7以后可以是字符串
                b:case和default有没有顺序?
                  有:执行顺序关系。
                  没有:位置关系。
                c:break是否可以不要
                  最后一个匹配的break可以直接不要。
                d:switch语句的结束:
                  遇到break。
                  执行到最后。
        案例:
        /*
        一年12月,4个季度
        3\4\5   春季
        6\7\8   夏季
        9\10\11 秋季
        12\1\2  冬季

        根据指定的月份,得到对应的季节
        */
        class SwitchTest {
            public static void main(String[] args) {
                //输入一个月份
                int month = 5;
                //使用switch语句
                switch (month) {
                        case 1:
                        case 2:
                        case 12:
                                System.out.println("冬季");
                                break;
                        case 3:
                        case 4:
                        case 5:
                                System.out.println("春季");
                                break;
                        case 6:
                        case 7:
                        case 8:
                                System.out.println("夏季");
                                break;
                        case 9:
                        case 10:
                        case 11:
                                System.out.println("秋季");
                                break;
                        default:
                                System.out.println("不是有效月份");                       
                        }
                }
        }
13.循环语句
   (1)for循环:
        for(初始化条件表达式;判断条件表达式;增量条件表达式){
                循环体;
        }
        执行流程:
                A:首先执行初始化条件表达式
                B:接着执行判断条件表达式,根据返回值
                        true:就结束
                        false:就结束
                C:执行循环体
                D:执行增量条件表达式,回到B继续。
        (2)while循环:
                        while(条件表达式){
                                循环体;
                        }
                       
                        while和for可以等价转换。
                        扩展格式:
                                初始化条件表达式;
                                while(判断条件表达式){
                                        循环体;
                                        增量条件表达式;
                                }
        (3)do...while循环:
                        do{
                                循环体;
                        }while(条件判断);
                       
                扩展格式:
                        初始化条件表达式;
                        do{
                                循环体;
                                增量表达式;
                        }while(判断条件表达式);
        (4)各个循环的区别?
                        第三中格式至少执行一次循环体。
        (5)使用哪种循环?
                        如果范围明确,用for。
                        如果范围不明确,用while。
14.其他语句
        (1)continue和break一般控制循环的走向。
        (2)区别:
                        continue:结束本次循环,继续下一次循环。
                        break:结束当前循环。


评分

参与人数 1黑马币 +1 收起 理由
菜小徐 + 1

查看全部评分

3 个回复

倒序浏览
就不能写到一个文件里传上来,这样真没人看啊,兄弟!
回复 使用道具 举报
挺好的  顶下
回复 使用道具 举报
曹冬明 发表于 2014-4-15 22:28
就不能写到一个文件里传上来,这样真没人看啊,兄弟!

你好,压缩文件在这http://bbs.itheima.com/thread-114337-1-1.html,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马