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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 528201154 初级黑马   /  2018-4-3 22:27  /  709 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

jdk:Java开发工具+jre
jre:jvm+类库  (运行环境)
jvm:虚拟机

DOS命令:
* cd  进入某个目录
* cd..返回上一目录
* d.  切换盘符
* cd\ 多级回退
* crl 清屏
* dri 显示当前目录中的所有文件
* exit 退出
  
JDK下载网站:www.oracle.com

安装环境设置:D:\develop\Java\jre7

环境变量设置:
* 添加:JAVA_HOME
* 步骤:1.计算机右键,属性,高级系统设置,高级环境变量,新建JAVA_HOME
*     2.计算机右键,属性,高级系统设置,高级环境变量,系统环境变量,
*       path环境变量最前面添加%JAVA_HOME%\bin;

常量:字符串 整数 小数 字符 布尔 空常量(null)

定义变量的格式:
数据类型 变量名 = 初始化值;

数据类型:
  基本数据类型
     整数:byte(1) short(2) int(4) long(8) 默认int类型,long后面加L
     浮点;float(4) double(8)   默认double类型,float后面加f
     字符:char(2)可以存储中文
     布尔:boolean(1)
  
为什么long类型是8个字节,float是4个字节,而float类型大于long类型?
答:float取值范围:是2的负126次幂到2的正127次幂
   float取值范围:是2的负63次幂到2的正63次幂

标识符:
A:unicode字符,包括数字字符,英文大小写字母
B:下划线 _
C:美元符 $

  注意事项:
  A:不能以数字开头
  B:不能是Java中的关键字

常见的命名规则:(见名知意)
A:包,全部小写,多级包点(.)隔开
B:类,一个单词首字母大写,多个单词每个单词的首字母大写
C:方法和变量,一个单词首字母小写,多个单词从第二个单词的首字母大写

变量定义的注意事项:
  A:变量未赋值,不能直接使用
  B:变量只在它所属的范围内有效(变量属于它所在的那对大括号)
  C:一行上可以定义多个变量,但是不建议 例:int a,b;
                                        a = 1;
                                        b = 2;

类型转换:
   隐式转换:(自动类型提升)byte,short,char -- int -- long -- float -- double
   强制转换:目标类型 变量名 = (目标类型)(被转换的数据);
            建议:数据做运算,结果应该是什么类型
   例:byte b = 10;
      byte c = 20;
      byte f = b + c;
   第一种解释:b + c因为b是byte类型,c也是byte类型,两个byte类型的值,做运算时,
              会先将这两个byte类型的数据进行类型提升,都提升为了int类型

Java开发工具(Eclipse工作空间的基本配置)(掌握)
* A:程序的编译和运行的环境配置(一般不改)
        * window -- Preferences -- Java
        * 编译环境:Compiler        默认选中的就是最高版本。
        * 运行环境:Installed JREs        默认会找你安装的那个JDK。建议配置了Java的环境变量(不配找不到)。
        * 问题:
                * 低编译(编译的版本比较低),高运行(运行的版本比较高)。可以。
                * 高编译,低运行。不可以。
                * 建议,编译和运行的版本一致。
* B:如何去掉默认注释?
        * window -- Preferences -- Java -- Code Style -- Code Templates--Code
        * 选择你不想要的内容,通过右边Edit编辑。
        * 注意:请只删除注释部分,不是注释部分的不要删除。

* C:行号的显示和隐藏
        * 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。
        * 隐藏:把上面的动作再做一次。
* D:字体大小及颜色
        * a:Java代码区域的字体大小和颜色:
                * window -- Preferences -- General -- Appearance -- Colors And Fonts --Java修改 -- Java Edit Text Font--edit进行修改
        * b:控制台
                * window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
        * c:其他文件
                * window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font
* E:窗体给弄乱了,怎么办?
        * window -- Reset Perspective
* F:控制台找不到了,怎么办?
        * Window--Show View—Console
* G:取消悬浮提示(将鼠标停留在某个类上所出现的提示信息)
        * window -- Preferences -- Java--Editor--Hovers。右边将Combined Hover勾去掉。
        * 这样代码的悬浮框就不会自动出现了。如果想看提示,将光标悬浮在代码上,按F2即可。
       
