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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2017-11-30 10:56 编辑

基础第一天
java跨平台凭借着不同的操作系统上的JVM(Java虚拟机)

jdk包含jre和开发工具
jre包含jvm和java核心类库

JVM:Java Virtual Machine,Java虚拟机。Java实现的虚拟计算机,在不同平台模拟相同的运行环境。
JRE:Java Runtime Environment,Java运行环境。包括JVM和核心类库。
JDK:Java Development kit,Java开发工具包,包含了Java开发工具和JRE。开发工具包含编译工具(javac.exe)和打包工具(jar.exe)

dir:directory;
返回上层目录:"cd ..";
进入多层目录:"cd a\b\c";

第一个Java程序,HelloWorld.java。
定义类
-public class 类名{}(类名与文件名要一致)
并在大括号{}中添加一个主程序调用方法main()
-public static void main(String[] args){}  
在main方法后面的大括号中进行编写代码
-System.out.println("HelloWorld");//注:一定要带分号;(英文状态下)
完整代码

public class HelloWorld{
        public static void main(String[] args){
                System.out.println("HelloWorld");
        }
}

Java程序运行流程
Java文件(源代码)>通过编译器(javac.exe)编译>class文件(字节码文件)>通过解释器(java.exe)>输出结果

关于Notepad++的使用
下载Notepad++安装包后,双击打开选择简体中文,点击下一步,路径安装在develop目录下,点击下一步,接受协议,点击安装.
打开Notepad++,点击设置-首选项-新建,格式选择windows,默认语言选择Java,编码选择ANSI.点击关闭.

使用Notepad++新建Java文件编写输出HelloWorld

更改系统环境变量
更改Path环境变量,在最前方添加%JAVA_HOME%\bin;
新建变量JAVA_HOME属性设置为jdk的路径,例:d:\jdk1.6

注释:单行注释// 注释文字,
     多行注释/* 注释文字 */,
     文档注释/** 注释文字 */.
     注释用来解释说明程序,提高阅读性.(注释不可嵌套)

关键字:被Java赋予特殊含义的单词.
特点一:关键字字母小写,二:常见的代码编辑器,对关键字有特殊的标记.

Java基本语法

常量
概念:程序执行过程中,值不可以发生改变的量.
分类:1.字符串常量:     "HelloWorld"
     2.整数型常量:      13,-34
     3.浮点型常量:      12.34
     4.字符型常量:      'a','k'
     5.布尔型常量:      true,false
     6.空常量:          null
  

变量
概念:内存中的一块区域.在程序执行过程中,值可以在一定范围内可以发生改变.
组成:1.数据类型
     2.变量名
     3.初始化值
数据类型 变量名 = 初始化值;  例:int a = 1;
数据类型
概念:Java是一种强类型语言,针对每一种数据都给出了明确的数据类型
分类:1.基本数据类型
     2.引用数据类型(类,接口,数组)

基本数据类型:4类8种
分类:1.整数        字节数
        byte     1
        short    2
        int      4
        long     8
     2.浮点型
        float    4  单精度
        double   8  双精度
     3.字符型
        char     2
     4.布尔型
        boolean  1
注意:1.整数默认是int,浮点数默认为double
     2.定义long类型,要加L或l,建议大写
       定义float类型,要加F或f,建议大写

标识符
概念:用来给包,类,方法,变量等起名字的符号
组成:1.Unicode字符
        数字字符,英文大小写字母,汉字(不建议用汉字)
     2.下划线_
     3.美元符$

注意:1.不能以数字开头           例:12a
     2.不能是Java中的关键字 例:public,class

常见命名规则
基本要求:1.见名知意,例:name,age
         2.常见命名
                1.包(文件夹,用于对类进行管理)
                        全部小写,多级包用.隔开  例:com,com.itheima.hehe
                2.类
                        一个单词首字母大写    例:String
                        多个单词每个单词首字母大写  例:HelloWorld
                3.方法和变量
                        一个单词首字母小写 例:age,name
                        多个单词,第二个单词开始首字母全大写  例:maxAge

