java 20 -1 递归的概述和案例】的更多相关文章

/* * 递归:方法定义中调用方法本身的现象 * * 方法的嵌套调用,这不是递归. * Math.max(Math.max(a,b),c); * * public void show(int n) { * if(n <= 0) { * System.exit(0); * } * System.out.println(n); * show(--n); * } * * 注意事项: * A:递归一定要有出口,否则就是死递归 * B:递归的次数不能太多,否则就内存溢出 * C:构造方法不能递归使用 *…
/* 需求:删除H:\demo目录下的带内容的文件 分析: A:封装该目录 B:获取该目录下所有的文件或文件夹的File数组 C:遍历该File数组,获取每一个File对象 D:判断所遍历的FIle对象 是否是文件夹 是:返回步骤B 不是:判断里面是否有内容 有:删除 不是:不理 B-D设为递归方法: 返回类型;void 参数列表:File xxx 出口:文件里面有内容 */ package zl_DiGui; import java.io.File; public class FileDele…
/* 需求:把C:\Users\Administrator\Desktop\记录目录下所有以.java结尾的文件的绝对路径输出到控制台 分析: A:封装该目录 B:获取该目录下的所有文件或文件夹的File数组 C:遍历该File数组,得到每个File对象 D:判断所遍历的File对象是否是文件夹: 是:回到B,继续执行 不是:判断是否是以.java结尾 是:输出该文件的绝对路径 不是:不理 总结:上面的分析中,如果是以递归来做.那么,B.C.D两个步骤可以设为个递归方法,该递归方法: 返回类型:…
IO流的分类:  流向: 输入流 读取数据  输出流 写出数据 数据类型:  字节流  字节输入流 读取数据 InputStream  字节输出流 写出数据 OutputStream  字符流  字符输入流 读取数据 Reader  字符输出流 写出数据 Writer 注意:一般我们在探讨IO流的时候,如果没有明确说明按哪种分类来说,默认情况下是按照数据类型来分的. ------------------------------------割割割--------------------------…
集合概述 概念:对象的容器,定义了对多个对象进项操作的的常用方法.可实现数组的功能. 和数组的区别: 数组长度固定,集合长度不固定. 数组可以存储基本类型和引用类型,集合只能存储引用类型. 位置: java.util.*; Collection体系集合 Collection父接口 特点:代表一组任意类型的对象,无序.无下标.不能重复. 方法: boolean add(Object obj) //添加一个对象. boolean addAll(Collection c) //讲一个集合中的所有对象添…
需求: 1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问. 2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串 分析: 1. 可以采用Cookie来完成 2. 在服务器中的Servlet判断是否有一个名为lastTime的cookie 2.1 有:不是第一次访问 1. 响应数据:欢迎回来,您上次访问时间为:2019年10月4日11:50:20 2. 写回Cookie:lastTime=2019年10月4日11:50:01 2.2 没有:是第一…
Java中的递归运算是一种在自己的方法内部调用自己的方法 递归的设计思想是:把一个复杂的问题,分解为若干个等同的子问题,重复执行,直到之问题能够简单到直接求解,这样复杂的问题就得以解决. 递归运算有两个特点:第一,递归的出口:第二,逐步向出口逼近的递推方法 example:求1+2+3+4+5的和 public class Test { public Integer sum(int n) { if(n == 1 || n == 0) { return n; } return n + sum(n-…
Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法 于是我们可以把上面的语法改写成如下形式:1 合并前缀1 语法分析有自上而下和自下而上两种分析方法2 递归下降是现阶段主流的语法分析方法,2 于是我们可以把上面的语法改写成如下形式: 1)       Operator="+" | "-" | "*" | "/" 2)       Expression=<数字>…
// 工具方法 private static FilenameFilter getFilter(final String mode) { return new FilenameFilter() { Pattern pattern; { pattern = Pattern.compile(mode); } public boolean accept(File file, String name) { return pattern.matcher(name).matches(); } }; } //…
2019年1月3日 星期四 Java面向对象之多态(来源于身边的案例) 1. 为什么要用多态? 1.1 多态是面向对象的三大特性之一 1.2 多态是基于接口设计的模型 1.3 多态具有横向扩展特性 1.4 可以非常标准匹配“依赖倒置原则”,降低前端与后端间的耦合 2.不一样的多态案例 2.1 UML静态模型图 备注:想学UML建模的可以看这篇 2.2 牙齿多态接口,代码如下: package com.wuji.duotai; public interface Tooth { void yao()…
java I/O流类概述…
笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDirectory(File file) { File[] files = file.listFiles(); assert files != null; for (File a : files) { System.out.println(a.getAbsolutePath()); if (a.isDir…
java中的递归 1.概念 定义一个方法时,出现本方法调用本方法的过程,称之为递归 2.特点 必然有一个边界条件 使用递归代码往往更简洁,可读性强 3.什么时候使用递归 n的阶乘和n的累加定义 f(n) =1 f(n)=f(n)*f(n-1) 4.普通实现与递归实现的比较 普通实现 //计算5的阶乘 public class Demo { public static void main(String[] args) { int sum = 1; for (int i =5; i >=1; i--…
Java常用函数式接口--Predicate接口使用案例 该方法可以使用and来优化: 调用:…
前面几篇Java学习笔记都是半夜写的,比较伤身体,今天开始想调整生物钟,早上起来学2小时,看看能坚持多久 本周目标: 1.JavaJDBC使用 2.JavaWeb编程 3.Java框架基础(反射+注解) 从Java1.5开始有注解,被很多框架广泛使用 概念: Java提供了一种原程序中的元素,关联任何信息和任何元数据的途径和方法. 本篇学习概要: Java注解[一.概述] Java注解[二.Java中的常见注解] Java注解[三.注解的分类] Java注解[四.自定义注解] Java注解[五.…
.net也使用过反射,不过用的比较浅显,用来记日志等.. Java基础课程学习已经过了一段时间了,接下来继续学习 本次学习包含以下内容 Java反射[一.概述] Java反射[二.Class类的使用] Java反射[三.方法的反射] Java反射[四.成员变量的反射和构造的反射]…
Java IO(一)概述 一.IO概述 (一).介绍 在Java中,所有的数据都是通过流读写的,Java提供了IO来处理设备之间的数据传输,Java程序中,对于数据的输入/输出操作 都是以“流”的方式进行的.java.io包下提供了各种“流”类的接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据.对于计算机来说,数据都是以二进制形式读出或写入的.我们可以把文件想象为一个桶,我们可以通过管道将桶里的水抽出来.这里的管道也就相当于Java中的流.流的本质是一种有序的数据集合,有数据源和目的…
054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述 本文知识点:数组概述 为什么要学习数组? 实际问题: 比如我们要对学生的成绩进行排序,一个班级有30个学生,那我们对每个学生的成绩分别定义变量来存储,那需要定义30个变量.听起来就头大,要定义这么多变量.所以Java中提供了数组来解决这类需要大量存储数据的问题.数组就是这类问题的解决方案. 数组定义:相同数据类型的数据按照顺序组成的引用数据类型. 这句数组的定义需要熟记. 这里面数组的概念,…
048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目: 问题核心解决思路: 2种运算,并且每种运算都是连续算很多次的.连续算很多次,我们考虑用循环:2种运算,我们考虑用嵌套循环. 具体的解决: 1.用外重循环做和的运算 2.用内重循环做阶乘的运算 程序代码及其执行结果: 以上程序代码计算结果有问题?问题何在? 问题出在:内重循环中的存放阶乘计算结果的…
042 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 04 案例演示while循环的使用--循环输出英文字母 本文知识点:案例演示while循环的使用2 案例练习 案例问题: 这个问题有2点比较复杂: 1.字符型数据的输出(和整型类似) 2.分2行进行输出(即前13个字母一行, 后13个字母一行),可以使用if语句控制循环的执行方式 程序代码及其执行结果: 死循环问题…
041 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 03 案例演示while循环的使用--求1到5的累加和 本文知识点:案例演示while循环的使用1 案例练习 案例问题: 程序代码及执行结果: 程序执行详情: 案例变化 如果求1+3+5+7+7+--+15,该怎么编写代码? 把while循环体中的n++ 改为 n = n + 2 即可(n++相当于是n = n + 1).…
038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对switch结构进行总结 案例演示switch结构 程序代码: 下图中的代码没有格式缩进,如何解决? 在eclipse的代码编辑区,右击,source→format 代码就完成格式缩进了,看起来清爽很多 执行程序,会发现有问题: 发现输入4,包括周四之后的所有语句都输出了. 原因何在? 答案很简单,没有…
017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x和y int x, y; 如果没有给x赋值,就输出它们的结果会发生什么? 报错:部变量没有被初始化! y也一样的问题 同时定义多个变量并进行初始化的写法 关于换行的问题 我们平时写的是换行的: System.out.println(""); 不换行只需要把println换成print即可…
Java:AQS 小记-1(概述) 概述 全称是 Abstract Queued Synchronizer(抽象队列同步器),是阻塞式锁和相关的同步器工具的框架,这个类在 java.util.concurrent.locks 包下面. AQS 的核心思想: 如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态. 如果被请求的共享资源被占用,那么就需要⼀套线程阻塞等待以及被唤醒时锁分配的机制,这个机制 AQS 是用 CLH 队列锁实现的,即将暂时获取不…
概述: 用来实现网络互连的 不同的计算机上 运行的程序间 可以进行数据交互  也就是用来在不同的电脑间, 进行数据传输. 三大要素: IP地址: 设备(电脑,手机,ipad)在网络中的唯一标识. 组成: 网络(网关)号码 + 主机地址. //192.168.162.86 分类: 城域网: 1 + 3 广域网: 2 + 2 局域网: 3 + 1 //192.168.0. + 1 两个特殊的IP: 127.0.0.1: 本地回环(回路)地址, 在哪台电脑上写这个ip, 它就标识哪个电脑. 255.2…
总结 以下需要重点掌握: 字节流,以下读取结束全部返回-1 字节节点流-访问文件 FileInputStream/FileOutputStream 可以读取任意文件 可以复制图片 读取字符String类型会乱码 字节处理流-缓冲流 BufferedInputStream/BufferedOutputStream 需要节点流作为入参,即字节的访问文件流 写入文件时,需要调用flush()方法,才能写入文件中 字节处理流-对象流(类) ObjectInputStream/ObjectOutputSt…
https://www.jianshu.com/p/56999f2b8e3b Redis 概述 在我们日常的Java Web开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这…
八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 高斯认为有76种方案.1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果.计算机发明后,有多种计算机语言可以解决此问题.---------以上节选自百度百科. 算法思考,初步思路: 构建二维int或者short型数组,内…
需求:给出一段xml文件.要求按照鸳鸯输出. xml文件代码如下: <?xml version="1.0" encoding="utf-8"?> <contactList> <contact id="001"> <name>张三</name> <age>20</age> <phone>134222223333</phone> <ema…
简要说明: 表设计时,需要往表里加一个version字段.每次查询时,查出带有version的数据记录,更新数据时,判断数据库里对应id的记录的version是否和查出的version相同.若相同,则更新数据并把版本号+1:若不同,则说明,该数据发送并发,被别的线程使用了,进行递归操作,再次执行递归方法,知道成功更新数据为止 简单说说乐观锁.乐观锁是相对于悲观锁而言.悲观锁认为,这个线程,发生并发的可能性极大,线程冲突几率大,比较悲观.一般用synchronized实现,保证每次操作数据不会冲突…