开篇碎碎念:
海口今天的天气简直破天荒的热,34°,出门就被太阳晒得睁不开眼睛,身体也被热浪包围,幸好下午没课可以在寝室里吹空调敲代码学Java,想点杯咖啡结果被商家取消了,绝绝子,算了还是喝开水吧,最近肠胃也不是很好。最近新买了一个显示器敲代码学习的效率简直飞起,再也不用一个屏幕开几个页面眼睛都看花啦,修图也是嘎嘎香,码字效率也飞起!!
正题:
今天摸鱼没学太多,写了两篇python二级考试题,看了Java的方法重载和递归算法
python二级错题:

数据组织的维度:
一维数据:
由对等关系的有序或无序数据构成,采用线性方式组织
对应列表、数组和集合等概念
二维数据:
由多个一维数据构成,是一维数据的组合形式
表格是典型的二维数据,对应数据中的矩阵
多维数据:
由一维或二维数据在新维度上扩展而成
高维数据:
仅利用最基本的二元关系展示数据间的复杂程度
例如:键值对,字典

文件打开: open和with open
区别:with语句访问完文件后不需要将其关闭,直接使用open()方法时需要用close()方法关闭文件
文件读取:
- read([size])方法:从文件当前位置起读取size个字节,若无参数size或者为负数,则表示读取至文件结束为止,它范围为字符串对象.
- readline()方法:从字面意思可以看出,该方法每次读出一行内容,所以,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象。
- readlines()方法:读取整个文件所有行,保存在一个列表(list)变量中,该列表可以由Python的for in 结果进行处理,每行作为一个元素,但读取大文件会比较占内存。
文件的写入



append()函数在列表最后添加一个元素

JAVA学习
方法重载机制 : 功能相似的我们可以用方法重载来完成
public class fa{ public static void main(String[] args){ int x = sumint(10,20); System.out.println(x); long y = sumlong(10L,20L); System.out.println(y); double z = sumdouble(10.2,20.0); System.out.println(z); } public static int sumint(int a,int b){ return a+b; } public static long sumlong(long a,long b){ return a+b; } public static double sumdouble(double a,double b){ return a+b; } } */ //使用方法重载 //代码简介整齐 功能相似可以使方法名相同 public class fa{ public static void main(String[] args){ System.out.println(sum(10,20)); System.out.println(sum(10.2,22.2)); System.out.println(sum(10L,80L)); } public static int sum(int a,int b){ return a+b; } public static long sum(long a,long b){ return a+b; } public static double sum(double a,double b){ return a+b; } }
讯享网
什么时候考虑使用方法重载?
在同一个类中如果功能1和功能2的功能相似
那么可以考虑将他们的方法名一至,既美观又便于记忆。
如果两个功能不相似那么使用方法重载就会很麻烦。
使用方法重载条件
1.在同一个类中
2.方法名相同
3.参数列表不同(个数、排序、类型不同)
讯享网//参数个数不同 public class fa{ public static void main(String[] args){ m1(); m1(100); } public static void m1(){ System.out.println("m1无参数的执行"); } public static void m1(int a){ System.out.println("m2有一个int"); } }
排列顺序不一样也可以

递归
方法递归
方法自己调用自己;当递归时程序没有结束条件,一定会发生栈内存溢出错误stackoverrflowError
所以递归一定要有结束条件
假设结束条件是对的,是合法的,递归有时候也会出现栈内存溢出错误,因为可能递归的太深,栈内存不够了,因为一直在压栈;不建议在实际开发中轻易选择递归,用for循环更好,占用内存少;但在极少数情况下不用递归,程序执行不了。

/* for循环求和 import java.util.*; public class ruguo{ public static void main(String[] args){ System.out.print("请输入一个整数:"); Scanner s = new Scanner(System.in); int a = s.nextInt(); int he = 0; for (int i=1; i <= a; i++ ){ he += i; } System.out.println(he); } } */ //递归求和 public class di{ public static void main(String[] args){ int a = sum(1000); System.out.println(a); } public static int sum(int n){ if(n == 1){ return 1; } return n + sum(n-1); } }
使用递归方法时的栈内存变换图像

讯享网递归求阶乘 public class di{ public static void main(String[] args){ int a = sum(5); System.out.println(a); } public static int sum(int n){ if(n == 1){ return 1; } return n*sum(n-1); } }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/53073.html