目录

  • 函数(function)
    • 什么是函数
    • java 如何定义函数
    • 函数的调用
    • 函数的分类
    • 局部变量
    • 函数在内存中调用的本质
    • 函数重载(overload)
    • 函数递归(recursion)
  • 查询Java的帮助文档
  • 随机数的使用
    • Math类
    • Random类
  • java中的字符串对象
  • Scanner常见的Java类
  • 作业题讲解

函数(function)

什么是函数

函数:为了解决某一特定问题,具有名称的代码集合。函数也就是现实中的一种行为动作

java 如何定义函数

访问修饰符 函数返回值的类型| void 函数名称([参数列表]) {
//函数体
//return 返回值;
}
Java中函数是属于类的!!必须定义在类中,所以说函数是类成员
先把函数都定义为静态函数,等学习了面向对象在定义常规函数

函数的调用

函数是无法自己执行的!!必须通过调用才可以执行!!
函数名称([参数列表]);

java中静态方法没有办法直接调用非静态方法,只能调用静态方法

函数的分类

  • 有没有参数
    -有参函数
    -无参函数
class ClassRoom01{public static void main(String[] args){showInfo("张三",23,'女');//有参数的函数,使用时必须传递对应的参数showInfo("里斯",22,'男');}public static void showInfo(String name,int age, char gender){System.out.println("我的名字叫:"+name);System.out.println("我的年龄:"+age);System.out.println("我的性别:"+gender);}
}

  • 有没有返回值
    -有返回值的函数
    -无返回值的函数
class ClassRoom02 {public static void main(String[] args) {//将函数的返回值使用变量接受int a = add(5,8);System.out.println("8+5="+a);}public static int add(int x,int y){return x+y;//函数中,如果遇到return关键字,函数立刻返回}
}
  • 定义者
    -系统函数
    -第三者
    -自定义函数

局部变量

局部变量(本地变量):定义在函数中的变量叫做局部变量

函数在内存中调用的本质

详情见这位大佬笔记
以前的作业题用函数解决

函数重载(overload)

  • 什么是函数重载:函数名称相同,函数的参数的个数或者类型不同,调用的时候,自动匹配对应的函数
  • 面试题:请简述overload(函数重载)override(覆盖)overwrite(重写)
  • 思考题:函数重载是所有编程语言都有的吗?
    函数重载现象是强数据类型语言(Java、C 、C++、C#)所特有的现象,弱数据类型语言(javascript、python、ruby)是不具备函数重载

函数递归(recursion)

  • 什么叫做递归:函数自身调用自身

  • 求1~n的和

  • 递归时的内存模型
    -优点:分治理念的体现,可以把非常复杂的问题简单解决
    -缺点:非常消耗内存,所有说当栈被全部占用后,触发StackOverflowError异常!!!
    -注意:
    可以使用java -X -Xss<大小>,来调整JVM的栈大小空间
    可以使用java -X -Xms<大小>,来设置初始Java堆大小
    可以使用java -X -Xmx<大小>,来设置最大Java堆大小

  • 第一题:求第n项斐波那契数列的值?
    从第三个值开始,每个值是前两个值之和
    0 、1、1、2、3、5、8、13、21、34…
    1、1、2、3、5、8、13、21、34、55…
    1、2、3、5、8、13、21、34、55 、89…

  • 第二题
    上楼梯问题:某个人上楼梯,每次只能上一个台阶或者两个台阶,那么当这个人到达第n个台阶时,共有多少种走法?
    方法1:画图找规律,发现是斐波拉契数列

    方法2:考验逻辑思考能力
    假如求到达第10层有多少种方法就是求到第9层的方法加到第8层的方法之和

  • 第三题
    买了一对刚刚出生的兔子,过了四个月称为成年兔子,成年兔子没一个月生一对小兔子,问第n个月,共有多少对兔子(不考虑兔子死亡的可能性)

查询Java的帮助文档

随机数的使用

Math类

Random类

java中的字符串对象

  • 在java中,被双引号,引用的内容就叫做字符串

  • 字符串在Java中不是基本数据类型,是对象,是引用数据类型

  • final修饰的,字符串是常量,它们的值不能被创建后改变。支持可变字符串字符串缓冲区。因为字符串对象是不可改变的,所以它们可以被共享

Scanner常见的Java类

作业题讲解

  • 第一题
    求第n项斐波那契数列的值?
    (斐波那契数列:1 1 2 3 5 8 13 21 34 55 89 …)
// 求第n项斐波那契数列的值?
//(斐波那契数列:1 1 2 3 5 8 13 21 34 55 89 ....)import java.util.Scanner;public class Test01 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入第n项的值:");int num=sc.nextInt();System.out.println("第n项的值为:"+number(num));}public static int number(int num){if(num<=2){return 1;}else if(num==3){return 2;}else {return number(num-2)+number(num-1);}}
}

