day05 学习笔记
上节课知识的复习:
(1)for循环
最常用的,甚至只用for循环就可以解决任何循环问题。
for最常用的还是在与次数有关的循环处理。
(2)while循环
很常用,用在循环时候要先检查循环条件,再处理循环体。
常用在与次数无关的情况下
如果不能明确结束条件时,可以先使用while(true),在适当条件下时使用break结束循环。
(3)do while
较少使用
结束条件往往是“否定逻辑条件”,不便于思考业务逻辑。
(1)for循环
最常用的,甚至只用for循环就可以解决任何循环问题。
for最常用的还是在与次数有关的循环处理。
(2)while循环
很常用,用在循环时候要先检查循环条件,再处理循环体。
常用在与次数无关的情况下
如果不能明确结束条件时,可以先使用while(true),在适当条件下时使用break结束循环。
(3)do while
较少使用
结束条件往往是“否定逻辑条件”,不便于思考业务逻辑。
数组:
(1)数组元素按照线性顺序排列
(2)声明及创建方式:int[] arr = new int[10];
上述声明中,arr是引用变量,引用了一个数组对象 new int[10]
引用变量,相当于对象的专有代词
(3)创建数组对象时,数组元素是自动初始化的,初始化值为0值(根据数组对象类型不同而不同:
包括:0、0.0、false、\u0000(编码为0的字符,是控制字符))
(4)数组的静态初始化
int[] arry8 = {0,12,1};
只能在声明变量时直接赋值,不能用于之后的赋值
(5)数组的动态初始化
int[] arry7 = new int[]{1,2,3};
既可以用于声明变量时直接赋值,也可用于之后的赋值。
(6){0,0,0}、new int[]{0,0,0}、new int[3]
以上三种形式创建的数组对象,没有任何差别!
(7)数组元素的访问
数组长度属性: .length
数组的下表范围:0~length-1
超过数组下标范围访问会出现异常(运行异常,下标越界)
(1)数组元素按照线性顺序排列
(2)声明及创建方式:int[] arr = new int[10];
上述声明中,arr是引用变量,引用了一个数组对象 new int[10]
引用变量,相当于对象的专有代词
(3)创建数组对象时,数组元素是自动初始化的,初始化值为0值(根据数组对象类型不同而不同:
包括:0、0.0、false、\u0000(编码为0的字符,是控制字符))
(4)数组的静态初始化
int[] arry8 = {0,12,1};
只能在声明变量时直接赋值,不能用于之后的赋值
(5)数组的动态初始化
int[] arry7 = new int[]{1,2,3};
既可以用于声明变量时直接赋值,也可用于之后的赋值。
(6){0,0,0}、new int[]{0,0,0}、new int[3]
以上三种形式创建的数组对象,没有任何差别!
(7)数组元素的访问
数组长度属性: .length
数组的下表范围:0~length-1
超过数组下标范围访问会出现异常(运行异常,下标越界)
方法
(1)方法用于封装一段特定的逻辑功能,方法的主要要素有:方法名、参数列表和返回值
(2)方法必须定义返回值,如果没有返回值,要使用void
如果定义了返回值,方法中就必须使用return语句。没有则可以不使用。
(3)没有返回值的方法中使用return可以将程序直接结束。
(4)java识别方法的依据有两个:方法名和参数列表,错一个就识别不到。
(1)方法用于封装一段特定的逻辑功能,方法的主要要素有:方法名、参数列表和返回值
(2)方法必须定义返回值,如果没有返回值,要使用void
如果定义了返回值,方法中就必须使用return语句。没有则可以不使用。
(3)没有返回值的方法中使用return可以将程序直接结束。
(4)java识别方法的依据有两个:方法名和参数列表,错一个就识别不到。
Arrsys核心API
(1)JDK中的java.util.Arrays类提供的对数组操作的一系列实用方法:
Arrays.toString() 用于字符串表示数组的元素
{1,2,3} 转换后的字符串:"[1, 2, 3, ]"共计11个字符
Arrays.equals() 用于比较两个数组的元素是否相等,返回布尔类型
必须要长度、元素、元素顺序完全一致才返回true
Arrays.sort() 用于对数组进行排序,从小到大
不是根据数据的数值大小进行排序的,而是根据数据对应的字符值
得大小进行排序
Arrys.binarySearch()用于实现有序数组的二分法查找
本章使用的经典案例:
1、双色球问题
使用的方法是经典去重复算法。取出出一个元素之后将对应的标志置位。
需要定义的数组: 原始数据池 数据池相对应的标志数组(每一个元素对应原始数据池对应
位置的标志) 得到的数据组成的数据池
2、斐波那契数列第n项的计算
3、
(1)JDK中的java.util.Arrays类提供的对数组操作的一系列实用方法:
Arrays.toString() 用于字符串表示数组的元素
{1,2,3} 转换后的字符串:"[1, 2, 3, ]"共计11个字符
Arrays.equals() 用于比较两个数组的元素是否相等,返回布尔类型
必须要长度、元素、元素顺序完全一致才返回true
Arrays.sort() 用于对数组进行排序,从小到大
不是根据数据的数值大小进行排序的,而是根据数据对应的字符值
得大小进行排序
Arrys.binarySearch()用于实现有序数组的二分法查找
本章使用的经典案例:
1、双色球问题
使用的方法是经典去重复算法。取出出一个元素之后将对应的标志置位。
需要定义的数组: 原始数据池 数据池相对应的标志数组(每一个元素对应原始数据池对应
位置的标志) 得到的数据组成的数据池
2、斐波那契数列第n项的计算
3、
其他知识点:
1、在编写程序时,尽量不要使用常量,而是使用式子,比如用到已知数组的长度时,尽量使用
数组名.length,而不是直接使用长度的直接量
2、方法名命名原则:
(1)与功能名一致,一般使用动词命名
(2)一般使用小写字母开头,第二个单词开始,单词首字母大写
3、关于算法的书面解释:
算法是可以重复使用的算法功能。
4、计算数据交换时,要注意先移动的数据不要影响到后面移动的数据,
比如Demo07中的数据交换,如果先交换f1和f,再交换f0和f1,
这样f0得到的值就是f的值,而不是f1的值。
5、定义基础类型变量而不初始化,在使用时会出现运行异常。
关于学习编程的方法:
1、看各种各样的书籍,就算看一百遍也没有啥用;
2、编程必须要靠练习才能做到
3、软件中使用的一切命名都要有所依据,能够表达出切实作用的。
1、在编写程序时,尽量不要使用常量,而是使用式子,比如用到已知数组的长度时,尽量使用
数组名.length,而不是直接使用长度的直接量
2、方法名命名原则:
(1)与功能名一致,一般使用动词命名
(2)一般使用小写字母开头,第二个单词开始,单词首字母大写
3、关于算法的书面解释:
算法是可以重复使用的算法功能。
4、计算数据交换时,要注意先移动的数据不要影响到后面移动的数据,
比如Demo07中的数据交换,如果先交换f1和f,再交换f0和f1,
这样f0得到的值就是f的值,而不是f1的值。
5、定义基础类型变量而不初始化,在使用时会出现运行异常。
关于学习编程的方法:
1、看各种各样的书籍,就算看一百遍也没有啥用;
2、编程必须要靠练习才能做到
3、软件中使用的一切命名都要有所依据,能够表达出切实作用的。