变量定义的注意事项
        1.变量未赋值,不能直接使用.
        2.变量只在所属的区域有效,
        3.一行上可以定义多个变量,但是不建议.

数据类型转换
        1.隐式转换(自动转换)
                byte,short,char --> int --> long --> float --> double
                类型按照容量由小到大进行类型转换
        2.强制转换(尽量不要使用强制转换,容易精度丢失)
                目标类型 变量名 =(目标类型)(被转换的数据);


基础第二天

安装配置使用eclipse

eclipse是一个IDE(集成开发环境)
集成代码的编写、分析、编译、调试等一体化的开发软件
特点:免费、纯Java编写、免安装(解压即可使用)、扩展性强(可安装多种插件)
常见启动错误:没有配置JDK和JRE.JDK与eclipse安装版本不一致,同32位或64位
基本配置:
        A:行号的显示和隐藏
                显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。
                隐藏:把上面的动作再做一次。
        B:字体大小及颜色
                a:Java代码区域的字体大小和颜色:
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java -- Java Edit Text Font
                b:控制台
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
                c:其他文件
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font        
        C:窗体给弄乱了,怎么办?
                window -- Perspective -- Reset Perspective        
        D:控制台找不到了,怎么办?
                Window--Show View—Console


运算符
概念  :用于对常量和变量进行操作的符号.
表达式:用运算符连接起来的符合Java语法的句子,不同的运算符连接的表达式是不同类型的表达式.
分类  :1.算术运算符
       2.赋值运算符
       3.关系运算符
       4.逻辑运算符
       5.三元运算符

算术运算符:+,-,*,/,%,++,--   //注意:整数相除只会得到整数,得到小数要有小数参与运算.

+:用来对数值的加运算,还用于字符字符串之间的连接操作.
字符参与加法运算,是拿字符在计算机中存储设备中的数值来参加运算
字符床与其他字符做加法运算,做的是字符串的拼接.
char类型在算术运算的时候按照数值计算.
++:自增,用于对变量加一  --自减,用于对变量减一

运算符放在变量前和变量后的区别:
        单独使用时(即只有i++;或++i;),没有区别,都是自增
        参与其他操作时:
                int a = i++;
                   先使用i本身的值作为i++表达式的值
                   然后i再自增(i自增后不影响之前i++表达式的值)
                   最后将等号右边的值赋给左边a

                int a = ++i;
                   i先自增
                   然后将自增后的值作为++i表达式的值
                   最后将等号右边的值赋给左边
                i--和--i同理


参与其他操作的时候,++或--在后面,先操作别的然后再自增或自减.

取余%操作的用途
        1.判断奇偶数
        2.判断是否被某个数整除
        3.获取一个数的个位,十位,百位......


赋值运算符

   基本的赋值运算符:=
   扩展的赋值运算符:+=,-=,*=,/=,...
   注意:扩展的赋值运算符,隐含了强制类型转换.例:变量a +=1;等同于a = (a的数据类型)(a + 1);



关系运算符:==,!=,>,>=,<,<=

        关系运算符的结果是boolean型
        注意:==为比较,=为赋值.不要弄混了.

逻辑运算符:&,|,^(异或),!,&&,||
        &:有false则结果必为false,同为true则true
        |:有true则结果必为true
        ^:相同为false,不同为true
        !:取反,false则true,true则false

        &&:逻辑与(短路与),左边为false则右边短路不执行,结果与&相同
        ||:逻辑或(短路或),左边为true则右边短路不执行,结果与|相同

三元运算符
        格式    :关系表达式?表达式1:表达式2;
        执行流程:1.计算关系表达式的值,
                 2.如果是true,表达式1是结果
                 3.如果是false,表达式2是结果
        例:int a = 10;
           int b = 20;
           int c = (a > b)?a:b;

        
键盘录入
        1.导入包:import java.util.Scanner
        2.创建键盘录入对象:Scanner sc = new Scanner(system.in);
        3.接受数据:int i = sc.nextInt();