  • 第二题
    上楼梯问题:某个人上楼梯,每次只能上一个台阶或者两个台阶,
    那么当这个人到达第n个台阶时,共有多少种走法?
//上楼梯问题:某个人上楼梯,每次只能上一个台阶或者两个台阶,//那么当这个人到达第n个台阶时,共有多少种走法?import java.util.Scanner;public class Test02 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入台阶的数量:");int num=sc.nextInt();System.out.println("走台阶的数量方法有:"+number(num));}public static int number(int num){if(num<=2){return num;}else {return number(num-2)+number(num-1);}}
}

  • 第三题
    买了一对刚刚出生的兔子,过了四个月被称为成年兔子,成年兔子,每一个生出一对小兔子,问第n个月,共有多少对兔子(不考虑兔子死亡问题)
 //买了一对刚刚出生的兔子,过了四个月被称为成年兔子,成年兔子,每一个生出一对小兔子,问第n个月,共有多少对兔子(不考虑兔子死亡问题)import java.util.Scanner;public class Test03 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入月份:");int num=sc.nextInt();System.out.println("问第"+num+"个月,共有"+getRabbitCount(num)+"对兔子:");}public static int getRabbitCount(int num) {if(num <= 4) {//判断几个月生一胎return 1;}return getRabbitCount(num - 1) + getRabbitCount(num - 4);}
}

  • 第四题
    根据完整的路径从路径中分离文件路径、文件名及扩展名

