黑马程序员技术交流社区

标题: 小白报道,java基础知识总结 [打印本页]

作者: 叫我小杰啊    时间: 2018-3-24 21:52
标题: 小白报道,java基础知识总结
                                                   
jdk和jre 和jvm
                        我们程序必须要有jvm才能运行
                        jre里面就有核心类库 也有jvm
                        jdk包含一些开发工具 也包含jre
                        jdk> jre >jvm

                        开发人员  jdk
                        客户人员 jre
标识符:
                标识符:起名字 / 除了关键字的单词 全部都是标识符;
                标识符可以自己定义:
                        规则:
                                组成 数字 字母 _ $
                        注意:
                                不能以数字开头
                                不能是关键字
                        约定俗成的习惯:
                                类名,接口名: 首字母大写,如果包含多个单词的,后续的单词每个首字母都大写
                                        HelloWorld   Student   StudentTest
                                方法名,变量名:首字母小写,如果包含多个单词的,后续的单词每个首字母都大写
                                        get  getSum   price  applePrice
                                常量名: 所有字母都大写,如果包含多个单词的,单词之间用_隔开
                                        JAVA_HOME
                               
               

常量和变量:
                常量:运行过程中 其值不会发生改变的量就是常量
                变量:运行过程中 值可以发生改变的量
                        定义格式: 数据类型 变量名 = 初始化值;
计算机中的存储:
                最小的信息单元:bit
                最小的存储单元:byte  = 8个bit位
为什么要有数据类型呢:
                                java是强类型语言:规定了每种数据的类型
                                        有好处:节约空间 内存
                                               
                                也有的语言是弱类型语言: 不算什么数据就一种类型
byte < short < int < long  <float < double
数据的类型转换:
                隐式转换:从小 自动就能提升为大的类型
                        byte < short,char < int < long  <float < double
eclipse的设置:
                行号: 左侧右键 show lineNumbers
                字体: windows preferance   搜索font
                窗口乱了: Windows reset
                控制台消失了:Windows show view  concle

快捷键:
                main +   alt + /
                syso +   alt + /
                ctrl + /  
                ctrl + shift + /
                ctrl + shift +\
                ctrl + shift + f
逻辑运算符:
                & : 和                        真和假   有假则假
                | : 或                        真或假   有真则真
                ^ : 异(是否不同)        是不同 真, 是相同 假,
                ! : 非 取反                非真则假  非假则真
               
                参与逻辑运算符的量 都必须是 Boolean类型的, 结果也都是Boolean类型的


                &&:和&执行结果一样, && 效率高。 true && false ,当左侧是false的时候 右边不再看
                ||:

键盘录入:
1:第一步:导包
                在类的上面写 import java.util.Scanner;
        2:第二步: 创建Scanner对象
                Scanner sc = new Scanner(System.in);
        3: 第三步: 对象调nextInt()方法
                int a = sc.nextInt();
if:
                   if的第一种格式
                        if(关系表达式){
                                语句体;
                        }
if的第二种格式
                        if(关系表达式){
                                语句体一;
                        }else{
                                语句体二;
                        }

                if的第三种格式
                        if(关系表达式1){
                                语句体一;
                        }else if(关系表达式2){
                                语句体二;
                        }else if(关系表达式3){
                                语句体3;
                        }else{
                                语句体n;
                        }
switch:
                switch(表达式){ // byte short int char  jdk1.5之后枚举  jdk1.7版本String
                        case 值1:
                                语句;
                                break;
                        case 值2:
                                语句;
                                break;
                        case 值3:
                                语句;
                                break;
                        default:
                                语句;
                                break;
                }
for循环:
                for(初始化语句;判断条件语句;控制条件语句){
                        循环体;
                }
for循环可以和if嵌套
while循环
                初始化语句;
                while(循环判断条件){
                        循环体;
                        控制条件语句;
                }
do while循环:
                初始化语句;
                do{
                        循环体;
                        控制条件语句;
                }while(循环条件);
       
三种循环的区别:
                dowhile 和 for 和while的区别:
                        dowhile,先执行后判断的,所以肯定会执行一次循环体。
                        for和while 第一次判断是false话 不会再执行循环体
               
for和while有什么区别:
                        for循环的初始化变量一般都定义在for循环的里面。所以for循环结束之后 变量释放了 就不能再用了
                        while循环的初始化变量都是定义在while循环的外面,所以while循环结束后 还是能继续使用。
                控制循环的语句break和continue:
                break:的作用就是强制中断循环。
                        注意事项:break只能写在循环中和switch结构中。
               
                continue:终止本次循环,继续下次循环。