运算符:
        算数运算符
                整数相除,结果还是整数
               
                注意事项:
                * a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
                * b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
                * c:/获取的是除法操作的商,%获取的是除法操作的余数
                * %运算符
                        * 当左边的绝对值小于右边绝对值时,结果是左边
                        * 当左边的绝对值等于右边或是右边的倍数时,结果是0
                        * 当左边的绝对值大于右边绝对值时,结果是余数
                        * %运算符结果的符号只和左边有关系,与右边无关
                        * 任何一个正整数%2结果不是0就是1可以用来当作切换条件

               
                字符串与任何数据做加法运算,都会产生一个新的字符串

               
        逻辑运算符
         & : 有假则假
         | : 有真则真
          ! : 事物的另一面
         ^ : 相同为false,不同为true
         
         && 和 & 的区别:
                 & 是左右两边都需要进行计算
                 && 如果左边为false,右边不执行
         || & | 的区别:
                 | 是左右两边都需要进行计算
                 || 如果左边为true,右边不执行
                
        三元运算符(三目运算符)
                关系表达式 ? 表达式1 : 表达式2

顺序结构语句
        从main开始的内容开始,自上而下执行代码
判断结构语句
        三种表现形式
        if(){
        }
       
        if(){
        } else{}
       
        if(){}else if(){}else{}
                第三种方式else可以省略,但建议添加下
               
        int a = 10;
        if(a > 5){
               
        } else if(a > 7){
       
        } else if(a > 9){
       
        } else{
               
        }       
       
选择结构语句
        char ch = '+';
        swicht(ch){
                case '+':
                        ...
                        ...
                        // break;
                default:
                        ....
                        break;
                case '-':
                        ....
                        ....
                        break;
        }
1. switch后边的表达式可以放什么类型的?
        byte short int char 枚举  String
2. case后边跟的是常量,常量的值取决于switch括号中表达式的类型,来进行填写相应类型的值
3. break 可以省略
4. default可以省略
5. switch结束有两种情况:(1)遇到break (2)遇到右大括号
6. break一旦省略,那么有可能发生case穿透,一旦发生穿透,就不会判断case后边常量的值了,直接输出case所控制的内容,直到遇到break或者switch的右大括号结束
7. default不一定要放在switch的最后,可以放在任意位置,但是switch执行时,必然要从第一个case开始进行匹配。

循环结构语句
for(初始化表达式; 条件表达式; 循环后操作表达式){
        循环体;
}
执行流程:
        1. 初始化表达式 只执行一次
        2. 判断条件表达式的值是否为true
                如果为true
                        执行循环体,再执行循环后操作表达式
                如果为false
                        结束循环
        3. 继续执行第2步骤,判断条件表达式的值即可。
       
初始化表达式;
for(;条件表达式;){
        循环体;
        循环后操作表达式;
}

for(【初始化表达式】;【条件表达式】){}

初始化表达式;
while(条件表达式){
        循环体;
        循环后操作表达式;
}

while(true){ // 无限循环、死循环
       
}


do{
        循环体;
        循环后操作表达式;
} while(条件表达式);


三种循环的区别:

控制跳转语句
        break:应用场景  switch和循环
                跳出当前所在循环
        continue:应用场景  循环
                结束本次循环,继续下次循环
               
        for(int i=0; i<10; i++){
                if(i == 3){
                        //break;
                        continue
                }
                System.out.println("i = " + i);
        }
       
循环的嵌套
        wai:for(int i=0; i<10; i++){
                nei:for(int j=0; j<5; j++){
                        if(j == 3){
                                break wai;       
                        }
                        System.out.print("*");
                }
                System.out.println();
        }

int a = 10;
if(a > 5)
        for(int i=0; i<10; i++){
                System.out.println("i = " + i);
        }
       
System.out.println("over");

Random随机数
        1. 导包
                import java.util.Random;
        2. 创建Random对象
                Random random = new Random();
        3. 调用Random对象的nextInt(int x)方法
                int num = random.nextInt(1);
                num的取值范围在  [0,1) 包含0不包含1
       
        需求:
                我心中想一个数字,数字范围在1-100之间,比如88,你们来猜测这个数字是多少
                思路:
                        1. 随机产生一个随机数
                        2. 先创建键盘录入对象
                        3. 无限循环,以便于录入你们想要猜测的数据
                        4. 让猜测的数据与我想的随机数进行大小的判断
                                如果大了
                                        提示 数据大了
                                如果小了
                                        提示 数据小了
                                如果中了
                                        提示 数据猜对了