(传递一个路径 c://a//b//c.avi,返回该文件的后缀名)

public class Test04{public static void main(String[] args){getSuffix("d://a/b/c/d.avi");}public static String getSuffix(String path){String[] arrs = path.split("\\.");//System.out.println(arrs);数组不能这样打印return null;}
}

public class Test04{public static void main(String[] args){getSuffix("d://a/b/c/d.avi");}public static String getSuffix(String path){String[] arrs = path.split("\\.");//System.out.println(arrs);数组不能这样打印for (int i=0;i<arrs.length ;i++ ){System.out.println(arrs[i]);}return null;}
}

import java.util.Scanner;
public class Test04{public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.print("请输入路径");String url = input.next();System .out.println(getSuffix(url));//getSuffix("d://a/b/c/d.avi");}public static String getSuffix(String path){//第一个方案//String[] arrs = path.split("\\.");//return arrs[arrs.length-1];//第二种方案//System.out.println(path.indexOf("."));return path.substring(path.indexOf(".")+1);}
}

public class Test04{public static void main(String[] args){String suffix = getSuffix("d://a/b/c/d.avi");System.out.println(suffix);}public static String getSuffix(String path){return path.substring(path.indexOf(".")+1);}
}


前面都是文件夹只有一个点的,如果有多个点则最后一个点切

public class Test04{public static void main(String[] args){String suffix = getSuffix("d://a/b.ba/c.c/d.avi");System.out.println(suffix);}public static String getSuffix(String path){return path.substring(path.indexOf(".")+1);}
}


注:结果会出错

public class Test04{public static void main(String[] args){String suffix = getSuffix("d://a/b.ba/c.c/d.avi");System.out.println(suffix);}public static String getSuffix(String path){return path.substring(path.lastIndexOf(".")+1);}
}

  • 第五题
    输入一个字符串,判断该字符串是否是回文字符串(面试题)
    (123454321)
import java.util.Scanner;public class Test05{public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.print("请输入字符串,判断是否是回文字符串:");String url = input.next();System.out.println(isPalindrome(url));}public static boolean isPalindrome(String str){for(int i = 0;i < str.length() /2;i++){if(str.charAt(i) != str.charAt(str.length()-1-i)){return false;}}return true;}}

  • 第六题
    去掉字符串中的所有空格
import java.util.Scanner;public class Test06{public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.print("请输入字符串,去掉空格:");String str = input.nextLine();System.out.println(delSpace(str));}public static String delSpace(String s){//return s.replace(" ","");return s.replaceAll(" ","");}}

import java.util.Scanner;public class Test06{public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.print("请输入字符串,去掉空格:");String str = input.nextLine();System.out.println(delSpace(str));}public static String delSpace(String s){String[] arrs = s.split(" ");//join方法是静态方法,直接使用类名称调用return String.join("|",arrs);}}

  • 第七题
    将字母全部转换为大写或小写
public class Test07 {public static void main(String[] args) {String word=" I love You ";word.trim();System.out.println(word.toLowerCase());System.out.println(word.toUpperCase());}
}

  • 第八题
    接收用户输入的一句英文,将其中的单词以反序输出,(例:“hello c sharp”→“sharp c hello”)
import java.util.Scanner;public class Test08 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String s=sc.nextLine();s.trim();String ss=" ";String[] arr=s.split(" ");for(int i=arr.length-1;0<=i;i--){ss+=arr[i];ss+=" ";}System.out.println(ss);}
}

  • 第九题
    从请求地址中提取出用户名和域名
import java.util.Scanner;public class Test09 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String s=sc.nextLine();//System.out.println(s);String []arrs=s.split("://|/");System.out.println("域名为"+arrs[1]);String []arrname=s.split("=|&");System.out.println("用户名为:"+arrname[1]);}
}
//https://www.163.com/?userName=admin&pwd=123456

  • 第十题
    让用户输入一句话,找出所有"呵"的位置。
import java.util.Scanner;public class Test10 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入对话:");String str = sc.nextLine();char val='呵';for(int i=0;i<str.length();i++){if(str.charAt(i)==val){System.out.println("呵——————"+i);}}}
}

  • 第十一题
    让用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变成”老牛很**”;
import java.util.Scanner;public class Test11 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一句话:(包含邪包含恶)");String s = sc.nextLine();if(s.contains("邪恶")){String ss = s.replace("邪恶","**");System.out.println(ss);} else{System.out.println("没有可替换字符");}}
}

  • 第十二题
    猜字游戏,计算机随机一个0~100的整数,每次用户输出字猜,
    (提示如下:
    猜大了哦,重新猜
    猜小了哦,重新猜
    猜对了)
import java.util.Scanner;public class Test12 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int number=(int)(Math.random()*100);//System.out.println("随机数为:"+number);for(int i=5;i>=1;i--){System.out.println("请输入一个数:");int num=sc.nextInt();if(num>number){System.out.println("温馨提示: 猜大了哦!重新猜");}else if(num<number){System.out.println("温馨提示:猜小了哦!重新猜");}else {System.out.println("猜对了");break;}System.out.println("您还有"+(i-1)+"次机会");}}
}

  • 第十三题
    猜拳游戏,石头剪刀布。随机数生成石头剪刀布(0:石头 1:剪刀 2:布)
  //猜拳游戏,石头剪刀布。随机数生成石头剪刀布(0:石头  1:剪刀  2:布)import java.util.Random;
import java.util.Scanner;public class Test13 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);Random random_num =new Random();for(int i=3;i>=1;i--){int computer=random_num.nextInt(3);System.out.println("欢迎参加猜拳游戏(0:石头  1:剪刀  2:布)");System.out.print("请出拳头:");int people=sc.nextInt();System.out.println("机器人出:"+computer);if(computer-people==1||computer-people==-2){System.out.println("恭喜您胜出");break;}else if(computer-people==0){System.out.println("平手");}else {System.out.println("机器人胜出");}System.out.println("您还有"+(i-1)+"机会");}}
}

