黑马程序员技术交流社区

标题: 基础技术总结 [打印本页]

作者: woxingsun    时间: 2018-4-2 23:32
标题: 基础技术总结
1.关键字
        1.关键字是被java赋予特定含义的单词
        2.特点:组成关键字的字母全部小写
        3.注意事项:我们在起名字的时候不能使用关键字

2.标识符
        1).标识符的组成
                1. 英文大小写字母
                2. 数字
                3. $和_
        2).注意事项
                1.不能使用关键字
                2.不能以数字开头
                3.如果你要使用符号,只能使用$和_
        4).常见命名规则:
                1. 包:把包理解成我们的文件夹,一般是公司域名倒着写,com.itheima,字母小写
                2. 类或者接口  
                        如果是一个单词,首字母大写
                        如果是多个单词,每个单词的首字母都大写
                3. 方法或者变量  
                        如果是一个单词,全部字母小写
                        如果是多个单词,从第二个单词开始首字母大写
                4. 常量  EAT_APPLE
                        如果是一个单词,全部字母大写
                        如果是多个单词,每个单词之间用_分开

3.常量
        字面值常量
                字符串常量        用双引号括起来的内容
                整数常量        所有整数
                小数常量        所有小数
                字符常量            用单引号括起来的内容,里面只能放单个数字,单个字母,单个符号
                布尔常量        true,false
                空常量                null
       
4..变量
        1.变量是在程序执行的过程中,其值可以发生改变
        2.用来不断的存放同一类型的常量,并可以重复使用
        3.变量定义格式:数据类型 变量名 = 变量值;

5..数据类型
        1).Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
        基本数据类型(四类八种)
                整数型
                        byte        占1个字节        -128到127
                        short        占2个字节
                        int        占4个字节
                        long        占8个字节
                浮点型(小数型)
                        float        占4个字节
                        double        占8个字节
                字符型
                        char        占2个字节        0-65535
                布尔型
                        boolean 他的值要么是true,要么是false
        引用数据类型
6.运算符
        1.算术运算符
                 基本的:+, -, *, /, %
        关于+:

        字符串与任何数据做加法运算,都会产生一个新的字符串
                1.正号
                2.进行加法操作
                3.字符串的连接符:任何数据类型与字符串相连接都会变成一个字符串
        关于/:
                获取的是除法操作的商
                注意:两个整数相除得到的一定是整数,如果要得到小数,将其中任意一个数变成小数即可
        关于%:
                方案一:
                当左边的绝对值小于右边绝对值时,结果是左边
                当左边的绝对值等于右边或是右边的倍数时,结果是0
                当左边的绝对值大于右边绝对值时,结果是余数
                %运算符结果的符号只和左边有关系,与右边无关
                方案二:
                获取的是除法操作的余数,其结果的符号只与左边有关,与右边无关,并且与左边数值的符号相同
        特殊的:++ --
                1.单独使用:放前放后一样
                        ++:对原有的数据+1
                        --:对原有的数据-1
                2.参与运算:放操作数前面,会先运算再赋值,放操作数后面,会先赋值再运算
        2.赋值运算符
                a.基本的:=
                        把=号右边的数据赋值给左边
                        int a = 4;
                b.特殊的:+=,-=,*=,/=,%=
                        把运算符左边和右边的数据进行运算,再赋值给左边
        3.关系运算符(也叫比较运算符,也叫条件运算符)
                ==,!=,>,>=,<,<=
                注意事项:
                        1.无论你操作的数据是简单还是复杂,最终得到的结果都是boolean类型
                        2."==" 不能写成"="
        4.逻辑运算符
                1.基本的:&,逻辑与,     有false则false
                            |,逻辑或,     有true则true
                          ^,逻辑异或,   相同为false,不同为true
                           !,逻辑非,     非false则true,非true则false

                2.特殊的:&&    ||
                        1.绝对不会影响结果;
                        2.能提升效率;
                3.&&,短路与,左边为false,右边不执行,最终结果与&相同
                          ||,短路或,左边为true,右边不执行,最终结构与|相同
