--------------
排序
冒泡排序(从小到大排)多轮交换赋值
每轮相邻的两个元素进行比较(后一个和前一个进行比较),如果前一个比后一个大则发生交换;每一轮将最大值放到最后
选择排序(从小到大排)找到下标,再一次性交换
先定义一个最大的元素,用index记录该轮最大值元素的下标,找到最大值后,再交换
插入排序
将数组分成两部分,将后部分的第一个元素和前部分的每一个元素比较,然后放到合适的位置
快速排序
归并排序
希尔排序
--------------
复习
1.方法中定义的基本数据类型没有初始值,但是如果是定义成员变量时(在类中),有初始值
(待验证)引用数据类型有初始值
char 0~65535
2.原码
反码
补码
正数三个码都一样,负数反码除最高位(符号位:正数是1,负数是0)以外其他全部取反(~),负数补码是反码+1
3.& &&(短路与)即当前面判断出来有false时不再判断后面的表达式(1<0 && 1>0) 答案是false,但是没有判断1>0
4.位运算符 & 有0出0,全1出1
| 有1出1,全0出0
^ 相同出0,不同出1
5.JVM内存
方法区:类相关的信息
方法栈:局部变量/临时变量
堆:引用类型的真正数据存在的地方,对象(使用地址访问?待定)
--------------
面向对象:OOP
java -> 一切皆指对象
1.类和对象
1).对象:符合类的特征的真实独立存在的个体
2).类:所有同种类型的对象所拥有的特征/行为,抽象出来就是类(个人理解:类是某些事物的共同的特征的集合,比如鱼有很多种类,鱼就是一个类(模糊概念),而草鱼就是一个对象(具体实例))
3).类和对象的关系
写java代码时:先有类,再有对象
从逻辑分析:先有对象,再有类
2.类的定义
1).有实际意义的类
例如:学生/桌子/人
2).没有实际意义的类
作用:放主方法
3.实体类
成员变量
有默认初始值:
引用数据类型:null
基本数据类型:0
成员方法
4.类的使用(不能在类中创建类)
调用成员变量(成员方法)
对象名(引用名).成员变量(成员方法)
5.局部变量和成员变量的区别:
1).声明位置的区别
局部变量:在方法中
成员变量:在方法外类中
2).局部变量:
使用前必须初始化
成员变量:有初始值,可以不初始化
3).在JVM内存中的区别
局部变量:在方法栈中,方法结束,方法栈消失,变量消失
成员变量:
存在内存堆中,和对象一起
PS:类只加载一次,并且是在第一次创建类的对象之前就已经加载到了方法区中
-------------------
变量命名规范
1).变量名:
1.字母+数字+_+$
2.不能数字开头
3.可读性要好,第一个单词的首字母小写,后面单词的首字母都大写
2).包名:全小写,域名要倒写
3).方法名:可读性要好,第一个单词的首字母小写,后面单词的首字母都大写
4).类名:首字母大写