switch的注意事项:
        1:default无论放在switch的任何的位置, 都是先去看case 最后才去看default
        2:如果执行了一个case之后,里面没有遇到break, 直接case穿透(直接执行下一个case里面的内容,直到遇到break为止,或者到最后一个})
Random 随机数
        导包:import java.util.Random;
        创建对象: Random r = new Random();
        获取随机数: int a = r.nextInt(10);
数组
        数据类型:
                基本类型
                        整型
                                byte
                                short
                                int
                                long
                        浮点型
                                float
                                double
                        布尔型
                                boolean
                        字符型
                                char
                引用类型
                        类
                        接口
                        枚举
                        数组
数组的定义:
                三个容器:
                        变量 只能存一个
                        数组是一个容器,存很多,但是固定长度
                        集合是一个容器,存很多,长度不固定。
初始化:
                可以分为动态初始化与静态初始化
方法(函数):
        方法的定义格式
                修饰符 返回值类型 方法名 (参数类型 参数名, 参数类型 参数名2,....){
                        方法体;
                        return 返回值;
                }
注意事项:
                        方法绝对不能嵌套;
                        方法不调用就不会执行。
                        方法作用是为了提高程序的复用性
                               
方法的调用:
                有返回值的方法,可以输出调用,也可以赋值调用, 虽然可以单独调用,但是单独调用没有意义。
void方法的使用:
                当一个方法执行之后,不需要让这个方法返回一个值。 这时候 就需要让方法的返回值类型 写void
                注意:void的方法 里面也可以有return 但是不能在return后写值。
方法的重载
                当一个类中, 出现方法名相同,参数列表不同,返回值无关,我们称这两个方法之间相互重载。
                        方法名必须相同
                        参数列表必须不同
                        返回值无关
基本类型的参数传递
                形式参数的改变不影响实际参数; 原因是因为 基本类型的数是存在栈内存中。
                内存:
                        栈: 执行方法用的
                        堆: 存储一些引用型数据的 数组
                        方法区:存储一些class文件的
                       
                        本地方法区: 存储一些本地方法的
                        寄存器:cpu
引用类型的参数传递
                形式参数的改变会影响实际参数, 原因是因为,引用类型的数据存在堆内存中,可以有很多个引用执行的,很多个引用共享他。
        debug: 断点调试;
                f6 是下一步
                f5 (执行到调用方法的那一步的时候)是进入方法
                debug的操作, 以及操作窗口的用处
        事物:
                        属性:姓名 年龄 性别
                        行为:能做什么  买电脑  上厕所 学习  吃饭 思考

                        应该在类当中定义为:
                        成员变量:
                                类中 方法外面;
                                不需要初始化;
成员变量和局部变量的区别:
                写的位置不同:
                        成员变量:类中 方法外
                        局部变量: 方法内
                内存位置不同:
                        成员变量: 堆
                        局部变量: 栈
                声明周期:
                        成员变量:随着对象的创建而存在 随着对象的消失而消失
                        局部变量:随着方法的调用而存在 随着方法的调用完毕而消失
               
                初始化:
                        成员变量:有默认初始化
                        局部变量:没有默认初始化 : 所以使用之前必须先赋值。
               
private: 修饰成员用(一般修饰成员变量)
                被private修饰的成员, 只能在本类中访问 ,之外的任何地方不能直接访问

                所以一般被private修饰的成员变量, 我们都会提供给外界一个 set 和get方法(这两个方法都是public 外界直接能够访问的)
面向对象:
                封装:
                继承:
                多态:
       
封装:
                把不需要对外展示的内容 隐藏起来,并对外提供公共的访问方式。
                比如面向对象: 成员变量加private 提供公共的set和get方法。
       
                好处:安全, 提高代码的复用性

       
就近原则:
                方法内,在使用变量的时候,会先去局部范围找这个变量,有就使用, 如果没有 才去成员位置找这个变量,如果有就使用,如果没有就报错了。
       
        this:
                代表的是当前类的当前对象
                this说: 谁调用我  我就是谁

       
构造方法:
                1:创建对象的时候 就肯定会调用构造方法;
                        顾名思义: 为了创建对象而存在的方法
                2:如果我们在一个类中没有给出任何构造方法, 系统会提供一个默认的 无参构造。
                3:如果我们提供了任何构造方法,系统就不会再听默认的无参构造方法了
                4:一个类中可以有多个构造方法,只要参数列表不同即可,也就是构造方法可以重载。





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