7.流程控制语句_可以控制程序的执行流程
        1.顺序结构
                从上往下,依次执行

        2.选择结构
                2.1.if语句
                        1.if (比较表达式) {
                                        语句体;
                                }
                        2.if (比较表达式) {
                                        语句体1;
                                } else {
                                        语句体2;
                                }
                        3.if (比较表达式1) {
                                        语句体1;
                                } else if (比较表达式2) {
                                        语句体2;
                                } else if (比较表达式3) {
                                        语句体3;
                                } else if (比较表达式4) {
                                        语句体4;
                                }
                                ...
                                else {
                                        语句体n + 1;
                                }
                2.2.switch语句
                                switch(表达式) {
                                        case 值1:
                                          语句体1;
                                        break;
                                        case 值2:
                                          语句体2;
                                        break;
                                        ...
                                        default:
                                                语句体 n + 1;
                                        break;
                                }
        3.循环结构
                3.1.for循环
                        for (初始化表达式; 条件表达式; 循环后的操作表达式) {
                                        循环体;
                                }
                3.2.while循环
                                初始化表达式;
                                while(判断条件语句) {
                                        循环体;
                                        控制条件语句;
                                }
                3.3.do...while循环
                        初始化语句;//int i = 1;
                        do {
                                循环体语句;
                                控制条件语句;//i++;
                        } while(判断条件语句);
8.控制跳转语句
        1.break语句
                     1.跳出循环
                2.停止switch
        2.continue语句
                跳过本次循环,继续下次循环
        3.return语句
                结束方法
9.方法
        1.格式:
                修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2) {
                        方法体语句;
                        return 返回值;
                }
        2.方法的格式说明:
                a.修饰符:目前我们固定写public static
                b.返回值类型:就是该方法需不需要返回一个结果,此处填的是该结果的数据类型,也可以没有,没有就写void
                c.方法名:就是合法的标识符,针对方法,如果是一个单词全部字母小写,如果是多个单词,从第二个单词开始

首字母大写
                d.参数:
                        形式参数:用于接收实际数据的变量
                        实际参数:实际参与运算的变量
                e.参数类型:就是参数的数据类型
                f.参数名:就是合法的标识符,针对变量,如果是一个单词全部字母小写,如果是多个单词,从第二个单词开始

首字母大写
                g.方法体语句:就是完成特定功能的代码
                h.return 结束方法
                i.返回值,就是执行功能代码后的结果,由return带给调用者
10.方法重载
        1.在同一个类中,方法名相同,参数列表不同,与返回值类型无关
        2.参数列表不同
                1.参数个数不同
                2.参数个数相同,参数类型不同:如add(int a,int b);add(double a,double b)
                3.参数个数相同,参数顺序不同,如add(int a,double b);add(double a,int b)-->不过一般不这么写,因为

两个方法功能是一样
11.数组
        1.数组的定义格式:
                数据类型[] 数组名 = new 数据类型[数组长度];
                如:
                   存储基本数据类型:
                        int[] studnetAges = new int[100];
                   存储引用数据类型:
                        String[] studentNames = new String[100];
        2.动态初始化
                2.1动态初始化格式:
                        数据类型[] 数组名 = new 数据类型[数组长度];
                2.2不同数据类型使用动态初始化会有不同的默认值:

                        整数类型:byte,short,int,long默认初始化值都是0
                        浮点类型:float,double默认初始化值都是0.0
                        布尔类型:boolean默认初始化值false
                        字符类型:char默认初始化值'\u0000'
        3.静态初始化
                静态初始化格式:
                        数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...}
                        简化格式:
                        数据类型[] 数组名 = {元素1,元素2,...};
        4.内存分配
                a.栈内存:存储局部变量                 先进后出
                b.堆内存:存储new出来的数组/对象
                c.方法区:面向对象部分讲解
                d.本地方法区:和系统相关
                e.寄存器:给CPU使用

        5.二维数组
                1.定义格式
                        数据类型[][] 数组名;
                2.初始化方式
                        数据类型[][] 变量名 = new 数据类型[m][n];
                        数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
                        简化版格式:数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
12.断点
        1.断点:
                就是一个标记,从哪里开始。
        2.运行设置断点后的程序:
                右键 -- Debug as -- Java Application
        3.Debug:断点测试的地方,在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。
          Variables:查看程序的变量变化
          ForDemo:被查看的源文件
          Console:控制台
        4. 找到Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击那个双叉。
