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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

高晓雨

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 高晓雨 初级黑马   /  2018-7-18 22:49  /  829 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

经过这几天的学习,我才发现基础真的是太重要了。之前在学校里学习刚开始java的时候觉得前面一点知识都不太难。所以就一边听一边玩,到了后面就听不懂了,之后就没怎么学了。现在想想,当时的我真的愚昧。万丈高楼平起,基础决定了高度。下面我就把我这几天学到的基础知识整合一遍。
    第一天学的有一下内容:进制转换、命令提示符(cmd)、环境变量的配置、关键字的概念、类的命名规则、常量、数据类型以及变量。其中进制转换需要了解十进制和二进制之间的转换。命令提示符有几个重要的命令需要记住并能熟练使用,例如dir显示目录结构、切换盘符以及怎么进入文件夹的命令。环境变量的配置需要掌握。关键字的概念:系统中被保留的,有特殊含义的,不可被占用的词汇,这个需要了解。但需要注意:关键字完全是小写的 且在高级编译器中有特殊颜色。类的命名规则:用26个英文字母  0~9个数字 $符号 下划线_  组成。需要注意:
                       类名不可以用数字开头
                       类名不可以是关键字
     类名方式:大驼峰式 首字母大写 后面每个单词首字母大写
     变量(方法)名:小驼峰式  首字母小写 后面每个单词首字母大写。
然后就是六个常量:字符串常量、整数常量、浮点数常量、字符常量、布尔常量以及空常量(null)。接着便是数据类型,分为基本数据类型和引用类型。基本数据类型分为四类八种。
基本数据类型:整型:byte(1字节)  short(2字节)  int(4字节)  long(8字节))
              浮点型:float(4字节) double(8字节)
              字符型:char(2字节)
                    布尔型:boolean(1字节)
这个需要重点掌握,后面用的特别广泛。

    第二天学的是数据类型转换、ASCII码表、运算符以及简略的介绍了方法。数据类型转换分为:自动类型转换(数据范围小到数据范围大的) 、强制类型转换(格式:数据类型小的 数据类型小的变量名= (数据小的类型) 数值大的类型)。还有比较重要的是编译器的两点优化:对于byte/short/char三种类型来说,如果右侧数值没有超过范围,那么javac编译器会自动隐含的为我们补上一个(byte)(short) (char)
        如果没有超过左侧的范围,编译器补上强转
        如果右侧超过了左侧的范围 ,那么编译器会报错
第二点优化是常量优化:byte/short/char 在进行运算符运算时会自动提升为int型
ASCII表记住:  0代表48 、 A代表65 、 a代表97
运算符中需要掌握三元运算符。
其格式为:数据类型 变量名 = 条件判断?表达式A:表达式B
算数运算符:+   -   *   /   %   ++  --
     注意:1.除法是整除 只取商
           2.+法中byte/short/char类型会提升为int类型
           3.前 ++和 后++单独使用没有区别,但是与赋值语句或者打印操作混合就会有重大区别。
赋值运算符:
              +=      a+=3     相当于    a=a+3。
比较运算符:
                ==    >     <     >=     <=    !=(不相等,不相等是true)
                比较运算符结果一定是个布尔值
逻辑运算符:
              与(&&)     或(||)     非(取反)(!)
              注意:1. "&&"和 "||"具有 短路效果 ,如果根据左边判断得到最终结果,那么右边的代码不再执行,从而节省一定的性能。
方法(功能代码块的抽取)是很重要的知识点。
         格式:public static void 方法名(){
                             方法体
                         }
         位置:方法体放在类里面 main方法的外面
         方法的调用:在类里面 main方法的外面写  方法名();  即可完成调用
         注意:方法里面不可以嵌套方法
               方法先后顺序没有关系
               方法定义好了需要调用

第三天学习了判断语句、选择语句以及循环语句
判断语句单if语句、if else语句以及扩展格式需要掌握
Switch语句格式需要掌握。
Switch选择语句使用注意事项:
                        1.switch后面小括号当中只能是下列数据类型
                           基本数据类型:byte/short/char/ int
                           引用数据类型:String字符串(1.7版本之后),enum枚举
                         2.switch语句格式可以很灵活,前后顺序可以颠倒,而且break还可以省略.  但不推荐省略;因为switch语句具有穿透效果,直至遇到了break才结束
                         3. case后面的数值不可以重复
循环结构的基本组成部分,一般可分为四部份:
           1.初始化语句:在循环开始最初执行,而且只做一次..但如果是在嵌套循环里面就不是一次了 。2.条件判断。 3.循环体。4.步进语句
for 循环语句(适合确定循环的次数)、while 循环语句(不确定循环的次数)、do...while循环语句(比较少用)
三种循环体体的区别
         1. 如果条件从来没有满足过,do...while至少会执行一次.for循环执行0次,while循环执行0次
         2.大致确定循环次数用for循环,不确定次数用while

第四天学习了idea的使用和方法。
其中idea项目、模块、包的创建以及怎么导项目、模块和package需要掌握。快捷键也需要了解。
方法其实就是功能代码块的抽取。
方法的完整的定义格式是
修饰符  返回值类型  方法名称(参数类型 参数1, 参数类型 参数2.....){
                            方法体;
                             return 返回值 ;
                          }