数组:存储同一种数据类型的多个元素的容器
        元素:数组中的数据
        声明数组:数据类型[] 数组名
       
        数组的初始化:在内存中开辟一片连续的存储空间
                动态初始化:在创建数组时,直接给出数组的长度即可
                静态初始化:在创建数组是,直接给舒数组的每个元素是什么,但不给出长度。
       
        给数组赋值: 数组名 = new 数据类型[数组的长度];
        数组的长度:数组中元素的个数
       
        如何定义一个数组呢?
                数据类型[] 数组名 = new 数据类型[数组的长度];
                int[] arr = new int[3];  
                int arr[] = new int[5];
                注意:前后数据类型要一致。
       
        如何来表示数组中的每个元素呢? 假如有这样的数组:int[] arr = new int[5];
        需要使用索引、下标、角标来进行表示。   而  索引从零开始计数,最大索引为 数组的长度-1
        数组名[索引] 表示数组的每个元素
       
        java中的内存分配图解
        int[] arr = new int[5];
               
        栈:局部变量(方法声明上或方法内部定义的变量称为局部变量)
                立即回收
        堆:new 出来的对象、实体       
                等待垃圾回收器空闲的时候再进行回收
               
        静态初始化:
                数据类型[] 数组名 = new 数据类型[]{元素1, 元素2....};
                简写形式:
                数据类型[] 数组名 = {元素1, 元素2....};
                注意:
                        简写形式有局限性。
                        局限性:数组的声明与赋值分开写的时候,简写形式行不通了。
                        如:int[] arr;
                           arr = {10, 20, 30}; // 这里编译失败
                          
        数组常见操作的两个问题:
                数组索引越界异常:ArrayIndexOutofBoundsException
                        产生的原因:由于访问了数组中不存在的索引对应的元素造成的。
                       
                空指针异常:NullPointerException                  
                        产生的原因:由于数组的引用不再指向原来堆里面所对应的实体了,而是被重新赋值为null,如果再用这个引用去访问实体中的元素时,就会发生该异常。
       
        数组的遍历(获取数组的元素):       
          int[] arr = new int[5];
          for(int i=0; i<arr.length; i++){ // i表示数组的索引,而索引是从0开始计算的,并且索引的最大值是arr.length-1,故而初始化表达式以及条件确认完毕。
                        System.out.println(arr);         // arr表示数组中的每一个元素
          }
       
二维数组:
        二维数组:其实就是元素为一维数组的数组。
       
        定义格式:
                        A:数据类型[][] 数组名; (推荐的方式)
                        B:数据类型 数组名[][];
                        C:数据类型[] 数组名[];
        初始化:
                        A:动态初始化
                                数据类型[][] 数组名 = new 数据类型[m][n];   
                                m表示的是二维数组中一维数组的个数
                                n表示的是一维数组中的元素个数
                        B:静态初始化
                                数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},{元素...},...};
                                简化格式:
                                数据类型[][] 数组名 = {{元素...},{元素...},{元素...},...};
                                {} 表示二维数组
                                {{}, {}} 表示这个二维数组中有两个一维数组
       
        二维数组名配合索引可以获取到每一个一维数组。
        每一个一维数组配合索引名可以获取到数组中的元素。
       
        假如我有一个二维数组:arr。
        我要从中获取一维数组:arr[索引]
        我要从中获取二维数组的元素:arr[索引][索引]
       
        遍历二维数组:
                for(int i=0; i<arr.length; i++){ // 获取大箱子中有多少个小箱子
                        for(int j=0; j<arr.length; j++){ // 获取小箱子中的每个元素
                                sop(arr[j]);
                        }
                }                  
                          
                          
今日重点:
        random随机数
        一维数组的两种创建方式
        遍历数组
        求数组中的最值
       
       
        二维数组的两种创建方式(动态初始化创建时,[m][n]其中n可以省略)                  
        二维数组的遍历(循环的嵌套)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马