13.面向对象
        1.概念:
                 1.1是一种更符合我们思想习惯的思想(懒人思想,我把事情自己不做,交给别人去做)
                       1.2可以将复杂的事情简单化(对使用者来说简单了,对象里面还是很复杂的)
                         1.3将我们从执行者变成了指挥者角色发生了转换
        2.类与对象:
                2.1Java中最基本的单位是类,Java中用class描述事物也是如此
                        成员变量        就是事物的属性
                                和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
                        成员方法        就是事物的行为
                                和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
                2.2使用成员变量
                        对象名.成员变量   
                   使用成员方法
                        对象名.方法名()               
        3.成员变量和局部变量的区别 :能够重名;  就近原则
                1.定义的位置不同:
                        成员变量:在类中方法外
                        局部变量:在方法中
                2.在内存中的位置不同:
                        成员变量:属于对象,对象在堆内存
                        局部变量:属于方法,方法在栈内存
                3.生命周期不同
                          成员变量:成员变量随着对象(类)的创建而创建,随着对象类()的消失而消失
                          局部变量:局部变量随着方法的调用而存在,随着方法的弹栈而消失
                4.初始化值不同
                        成员变量:有默认初始化值
                        局部变量:没有默认初始化值,在使用之前必须赋值
14.封装与私有关键字
        1.private关键字:
                是一个权限修饰符。
                可以修饰成员(成员变量和成员方法)
                被private修饰的成员只在本类中才能访问。
        2.this 关键字
                代表当前对象的引用
                应用场景:区分成员变量和局部变量
        3.封装的好处
                3.1.提高了安全性
                3.2.提高了代码的复用性
15.构造方法
        1.格式
                方法名与类名相同
                没有返回值类型,连void都没有
                没有具体的返回值
        2.构造方法的重载
                回忆:方法重载:方法名相同,参数列表不同,与返回值类型无关
                构造方法注意事项:
                        1.如果我们没有给出构造方法,系统默认会提供一个无参构造方法
                        2.如果我们已经给出构造方法,系统将不会提供无参构造方法,这个时候如果需要无参构造方法,需

要手动给出,建议永远手动给出
        3.给成员变量赋值的两种方式的区别
                1).setXxx()方法:修改属性值
                2).构造方法:给对象中的属性进行初始化
16.API
        1.String
                1.1构造方法
                        String(String original):把字符串数据封装成字符串对象
                        String(char[] value):把字符数组的数据封装成字符串对象
                        String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
                1.2判断
                        boolean equals(Object obj):比较字符串的内容是否相同
                        boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
                          boolean startsWith(String str):判断字符串对象是否以指定的str开头
                          boolean endsWith(String str):判断字符串对象是否以指定的str结尾
                1.3转换
                        char[] toCharArray():把字符串转换为字符数组
                        String toLowerCase():把字符串转换为小写字符串
                        String toUpperCase():把字符串转换为大写字符串
        2.StringBuilder
                2.1 String和StringBuilder的区别:
                        String的内容是固定的
                        StringBuilder的内容是可变的       
                2.2构造方法:
                           StringBuilder()
                2.3成员方法:
                            public int capacity():返回当前容量 (理论值)
                             public int length():返回长度(已经存储的字符个数)
                        public StringBuilder append(任意类型):添加数据,并返回自身对象
                        public StringBuilder reverse():反转功能
17.集合
        只能存储引用数据类型
        1.ArrayList集合               
                1.1添加:
                          public boolean add(E e):添加元素
                          public void add(int index,E element):在指定的索引处添加一个元素
                1.2删改
                         public E get(int index):返回指定索引处的元素
                         public int size():返回集合中的元素的个数
                         public boolean remove(Object o):删除指定的元素,返回删除是否成功
                             public E remove(int index):删除指定索引处的元素,返回被删除的元素
                         public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
18.IO流
        1.IO流用来处理设备之间的数据传输
             Java对数据的操作是通过流的方式
            Java用于操作流的类都在IO包中
          流按流向分为两种:输入流,输出流
        2.1FileWriter
                构造方法
                        FileWriter(String fileName) 传入一个文件的路径
                成员方法
                        void write(String str) 向文件中写str
                        void flush()  将内存中的数据刷新到文件中
                        void close()  关流释放系统底层资源
                        void write(String str):写一个字符串数据
                        void write(String str,int index,int len):写一个字符串中的一部分数据
                        void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以

写char对应的int类型的值。'a',97
                        void write(char[] chs):写一个字符数组数据
                        void write(char[] chs,int index,int len):写一个字符数组的一部分数据
        2.2FileReader
                FileReader(String fileName):传递文件名称
        3.缓冲流
                BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
                BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
                缓冲流的特殊功能:
                        BufferedWriter
                                void newLine():写一个换行符,这个换行符由系统决定
                        BufferedReader
                                String readLine():一次读取一行数据,但是不读取换行符
作者: tom19970323    时间: 2018-4-3 08:58
笔记还行

作者: 小浙姐姐    时间: 2018-4-6 14:49





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2