22 函数以及常见的系统类相关推荐

  1. 干货 | 22道机器学习常见面试题目

    来源:机器学习算法与自然语言处理 本文共6600字,建议阅读13分钟. 本文为你带来22道机器学习常见的面试问题和回答. 1.无监督和有监督算法的区别? 有监督学习:对具有概念标记(分类)的训练样本进 ...

  2. 在java中excel格式变为zip什么原因_Excel工作表中最常见的8类问题,你一定遇到过,附解决方法!...

    在Excel工作表中,最常用的还是一些技巧,如果能够熟练掌握,对于工作效率的提高绝对不是一点点哦,结合工作实际,小编对工作中常见的问题进行了总结,一共有8类,你一定也遇到过-- 一.Excel工作表常 ...

  3. FPGA基础设计(11)Verilog任务、函数、系统任务、系统函数

    目录 1.概述 2.函数(function) 3.任务(task) 4.系统任务 4.1 显示任务 4.1.1 display和write任务 4.1.2 strobe监控 4.1.3 连续监控 4. ...

  4. java实验系统常用类,Java的常用系统类

    Java的常用系统类Tag内容描述: 1.Java语言与JBuilder应用初步 第六章 常用的Java系统类,本章要点,字符串类 数值(Number)类及其子类 数组类 集合类 Object类,字符 ...

  5. java常见_Java 常用类

    一Object 老祖宗 java.lang.Object 1.所有的类直接或者间接继承父类Java认为所有的对象都具备一些基本的共性内容这些内容可以不断的向上抽取最终就抽取到了一个最顶层的类中(Obj ...

  6. java object对象的方法_Java常见对象Object类中的个别方法

    Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...

  7. 什么是函数模板以及什么是类模板

    [1]模板的含义 (1) 模板就是实现代码重用的机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性. (2) 模板可以分为两类,一个是函数模板,另外一个是类模板. ...

  8. Java中的系统类–属性,System.out.println()

    System class in java is one of the core classes and I have never seen any java developer who doesn't ...

  9. 常见的系统架构风格有哪些?各有什么优缺点?

    常见的系统架构风格有哪些?各有什么优缺点? 1.单体架构 介绍: 优点: 缺点: 2.MVC架构 MVC架构特点: 优点: 缺点: 3.面向服务架构(SOA) 介绍: 面向服务架构特点: 优点: 缺点 ...

最新文章

  1. 元宇宙,分三层!香港中文大学再现「校园元宇宙」原型
  2. 网络集中投射了全部安全问题
  3. [Boost基础]并发编程——asio网络库——定时器deadline_timer
  4. 【HDU 5184】 Brackets (卡特兰数)
  5. 添加元素的注意问题 复习 介绍 元素的创建 元素添加的方法 元素移除的方法
  6. Java编码约定被认为是有害的
  7. Jzoj5245 Competing Souls
  8. java程序设计 论文_《JAVA程序设计》论文要求
  9. c# 小写金额转大写
  10. 串口485接法图_485通讯接线方式
  11. linux gtx驱动程序,Nvidia 418.43 发布,支持GeForce GTX 1660 Ti的Linux图形驱动程序
  12. 【附源码】计算机毕业设计SSM网上鲜花店系统
  13. AngularJS的优缺点总结
  14. 个人电脑应用常识记录
  15. go语言数据类型之切片slice
  16. python opencv 直方图均衡_OpenCV-Python教程(10、直方图均衡化)
  17. Vue中gsap库实现数字递增动画
  18. 鸿蒙系统能玩魔兽世界吗,魔兽世界:永久60级与TBC该怎么选,60级服务器真的会有玩家么?...
  19. 20190930双色球中奖号码概率的处理(VC6.0)
  20. 百度智能云牵手中国跳水队,体育和AI正在酝酿新化学反应

热门文章

  1. 探索 Android 多线程优化方法
  2. PYTHON 人像美颜
  3. 搭建laravel 环境
  4. cmd 运行 mysql_cmd上执行MySQL基础语句
  5. RTSP、RTMP、HLS、HTTP-FLV,Easy系列的流媒体服务核心产品EasyDSS_kernel在使用hls拉流提示跨域问题是什么原因造成的?
  6. 国内可用的API合集
  7. 电路设计——接地的三种方法
  8. python2安装pyinstaller失败
  9. 实现铃声声音渐强或减弱
  10. 酷睿i7 10750H参数 i710750h核显相当于什么显卡