Java入门基础知识
大家好,以下是本人在基础班学习所掌握的入门知识中我认为的重点以及难点以及我认为大家需要理解掌握的一些java入门基础。由于篇幅有限,所以只写了基础班前六七天的内容。(个人记录,仅供参考)
一、数据类型转换(熟练理解)
1、自动类型转换,强制类型转换
自动类型转换
规则:数据范围从小到大。
数据类型范围大小排序(部分):
byte<short<int<long<float<double char<int(数据类型范围与字节数是不一定相关的)。
强制类型转换 (不能随便使用,一般不推荐使用)
格式:范围小的类型 范围小的变量名 =(范围小的类型)原本范围大的数据
编译器的优化 (两点) (不止对这三种类型有优化)
* byte、short、char这三种类型,如果右侧的【赋值】(直接赋值)没有超过左侧数据类型范围,那么javac编译器会为我们补上一个(byte)(short)(char)。(编译器隐含的强制转换) 没有超过范围,强转;超过范围,报错。
* 变量进行赋值时,如果右侧全是常量,那么编译器将会直接将常量计算出结果(编译器的常量优化)注:一旦表达式中有变量参与,那么就不能进行这种优化了。(直接报错)
二、循环结构
循环语句:for循环 while循环 do while循环;
三种循环的区别
1、如果条件从来都没满足过,那么for循环和while循环将会执行0次,
但do while 循环会执行至少一次
2、for循环的变量在小括号当中定义,只有循环内部才可以使用。
while do-while定义在外面,出了循环也可以使用。
关于循环的选择的建议
凡是次数确定的场景多用for循环;否则多用whille循环。
循环基本组成部分(四部分):
【1】初始化语句:在循环做开始最初执行,而且只做唯一的一次。
【2】条件判断:成立,循环继续。不成立,循环退出。
【3】循环体:重复要做的事情内容,若干行语句
【4】 步进语句:每次循环之后都要进行扫尾工作。
嵌套循环(深刻理解嵌套过程)
三、方法概述
方法其实就是若干语句的功能集合。
【1】定义方法的完整格式:
修饰符 返回值类型 方法名称 (参数类型 参数名称, .....){
方法体
return 返回值;
}
【2】方法调用的三种格式:
单独调用:方法名称 (参数);
打印调用: System.out.println (方法名称 (参数));
赋值调用: 数据类型 变量名称 =方法名称(参数);
System.out.println (变量名称)
注意:返回值类型为void,只能用单独调用。没有返回值。。
【方法重载】Overload
多个方法的名称一样,但是参数列表不一样。好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能
方法重载与下列因素相关
1、参数个数不同
2、参数类型不同
3、参数的多类型顺序不同
方法重载与下列因素无关
1、与参数的名称无关
2、与方法的返回值类型无关
四、数组 (引用类型)
数组的概念:是一种容器,可以同时存放多个数据值。注:数组的长度可以为0;
数组的初始化:在内存当中创建一个数组,并且向其中赋予一些默认值。
1、动态初始化:(指定长度)
数据类型[] 数组名称 = new 数据类型 [数组长度];
2、静态初始化:(指定内容)
标准格式:
数据类型[] 数组名称 = new 数据类型 [] {元素1,元素2,......};
省略格式:
数据类型[] 数组名称 = {元素1,元素2,......};
如何获得数组的长度,格式 :
数组名称.length (会得到一个int数字,代表数组的长度)
数组一旦创建,程序运行期间,长度不可以改变。
遍历数组: 就是将数组中的每个元素分别(逐一)获取出来,就是遍历。
遍历也是数组操作中的基石。
默认的处理方式就是打印输出(用for循环,i值换成数组名称.length)
数组可以作为方法的参数。
当调用方法的时候,向小括号传参,传递的是地址值。
数组可以作为方法的返回值
当返回时,返回值传递也是地址值
五、java中的内存划分:(5个部分)
为了提高运算效率,就对空间进行了不同区域的划分,
因为每一片区域都有特定的处理数据方式和内存管理方式。
1、栈(Stack):存放的都是方法中的局部变量,运行方法必须在栈里面
局部变量:方法的参数,或者是方法{}内部的变量
作用域:一旦超出作用域,立刻从栈内存中消失。
2、堆(Heap):凡是new出来的东西,都在堆中。
堆内存里面的东西都有一个地址值:16进制
堆内存里面的数据,都有默认值。规则:(同数组)
3、方法区(Method Area):存储.class相关信息,包含方法的信息。
4、本地方法栈(Native Method Stack):与操作系统相关。
5、寄存器(pc Register):与CPU相关。
六、面向对象思想
【1】面向对象思想的概述
面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲历亲为,
详细处理每一个细节。(强调步骤)
面向对象:当需要实现一个功能的时候,不关心具体的步骤而是找一个已经
具有该功能的人,来帮我做事。(强调对象)
【2】类和对象
1、类的定义:
定义类:就是定义类的成员,包括成员变量和成员方法。
格式 :public class 类名{
//成员变量
//成员方法
}
2、创建对象的步骤:
导包:也就是指出需要使用的类,在什么位置。
import 包名称.类名称;
(对于和当前类属于同一个包的情况,可以省略导包语句不写。)
创建对象:
类名称 对象名 = new 类名称();
使用:
使用成员变量:对象名.成员变量名
使用成员方法:对象名.成员方法名(参数)
3、面对对象三大特征(封装、继承、多态)
封装性:就是将一些细节信息隐藏起来,对外界不可见。
在Java中的体现:
1、方法就是一种封装
2、关键字private也是一种封装。
4、标准的类
1、成员变量都要用private修饰
2、编写一个无参构造方法
3、编写一个全参构造方法
4、为每个成员变量编写一对getter / setter 方法
【3】构造方法
构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法 。
类名称 对象名 = new类名称();
格式:
public 类名称(参数类型 参数名称){
方法体
}
七、一些常用的引用类型(Scanner、Random、ArrayList集合…)
引用类型的使用步骤:
导包:import 包路径.类名
创建对象:类名称 对象名 = new 类名称(参数列表);
调用方法:对象名.成员方法名;
【1】Scanner类是一个可以解析基本类型和字符串的简单文本扫描器。
Scanner类可以帮助我们从键盘输入数据,到程序中;
【2】Random 类
创建随机数
调用int num = r.nextInt(n) ;
注:1、前面需要定义n ,范围为[0,n)
2、如果没有参数,取值范围为int的范围
【3】ArrayList类(集合)
1、什么是ArrayList类
java.util.ArrayList是大小可变的数组的实现,存储在内的数据称为元素。
此类提供一些方法来操作内部存储的元素。
ArrayList 中可不断添加元素,其大小也自动增长。
<E>表示一种指定的数据类型,叫做泛型;也就是装在集合里面的所有元素,
全都是统一的什么类型。泛型只能是引用类型,不能是基本类型
注意事项:
ArrayList 直接打印的是内容,不是地址值;如果内容为空,得到的是空括号:[]
常用调用的方法:
list.add(元素);(将元素添加到集合)
list.remove (index) :移除此集合中指定位置上的元素。返回被删除的元素。
list.get (index) :返回此集合中指定位置上的元素。返回获取的元素。
list.size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界
2、存储的是引用类型
3、如何存储基本数据类型
ArrayList对象不能存储基本类型,只能存储引用类型的数据
ArrayList 存储基本数据类型对应的包装类型是可以的
将基本数据类型转换成对应的包装类型
基本类型 转 对应包装类型
除int--->Integer 、 char---->Character外
其他的都将基本类型的首字母大写
4、可以存储对象(类)
5、集合可以作为方法的参数和返回值。(传递的都是地址)
|
|