经过这几天的学习,我才发现基础真的是太重要了。之前在学校里学习刚开始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() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。
以上便是我这些天学到的基础知识。我整理的可能会有遗漏,但是许多重要的知识点应该都罗列其中。经过这几天的学习发现了自己还有许多不足之处,我会努力改进,谢谢。
|
|