day06–>[数组]
概念:
用于存放多个同种类型数据的容器
定义格式:
静态初始化:
概念:在创建数组的时候,直接把数据保存到数组中
格式:简写格式: 数据类型[] 变量名={元素,元素2..}
例如:int[] arr={11,22,33}或者int[] arr=new int[]{11,22,33}
使用场景:如果我们在定义数组的时候已知数组的元素
动态初始化:
概念:在创建的数组不用指定元素,要指定数据类型和数组的长度
格式:数据类型[] 数组名=new 数据类型[长度]
例如:int[] arr=new int[ 6 ]-->即长度为6的动态数组
使用场景:如果我们在定义数组的时候,不明确具体元素
数组的访问:
元素访问:数组名[索引] 索引其实就是数组的元素的编号。从0开始
获取数组的长度:数组名.length
表示数组的最大索引:数组名.length-1
数组的遍历:for(int i=0;i<数组名.length;i++){
数组名[i];代表数组的每一个元素 }
数组中常见的两个异常
数组索引越界异常: 访问的索引超过了数组的长度(ArrayIndexOutOfBoundsException)
空指针异常:数组赋值为null 之后,不允许访问元素和长度
内存:
方法区:字节码文件、static修饰的方法
栈:方法运行的内存区域、方法中定义的变量
堆:但凡是new出来的东西都存发在堆中,有地址值,默认赋值
debug:
作用:用来调试程序,查看程序的执行流程
步骤:1、先打断点,2、debug的模式去启动,3、f7或f8
day07–>方法
概念:
其实就是一个相对固定的格式
好处:方便我们维护代码【一个功能对应一个方法】、可以重复使用
格式:
普通的方法:
定义格式:public static void 方法名(){....}
调用格式:方法名()、类名方法名()
带参数的方法:
定义格式:public static void 方法名(数据类型 变量名 , 数据类型 变量名... ){..}
调用格式:方法名(值 , 值....);
参数的作用: 可以接收别的方法传递进去的数据
带返回值的方法:
定义格式:public static 数据类型 方法名(数据类型 变量名..){return 数据; }
调用格式:
直接调用:方法名(值1 , 值2...);
赋值调用:数据类型 变量名 = 方法名(值1 , 值2...);
输出调用:sout(方法名(值1 , 值2...));
返回值的作用:把自定义方法的结果,带回到方法调用的地方
应用场景:
代码量多的时候,可以根据功能划分,用对应的方法存放对应的代码
如果一个程序中,多处使用到相同的代码,可以抽取成一个方法,方便重复去使用
注意事项:
方法不能嵌套定义
如果方法声明为void 一般不写return,如果写return后面就不能接数据
return可以返回数据,也可以结束方法
方法的完整性
方法重载:
概念:同一个类、相同的方法名。参数列表不同【数据类型不同、参数的个数不同】
好处:不用记那么多方法的名字
特点:跟返回值没有关系,只跟方法名字和参数列表有关
方法参数传递:
基本数据类型:自定义方法的变量值改变,方法外的变量不会改变
引用数据类型:自定义方法的变量值改变,方法外的变量会改变
day08–>面向对象
概念:其实就是一种编程思想,我们写代码的一种套路,我们大都是创建对象,然后调用方法处理事情。
类:
概念:就是一种模板,自定义的容器,我们定义需要处理的数据,以及处理数据的方法
内部定义:
成员变量:规定类中可以存放何种数据
成员方法:可以用来处理数据
格式:public class 类名{
数据类型 变量名;
数据类型 变量名;
public 数据类型/void 方法名(){
return 值; }
}
对象 :
概念:特殊的数据结构、类是模板,它是具体的实例
作用:存放数据、处理数据
创建方式:类名 对象名 = new 构造器();
数据使用:成员变量->对象名.变量名; 成员方法使用->对象名.方法名(值);
注意事项:
命名规范:大驼峰命名法,每个单词首字母需要大写,见明知意
成员变量初始化:
整数:0;小数:0.0;布尔值:false;引用数据类型:null
一个java文件,可以定义多个class,只有一个class可以使用public修饰,跟文件名一样的class名。
定义多个对象,他们相互之间,没有影响。如果多个变量指向同一个对象,那么就有影响。
如果一个对象没有任何的变量引用它,它就会成为垃圾,然后等待垃圾回收机制清除。
this关键字:
概念:就是一个变量
代表谁:方法被哪个对象调用,this就代表哪个对象
使用场景: 如果方法中存在和类中的成员变量名字相同的时候,this.变量 ==》 类中的成员变量
构造器:
作用:创建对象、同时可以给对象的成员变量进行初始化
格式:public 类名(){ }
注意事项:
没有void,也没有返回值类型。
方法名一定要和类名一致。
如果我们不写构造器,系统会默认给我们提供一个无参的构造器。
建议写上无参和满参构造器。
JavaBean:
私有所有的成员变量。
提供对应 get/set方法。
提供 无参和满参构造器。
成员变量和局部变量的区别:
定义的位置:成员变量(类中方法外)、局部变量(方法里面)
内存上:成员变量(堆内存)、局部变量(栈内存)
初始化值:成员变量(有)、局部变量(无,一定要先赋值才能使用)
作用域:成员变量(整个类)、局部变量(方法中)
生命周期:
成员变量:随着对象的创建而创建,随着对象的消失而消失
局部变量:随着方法的调用而创建,随着方法的消失而消失
day09–>String(API)
API帮助文档:
作用:用来查看Java给我们提供的类的信息
包:
作用:用来管理我们写好的程序
注意事项:
同包下的类,可以直接使用,不需要导包。
不同包下的类,就需要导包。
Java提供的类,需要导包。如果是属于java.lang包下的类就不需要导包。
如果一个程序用到多个同名的不同包下的类,只能导入一个类。其他的都要用包名+类名的方式访问。
String:
概念:代表字符串
封装数据:
直接赋值:String s = "abc";
构造器:String(),String(byte[] bytes),String(char[] chs),String(String str)
处理数据的方法:
字符串遍历:
获取字符串的长度——int length();
获取指定索引处的字符——char charAt(int index);
把字符转化为字符数组——char[] toCharArray();
字符串内容的比较:
严格区分大小写:boolean equals(Object obj)
注意:只有传入字符串才会比较内容,如果传入其他的类型的数据,直接返回false
忽略大小写:boolean equalsIgnoreCase(String str)
字符串的内容截取:
从指定索引,截取到另外一个索引:String substirng(int beginIndex , int endIndex)
从指定索引,截取到最后:String substring(int beginIndex)
其他的方法:
字符串内容的替换:String replace(String oldStr , String newStr);
判断是否有指定的字符串: boolean contains(String str);
判断你是否以指定内容开头:boolean startsWith(String str);
把字符串按照指定格式分割:String[] split(String regex);
day10–>ArrayList
作用:
一个容器,可以存放同种类型的多个值。它的长度可以发生改变。
创建对象:
ArrayList<类型> list = new ArrayLsit<>();
<类型> : 泛型——用于指定集合存放数据的类型
常用方法:
增:boolean add(E e)、void add(int index, E e);
删:boolean remove(Object obj)、E remove(int index);
改:E set(int index , E e);
查:E get(int index)
大小:int size();
遍历:
for(int i = 0 ; i < list.size(); i++){
list.get(i); }
注意事项:
如果是顺着删除数据,要加上i--
如果是倒过来删除数据,就不需要