基础第三天

选择流程控制语句

概述:是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的

if语句的三种格式:
        if语句格式1:
                if(关系表达式){
                        语句体;
                }
        执行流程
        1.计算关系表达式的值,看是true还是false
        2.true,执行语句体
        3.false,不执行语句体

        if语句格式2:
                if(关系表达式){
                        语句体1;
                }
                else{
                        语句体2;
                }
                //使用Scanner录入两个相同的字符串,比较结果为什么是false

        执行流程:
        1.计算关系表达式的值,看是true还是false
        2.true,执行语句体1
        3.false,执行语句体2

        if语句体3:
                if(关系表达式1){

                        语句体1;

                }else if(关系表达式2){
                        语句体2;
                }
                ...
                else{

                        语句体n+1;

                }
//导入包:
        1.手动导入
        2.点击鼠标自动生成
        3.快捷键,Ctrl+shift+o

switch语句格式:

        表达式的取值:byte,short,int,char
        JDK5以后可以是枚举
        JDK7以后可以是String
        case后面跟的是要和表达式进行比较的值
        语句体部分可以是一条或多条语句
        break表示中断,结束的意思,可以结束switch语句
        default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

        switch(表达式){
                case 值1:
                语句体1

                break;

                case 值2:
                语句体2
                break;
                case 值3:
                语句体3
                break;
                .....

                case 值n:
                语句体n
                break;
                default:
                语句体n+1;
                break
        }
        执行流程:
        1.首先计算表达式的值
        2.与case依次比较,有对应的值,执行对应的语句
        3.遇到break结束
        4.如果没有相对应的值,执行default的语句,然后结束
        

循环流程控制语句


        for循环语句的格式
                for(初始化语句;判断条件语句;控制条件语句){
                        循环体语句;
                }

        执行流程;
                1.执行初始化语句
                2.执行判断条件语句,为false结束for循环.为true则执行循环体语句,
                3.回到2
                4.知道判断条件语句为false退出循环

        while循环语句格式
                while(判断条件语句){
                        循环体语句;
                        控制条件语句;
                }
        执行流程:
                1.执行判断条件语句
                2.为true执行循环体,之后继续执行循环体,为false退出循环
                3.
        do...while循环语句格式
                do{
                        循环体语句;
                        控制条件语句;
                }while(判断条件语句);
        执行流程:
                1.执行循环体语句
                2.执行控制条件语句
                3.执行控制条件,
                        为true,则回到2继续执行循环体
                        为false,则结束循环


控制循环语句

两个控制循环语句:
        break:直接结束循环,或者switch语句
        continue:结束本次语句,继续执行下一次

break:必须在switch或者循环之中
        作用:
           1.在switch语句中,用于结束case
           2.在循环中,用于结束所在的循环

continue:在循环中使用
        作用:结束本次循环,执行下一次

扩展:
switch语句的case穿透
         如果switch的case语句中没有break, 则会继续执行下一个case的代码, 这称为case穿透
         case穿透有时会导致代码出现问题, 但有时我们也利用case穿透简化代码


if语句不写大括号的格式
         当if语句不写大括号时, 只有if语句后的第一条语句算作if语句的语句体, 其余不算

基础第四天

随机数(Random)
        概述:用来产生一个随机数
        使用步骤:1.导包,import java.util.Random;
                 2.创建对象,Random r = new Random();
                 3.获取随机数,int number = r.nextInt(10);
                获取的数值范围:[0,10)包括0,不包括10

