首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Java】基础38:什么递归?

什么阶乘? 5的阶乘:5!=5×4×3×2×1; 4的阶乘:4!=4×3×2×1。 这就是阶乘。 现有一个需求:求一个数的阶乘?...=1,而不是想当然的以为等于0; 至于为什么为1,这是一个数学问题。 本质上n!=(n+1)!÷(n+1); 所以:0!=1!÷1=1。 那除了for循环还有没有其他方法呢?...看到没有,什么递归? 递归就是指在方法里面调用自己的方法这种现象。 就像我们在数学中的找规律一样,先把规律找出来,再创建方法。 ④如果是负数,因为负数是没有阶乘的,直接返回-1,或者报错。...因为它在文件操作中会使用到它,并且既然是学习Java,也有必要理解下递归的概念。 三、递归删除多级目录 根据我们昨天学的File类中的方法。

65720

Java】基础17:什么接口?

今天就让我们走进程序的世界,研究下什么接口? 一、接口的格式 还是以昨天的例子来理解接口: 动物园里有很多动物,分食草动物和食肉动物,食草动物又有小兔子等。 如何让这些动物进入动物园呢?...什么意思呢? 就是一家动物园,要接纳新动物,就制定了一个规则:动物吃什么? 每个动物吃的都不同,就直接写了一个抽象方法eat(),只有方法名eat,没说具体要吃什么。...什么意思呢? 动物园一开始制定的规则是:你想进动物园,必须说明你吃什么? 现在动物园想增加一个功能,就是想知道每个动物的名字叫什么?...什么时候有需求了重写就好,也可以一直不重写方法。 现在有一只兔子,没有名字,那就用接口的默认名(动物),突然有一天想给它取了一个新名字,小白,怎么办?...四、抽象类 在接口的抽象方法中,提到了一个概念,抽象类。 这个抽象类又是啥呢? 抽象类:有抽象方法的类就叫抽象类。如果一个类包含抽象方法,那么该类必须是抽象类。

69710

Java】基础18:什么多态?

什么多态呢?按照字面意思理解就是多种形态的意思。 还是举昨天的那个例子: 动物园里动物都得吃食物,兔子吃胡萝卜,猫吃鱼,狗吃肉。...具体什么意思呢? 变量有基本数据类型和引用数据类型。 其中引用数据类型又分为:数组,类和接口。 父类类型指的是子类继承至的父类,或者子类实现的接口。 按照现实里面的理解就是:一个是亲爹一个是干爹。...三、多态的弊端 多态这么方便,那它有没有什么弊端呢? 是有的。多态不能调用子类的特有方法,需要使用到强制转换。 ? 兔类中有一个特有的方法jump(),兔类的父接口Zoo中没有这个方法。...为了避免出现类转换异常,Java提供了一个关键字:instanceof,给变量名做类型的校验。 ?

58710

Java】基础12:什么数组?

小结: 当数据确定时,可以使用格式二或者格式三来定义数组,这种方式也静态定义。 当数据不确定时,可以使用格式一来定义数组,这种方式也叫动态定义。...那这是为什么呢? 打印出来的这串字符其实是数组的一个地址,那如何去访问具体的数值呢? 这就需要借助于索引了,什么索引? 每个存入数组的数值都会有一个对应的角标,这就是索引,并且索引是从0开始的。...因为数组索引是由0开始的,所以数组最大的索引值为数组名.length-1。...JVM作为Java虚拟机,它要运行程序,自然要对内存进行划分和管理: 寄存器:给CPU使用 本地方法栈:JVM在使用操作系统功能的时候使用 方法区:存储可以运行的class文件 堆内存:存储对象或者数组...思路: 将数组的索引(0到length-1)颠倒成(length-1到0)就好了 也就是最大和最小索引交换,第二大和第二小索引交换,依次类推 定义一个最大索引变量maxIndex,值为arr.length

77810

Java】基础28:什么异常?

那为什么会闪退呢? 就是程序它遇到了问题,又没有及时地处理,便只有崩溃了。而这种情况,便是异常。 在Java世界里面,异常指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。...不要看它这么长好像很复杂的样子,其实拆开来看单词都很简单:Array数组;index索引;OutOfBounds超出界限;Exception异常。...合在一起就是数组的索引超出了界限异常,也就是数组越界异常。 那么出现了异常Java里面是如何处理的? 我们举一个抛绣球的例子来说明下jvm处理异常流程。 好,现在有一个异常,被Java虚拟机知道了。...在Java世界里面:出现了异常,然后都不处理,一直往前抛,最终抛给了Java虚拟机。 于是Java虚拟机非常地生气,打印错误信息,终止了程序。 程序终止这件事情在开发过程中是能不出现就不要出现的。...方式一:throw 因为Java里面异常本身就是一个类,所以创建对应的异常对象,再抛出说明。

65010

Java】基础41:什么IO流?

什么IO流? IO流,就是指读写文件的技术。 1.input I就是指input:输入的意思,这是输入流。 意思是将硬盘里的数据输入到内存里,也就是读取文件。...以字符为单位读写数据的流,用于操作文本文件 字符输入流: Reader 字符输出流: Writer 今天主要学习字节流: 二、OutputStream输出流 它是输出流最上层的父类,是一个抽象类,其中它有一个子类FileOutputStream...③write(byte[] b, int off, int len) off表示的是偏移量 len表示的是长度 也就是说写入文件的数组,是从b数组中off索引位开始,2个长度。...二、InputStream输入流 它是输入流最上层的父类,是一个抽象类,其中它有一个子类FileInputStream。 1.read方法基本用法 ?

50410

聚簇索引与非聚簇索引(也二级索引

区别 聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,myisam通过key_buffer把索引先缓存到内存中,当需要访问数据时...(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索引不在key buffer命中时,速度慢的原因 澄清一个概念:innodb中,在聚簇索引之上创建的索引称之为辅助索引...(重点在于通过其他键需要建立辅助索引) 3、MyISM使用的是非聚簇索引,非聚簇索引的两棵B 树看上去没什么不同,节点的结构完全一致只是存储的内容不同而已,主键索引B 树的节点存储了主键,辅助键索引B...为什么主键通常建议使用自增id 聚簇索引的数据的物理存放顺序与索引顺序是一致的,即:只要索引是相邻的,那么对应的数据一定也是相邻地存放在磁盘上的。...如果主键不是自增id,那么可以想 象,它会干些什么,不断地调整数据的物理地址、分页,当然也有其他一些措施来减少这些操作,但却无法彻底避免。

52020
领券