程序基础
一、数据类型
①定义:本质就是规定占用内存空间的大小,限制数据的格式类型
大体上分为基本数据类型和引用数据类型。基本数据类型又分为字符型(char),布尔型(boolean),和数值型 其中数值型又分为整数型(byte、short、int、long)和浮点型(float、double);引用数据类型分为类,数组,接口
二、变量
①是什么: 可以更改的量,方便操作,可以重复使用,有名字的内存空间
②干什么: 保存数据,操作数据
③声明 : 数据类型 变量名=值; 例子 int a=2;boolean b=false;char c=‘a’; float f=1.5f double d=2.5; long l=123L; 注意:long型 要在值后面加l,float型要在值后面加f;
④分类:
静态变量:类体中使用static修饰,属于类级别变量,该类所有对象,值共享
成员变量:类体中没有static修饰,属于对象级别,对象之间变量值不共享
局部变量:方法中声明的变量,由于方法不调用不执行,调用才执行,并且执行完栈帧销毁,所以方法在栈内存是临时性的,不适合长期存储,另外,局部变量的作用域只能在该方法中,局部变量没有默认值,而静态变量和成员变量有默认值
⑤调用
静态变量:类名.静态变量名,当前类中可以直接写变量名调用
成员变量:对象引用.成员方法名,在成员方法中,调用当前对象中的成员变量可以直接写变量名调用
局部变量: 只能在当前方法中,直接写局部变量名进行调用
如果局部变量和静态变量/成员变量同名,则局部变量优先级大于静态和成员 在方法中,可以使用类名区分同名的静态变量和局部变量 在成员方法中,可以使用this.区分同名的局部变量和成员变量
三、运算符
i++ :先运算在赋值
++i :先赋值在运算(先执行加1操作,在进行运算)
右移运算符 >> :考虑符号位,再怎么移动,符号位不变
向右移动一次 就等于除以2 例:8>>2:0000 0010
如果是正数,左边补0(符号位之后补0),如果是负数,左边补1
左移运算符 <<: 考虑符号位,再怎么移动,符号位不变
向左移动一次,就等于乘以2
2<<2 向左移动两次,向右补0(正负数都补0)
>>>:右移运算符(不考虑符号位,符号位之前补0,并且不管正负数,只补0)
8>>2和8>>>2 没有区别
-8>>2和-8>>>2就有区别
&&和&:两边都是true,结果才是true
&&:短路与,加入第一个条件为false,则第二个条件不执行
&:不管第二个条件是否为false,第二个条件依然会执行
||和|同上
四、方法
①定义:一堆代码的集合
②优点:代码复用,程序简洁清晰,易维护,易扩展,灵活度高
③声明 语法: 修饰符列表 返回值类型 方法名(参数列表){方法体}
④修饰符列表有四大类 public、private、protected、default 这四大类后面可以加上static也可以不加static,加上static的被称为静态方法,不加static的被称为成员方法。
返回值类型有11中,其中包括八种基本类型和三种引用类型
方法名:随意取,但要做到见名知义,驼峰命名
参数列表:可以有参 就是括号里面写(数据类型 参数名) 也可以无参 就是括号里面不要东西,空着就可
方法体:具体要求具体分析
⑤例子 静态方法: public static void m1(){} 这是一个无参的静态方法
成员方法: public void m2(){} 这是一个无参的成员方法
⑥调用:
a.静态方法调用 类名.静态变量(这是把静态方法赋值给一个静态变量,然后之间调用静态变量即可) 或 类名.静态方法(参数) 注意:调用当前类中的静态属性,类名可以省略
b.成员属性调用
对象名.成员变量 对象名.成员方法(参数)
加前缀(对象名)是为了找到 因为对象保存在堆内存当中得加前缀
创建对象 语法格式: 类名 对象名=new 类名();
注意:成员属性调用必须先创建一个对象,再去调用
其中 new的作用是在堆内存创建对象
test_01();的作用是调用构造方法
c.构造方法
①语法格式: 修饰符 方法名/类名(参数列表){方法体}
其中修饰符可以不写,就是默认的default,且我们只使用权限控制即可,不能使用static 方法名必须和类名一致,参数列表写不写都行,就是无参和有参嘛,方法体具体情况具体分析,构造方法没有返回值,连void都没有
②如果该类中编写了构造方法,不管写的是不是有参,则默认的无参构造都不会自动生成,所以当我们写有参构造的时候,可以手动编写一个无参构造
③应用场景:创建对象的时候使用
注意:方法不调用不执行,调用才执行,并把结果返回到调用处
方法重载 Overload
方法名相同,参数列表不同
列表不同分为:类型不同或个数不同
五、递归
在方法中对当前方法进行调用,注意终止条件
常见异常:栈内存溢出
六、数组
①、是什么 :数组是引用数据类型,并且数组源自底层的数据结构,用来保存和处理多个相同类型的数据值的集合成为数组
并且数组存储方式是连续存储的,并且每个元素有独一无二的下标来标识,且数组长度一旦确定不能更改
优点:数组在查询和更改的情况,效率极高
缺点:在添加和删除效率较低,因为数组长度不能更改,想要添加或者删除数据,必须先创建一个新数组,然后把原数组中的数据复制进去,在复制的过程中进行添加和删除操作
另外 数组还有一个length属性,保存数组的长度,且数组的下标是从0开始的
②、应用场景:用来保存多个数据,并且查询和更改操作较多的情况下,推荐使用数组
③、声明
静态声明:已知数组中每个元素内容的情况下使用静态声明
数据类型[] 变量名={值1,值2…}
数据类型[] 变量名=new 数据类型[]{值1,值2…}
动态声明: 在不知道数组中每个元素内容的情况下,使用动态声明
数据类型[] 变量名=new 数据类型[长度] ;
④操作
查询: 数组[下标]
更改: 数组[下标]=值
遍历
for(int i=0;i<数组名.length;i++){
数组[i];
}
⑤插入复制
⑥ 冒泡排序
相邻的元素进行比较,如果前面大于后面,就交换位置,比较一轮之后,最后一个一定最大的,对以上步骤重复操作
⑦选择排序
思想:假设当前这个数是最小的,
用该数据一次和后面所以数据进行比较,如果发现比当前元素小,就交换下标
比较一轮结束后,当前保存的一定是最小元素的下标
在来一遍循环
⑧二分查找
面向对象
面向对象和面向过程
类和对象
类 定义属性模板,只定义有什么属性什么功能
对象 具体的个体,封装了属性的值
构造方法
实例化对象使用,创建对象时会自动调用构造方法
实例化对象
加载类到静态区
堆内存创建对象空间
执行构造方法
返回堆内存地址
对象使用
对象.成员变量
对象.成员方法(参数)
this
表示当前对象内存地址
区分成员和局部
重载调用构造方法
链式调用
static
修饰静态关键字
静态变量
静态方法
静态语句块
封装
包机制
导包
权限控制修饰符
继承 extends表示
super 表示父类型特征
覆写 父类功能无法满足子类需求的时候,需要进行方法覆写
必须有继承关系
方法名,返回值,参数列表必须一致
不能有更低的访问权限
不能有更宽泛的异常