数组(Array)
        概述:数组是存储同一种类型的多个元素的容器
        定义格式:
            1.数据类型[] 数组名;(推荐使用)
            2.数据类型 数组名[];
        区别:
            int[] arr;定义了一个int类型的数组,数组名是arr
            int arr[];定义了一个int类型变量,变量名是arr[]
        数组初始化:
            1.数组的初始化,是为数组开辟存储内存空间,并为数组的每个元素赋予初值.
            2.两种方式初始化
                1:动态初始化,只给出长度,由系统给出初始化值
                        数据类型[] 数组名=new 数据类型[数组长度]
                2:静态初始化,给出初始化值,由系统决定长度
                        数据类型[] 数组名 =new 数据类型{元素1,元素2,元素3,....}
                简化格式
                        数据类型[] 数组名={元素1,元素2,元素3,....}
                                    
           数组的元素:数组中的单个数据
           数组的索引:元素在数组中的位置序号,从0开始.或者叫角标
           访问数组元素格式:数组名[索引]

数组常见问题:
        1.ArrayIndexOutOfBoundsException:数组索引越界异常
        产生原因:访问了不存在的索引
        避免:不要访问不存在的索引

        2.NullPointerException:空指针异常
        产生原因:数组已经不再指向堆内存的数据了,却还使用数组名去访问元素
        避免:判断数组是否为null,如果不是null,再操作:if(arr != null){操作;}

null只能赋值给引用数据类型的变量;包括类,数组,接口

遍历数组:
        依次获取数组中的每一个元素
        
二位数组:
        概述:元素为一位数组的数组

        定义格式:
            1.数据类型[][] 数组名;(推荐)
            2.数据类型 数组名[][];
            3.数据类型[] 数组名[];

初始化:
        1.动态初始化
                数据类型[][] 数组类型 = new 数据类型[m][n]
                m表示二位数组中一位数组的数量
                n表示一位数组中的元素个数
        2.静态初始化
                数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},{元素...},....}
                   简化格式:
                数据类型[][] 数组名 = {{元素...},{元素...},{元素...},....}

基础第五天

方法(method):完成特定功能的代码块,也有叫函数(function)
作用:提高代码的可用性和可维护性

定义格式:

     修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2.....){
        方法体;
        return;
        }

格式解释:
        修饰符:     目前记住 public static
        返回值类型  用于限定返回值的数据类型
        方法名      一个名字,为了方便我们调用方法
        参数类型    用于接收调用方法时传入的数据的类型
        参数名      用于接收调用方法时传入的数据的变量
        方法体      完成功能的代码
        return      结束方法,把返回值带给调用者

方法的两个明确:
        1.返回值类型        明确功能结果的数据类型
        2.参数列表        明确有几个参数,以及参数的数据类型


方法的调用:(有明确返回值的方法的调用)
        1.单独调用.没有意义
        2.输出调用,有意义,但意义不大.因为可能需要使用结果进行进一步的操作
        3.赋值调用.推荐使用,赋完值想干嘛干嘛

注意:
        所有的方法只有被定义之后才能被调用,main方法被Java虚拟机调用
        

方法的重载:
        概述:在同一个类中,出现了方法名相同的情况
        特点:方法名相同,参数列表不同,与返回值无关
           参数列表不同:
                1.数量不同
                2.类型不同
不能出现方法名相同,参数列表也相同的两个方法

调用方法的时候,Java虚拟机会通过参数列表区别重载的方法.

方法重载无关的东西:
        方法返回值无关;
        与参数名无关
        

方法的参数如果是基本数据类型:形式参数的改变不影响实际参数.

形式参数:用于接收实际参数的变量
实际参数:实际参与运算的变量

地址传递,形参改变影响实参.对于引用数据类型
方法的形参是引用数据类型:


基础第六天
Eclipse断点调试(debug)
        概述:Eclipse的断点调试可以查看程序的执行流程和解决程序中的bug

        断点:其实就是一个标记

        断点加在哪?
                哪里不懂加在哪里

        如何加断点?
                在代码区域的左边双击即可

        如何运行加断点的程序?
                代码区域 -- 右键 -- debug As -- Java Application

        看那些地方?
                代码区域
                Debug:断点测试的地方
                Variables:查看程序的变量变化
                ForDemo:被查看的源文件
                Console:控制台
        
        如何取出断点:
                1.再次双击即可
                2.进入Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击双叉.

        注意:
                断点必须打在有意义的句子上,

0 个回复

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