方法的三种调用格式
                     1. 单独调用: 方法名称(参数);
                     2. 打印调用: System.out.println(方法名称(参数));
                     3. 赋值调用: 数据类型 变量名称 = 方法名称(参数);         
方法重载只需记住“同名不同参”即可。
第五天学习了数组。
数组:是一种容器,可以同时存放多个数据值.
特点:
          1.数组是一种引用数据类型
          2.数组当中的多个数据,类型必须统一
          3.数组的长度在程序运行期间不可改变  
数组两种常见的初始化方式:动态初始化(指定长度)、静态初始化(指定内容)
注意事项:
              1.静态初始化没有直接指定长度,但是仍然会自动推算得到长度
              2.静态初始化标准格式可以拆分成两个步骤
                 int[] arrayB;(声明数组)
                arrayB = new int[] {11,21,31}(初始化)
              3.动态初始化标准格式可以拆分成两个步骤
                 int[] arrayC;
                 arrayC = new int[5];
              4.静态初始化的省略模式,不能拆分成两个步骤.
               
      使用建议:
                如果确定了数组中的内容用静态初始化数组,如果确定了数组长度用动态初始化数组。
使用动态初始化数组的时候,其中的元素会自动拥有一个默认值规则如下
               
         如果是整数类型      默认为0
         如果是浮点类型      默认值为0.0
         如果是字符型        默认为'\u0000'
         如果是布尔值        默认为false
         如果是引用类型      默认为null
java中内存划分:(划分为5个部分)
1.栈(Stack):存放的都是方法的局部变量
           局部变量:方法的参数,或者是方法{}内部的变量
           作用域:一旦超出作用域,立刻从栈内存中消失
2.堆(Heap): 凡是new出来的东西,都在堆当中
           堆内存里面的东西都有一个地址值:16进制
           堆内存里面的数据,都有默认值,规则:同上·
3.方法区(Method Area):存储class相关信息,包含方法的信息
4.本地方法栈(Native Method Stack):与操作系统相关
5.寄存器(pc Register):与CPU相关
数组可以作为方法的参数,也可以作为返回值类型
数组 常见的问题:数组索引越界异常、空指针异常。

注意:数组一旦创建,程序运行期间数组长度不会改变   

第六天学的是java中一种重要思想:面向对象
什么是类,类是一组相关属性和行为的集合,可以看做一类事物的模板。对象是一类事物的实例,是具体的。类是对象的模板,对象是类的实体。通常情况下,一个类不能直接使用,需要根据类创建一个对象才能使用。需要分为三个步骤:导包、创建、使用。
  类可以当做为参数类型,也可以作为返回值类型 。类做为参数类型时,传递进去的其实是地址值。
成员变量和局部变量的区别
      
1. 定义的位置不一样【重点】
局部变量:在方法的内部
成员变量:在方法的外部,直接写在类当中

2. 作用范围不一样【重点】
局部变量:只有方法当中才可以使用,出了方法就不能再用
成员变量:整个类全都可以通用。

3. 默认值不一样【重点】
局部变量:没有默认值,如果要想使用,必须手动进行赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样

4. 内存的位置不一样(了解)
局部变量:位于栈内存
成员变量:位于堆内存

5. 生命周期不一样(了解)
局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失

# 封装 #
        隐藏具体的实现过程,只需要向外部开放需要的原材料和产生的结果。
        在java中
                方法是一种封装
                private也是一种封装

#  private #
        private用来修饰成员变量和成员方法
        被修饰的成员是私有成员。只能在本类中直接使用,在其他类中不能直接使用。
#  this #
        this是用来区分成员变量和局部变量
        当局部变量和成员变量重名时,默认会使用局部变量
        如果想使用成员变量 请加this.

# 构造方法 #
        构造方法是一种特殊的方法。

        特点:
                构造方法的名字要和类名一致
                构造方法没有返回值类型,连void都没有
                可以写return 但是return后面不能写值。建议就不要出现return
第七天学习了API(应用程序接口)、Scanner类、匿名对象、对象数组、.Random类、ArrayList类等。API(应用程序接口)是一本程序员的字典。看三点内容:看包路径、看构造方法、看成员方法。Scanner类是引用类型,所以依旧要导包、创建、使用三个步骤。功能:是引用数据类型,可以实现键盘输入数据,到程序当中。匿名对象只有右边的对象,没有左边的名字和赋值运算符。匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。Random类是引用类型 ,所以依旧要导包、创建、使用三个步骤。功能:产生随机数。ArrayList类是引用类型 ,所以依旧要导包、创建、使用三个步骤。这里着重讲一下ArrayList类。是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储 的元素。 ArrayList 中可不断添加元素,其大小也自动增长 。<E>,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使 用一种引用数据类型将其替换即可。表示我们将存储哪种引用类型的元素。对于元素的操作,基本体现在——增、删、查。常用的方法有: public boolean add(E e) :将指定的元素添加到此集合的尾部。
public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。  public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。
   以上便是我这些天学到的基础知识。我整理的可能会有遗漏,但是许多重要的知识点应该都罗列其中。经过这几天的学习发现了自己还有许多不足之处,我会努力改进,谢谢。

1 个回复

倒序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马