记住格式

                //拿来一个扫描器:Scanner sc = new Scanner(System.in);//给一个友好性的提示:System.out.print("请录入一个半径:");//让扫描器扫描键盘录入的int类型的数据:int r = sc.nextInt();
double[] score = new double[10];double sum=0, max = 0,min =0;Scanner sc = new Scanner(System.in);  //ctr+shift+o导包;alt+/代码提示;ctr+alt+上下键复制for(int i =0;i<score.length;i++) {System.out.print("请输入第"+(i+1)+"个同学的成绩:");score[i] = sc.nextDouble();

//string两种写法

//import java.util.Scanner;
class TestWork604{public static void main(String[] args){/**Scanner sc = new Scanner(System.in);String s = sc.nextline();System.out.println(s);**/String str = "123454321";str=str.trim();boolean flag=isPalindrome(str,0,str.length()-1);System.out.println("Flag is: "+flag);}

//spit放入数组

正文

/**
1.java中函数是属于类(class)的,必须定义在类中
2.函数无法自己执行,必须通过调用才可以执行
3.java中:静态方法没有办法直接调用非静态方法,只能调用静态方法
4.有参数的函数,调用时必须传递对应的参数
5.函数中,遇到return则立即结束,并且返回
**/

一.函数定义

/**
java定义函数:
访问修饰符 函数返回子类型|void 函数名称([参数列表]){
函数体;
}
**/

二.函数调用

/**
函数调用:
函数名称([参数列表]);

重点内容:函数在内存的调用本质

栈:先进后出
队列:先进先出
执行栈:
函数怎么调用
局部变量
/**
局部变量(本地变量):定义在函数中,作用域是整个函数类,无法跨越
成员变量:在class中 ,作用域是整个类
**/

三.函数分类

/**
函数分类:
有没有参数:
有参数|无参数(未知输入数据;更加灵活)
有没有返回值:
有返回值|无返回值
定义者:
系统函数|第三者|自定义函数
**/

四.代码

//1.函数定义

//1.函数定义
class TestFun{public static void main(String[] args){//函数调用sayHello ();//注意,在main函数中,如果要调用非静态方法//必须使用构建对象的方式(面向对象)//TestFun tf = new TestFun();//tf.sayHello;  }public static void sayHello(){System.out.println("hello, i am function...");}}

//2.函数分类

//2.函数分类01
class TestFun{public static void main(String[] args){//函数分类showInfo ('刘莹',20,‘女’);  }public static void showInfo (String name, int age,char gender)//形参{System.out.println("name:" + name);System.out.println("age:" + age);System.out.println("gender:" + gender);}}//2.函数分类02(返回值)
class TestFun{public static void main(String[] args){//将函数的返回值使用变量接受,形参与实参数据类型一致或者强制转换int a = add(2,8);System.out.println("2 + 8 =" + a);}public static int add(int x,int y) { //没有void则有返回值 return x + y;}}

//函数判断一个数是不是素数

//函数判断一个数是不是素数
import java.util.Scanner;public static void main(String[] args){Scanner sc = new Scanner(Systeam.in);System.out.print(">");int num = sc.nextInt();boolean Primer = isPrime(num);if(Primer){System.out.print("是质数");}else{System.out.print("不是质数");}
}public static boolean isPrimer(int num){for(int i =2;i <num / 2 ;++i){if(num % i == 0){return false;}}return true;
}

五.函数重载

函数重载(overload);
函数名称一样 2.函数参数数据类型或者个数不同 3.跟返回值类型无关
面试题:
请简述overload(函数重载)、override(覆盖)、overwrite(重写)
思考:
函数重载所有编程语言都有的吗?
函数重载现象是强数据类型语言(java、C、C++、C#)所特有的现象
弱数据类型语言(javascript、python、ruby)是不具备函数重载

六.函数递归

函数递归(recursion):===循环 n>100用循环
函数自身调用自身
分治算法的理念
//重点内容:递归时的内存模型:
优点:分治算法的理念,复杂化简
缺点:非常耗费内存(栈溢出异常),当栈被全部占用后,触发StackOverflowError异常!!!
注意,可以使用java -X -Xss 大小, 来调整JVM的栈大小空间
-Xms<大小> 设置初始 Java 堆大小
-Xmx<大小> 设置最大 Java 堆大小

七.常见的系统类

1.Math

Math:
Math类,是JDK内置的类,Java.lang.Math
Java.lang:这个包,是默认导入的包

2.Random

随机数:
Math.random()
Random类
java.util.Random

3.String

String字符串对象:
在java中,被双引号,引主的内容就叫做字符串
字符串在java中不是基本数据,是对象,引用数据类型。
final修饰的,
字符串是常量,它们的值不能被创建后改变。支持可变字符串字符串缓冲区。
因为字符串对象是不可改变的,所以它们可以被共享。

字符串的各种方法

ToCharArray():将字符串转换成char类型的数组
new string(char[] chs):将一个字符数组转换成一个字符串
ToUpper():表示将一个字符串转换成大写形式。
ToLower():表示将一个字符串转换成小写形式。
Equals(“要比较的字符串”,StringComparison.OrdinalIgnoreCase):比较字符串,忽略大小写
Split(new char[]{‘要分割的字符串’},StringSplitOption.RemoveEmptyEntries):分割字符串,返回一个字符串类型的数组
Substring():截取字符串
Contains(“要判断的字符串”) 其值为布尔类型 判断是否包含某个字符子串
StartsWith(“要判断的字符串”) 其值为布尔类型 判断是否以某个字符子串开头
EndsWith(“要判断的字符串”) 其值为布尔类型 判断是否以某个字符子串结尾
int IndexOf(string value):取子串value第一次出现的位置
int LastIndexOf最后一次出现的位置

八.代码

//1.函数重载

class TestOverLoad {public static void main(String[] args) {byte a = 20;add(10, a);add(100);add(100, 20.56);add(20.56, 100);}public static int add(int a, int b) {System.out.println("----------1-------");return a + b;}public static double add(int a, double b) {System.out.println("----------1-------");return a + b;}public static double add(double a, int b) {System.out.println("----------1-------");return a + b;}public static double add(double a, double b) {System.out.println("----------1-------");return a + b;}public static int add(int a, byte b) {System.out.println("----------2-------");return a + b;}public static int add(int a) {System.out.println("----------3-------");return a + 10;}
}

//2.函数递归

class TestCecursion {public static void main(String[] args) {// System.out.println(getCount(100));System.out.println(getCount2(1000000));}/**递归也可,循环也可public static int getCount(int n) {int count = 0;for (int i = 1; i <= n; i++) {count += i;}return count;}**/// 递归  分治算法的理念public static int getCount2(int n) {if (n == 1) {return 1;}return n + getCount2(n - 1);}

//2.1
递归1:求第n项的斐波那契数列值

class TesFibonacii {public static void main(String[] args) {System.out.println(getFibo2(10));}// 递归方式求斐波那契数列的值?public static int getFibo(int n) {if (n == 1 || n == 2) {return 1;}return getFibo(n - 1) + getFibo(n - 2);}/**循环实现public static int getFibo2(int n) {int first = 1, second = 2;int temp;for (int i = 2; i <= n; i++) {temp = second;second = first + second;first = temp;}return first;}
**/

递归1变型:
上楼梯问题:某个人上楼梯,每次只能上一个台阶或者两个台阶,
那么当这个人到达第n个台阶时,共有多少种走法?

// 走楼梯问题
class TestStairs {public static void main(String[] args) {System.out.println(getStairs(10));}public static int getStairs(int n) {if (n == 0) {return 0;}if (n == 1) {return 1;}if (n == 2) {return 2;}return getStairs(n - 1) + getStairs(n - 2);}
}

递归2:
小明的妈妈看到小明今天高考结束,买了一对刚刚出生的小兔子,小兔子需要3个月长大成兔,之后每月生产一对小兔子,假如不考虑小兔子的死亡情况,求第n月共有多少对兔子?

1    1
2   1
3   1
4   2
5   3
6   4
7   6
8   9
9   13
public class TestRabbit {public static void main(String[] args) {System.out.println(getCount(14));Test02.getCount(10);}public static int getCount(int n) {if (n <= 4) {return 1;}return getCount(n - 1) + getCount(n - 4);}
}

//3.Math

class TestMath {public static void main(String[] args) {// 绝对值System.out.println(Math.abs(5));// ceil 向上取整System.out.println(Math.ceil(5.0001));// floor 向下取整System.out.println(Math.floor(5.9999));// 四舍五入System.out.println(Math.round(5.5));System.out.println(Math.round(5.4));// 最大值System.out.println(Math.max(10, 100));// 最小值System.out.println(Math.min(10, -100));// 幂次方System.out.println(Math.pow(2, 3));// random函数返回的了伪随机数:[0 , 1)System.out.println(Math.random()) ;}public static int abs(int n){return n > 0? n : -n;}public static double abs(double n){return n > 0? n : -n;}public static float abs(float n){return n > 0? n : -n;}public static long abs(long n){return n > 0? n : -n;}
}

//4.随机数

 public static void main(String[] args) {System.out.println(Math.random());// 0~10 的随机数System.out.println((int)(Math.random() * 10));// 15 ~ 40的 (m,n)随机数(n-m)+最小值m  (n>m)System.out.println((int)(Math.random() * 25) + 15);System.out.println(randomRange(10, 40));}public static int randomRange(int m, int n){if (m < n) {return (int)(Math.random()*(n - m)) + m;} else {return (int)(Math.random()*(m - n)) + n;}}
}
import java.util.Random;class TestRandom02 {public static void main(String[] args) {Random r = new Random();System.out.println(r.nextBoolean());System.out.println(r.nextInt());System.out.println(r.nextInt(10));}
}

//5.String

class TestString {public static void main(String[] args) {String s = "liujianhong";String ss = "刘帅哥";String sss = "liujianhong";// 也可以通过如下方式,String的构造方法构造字符串String ssss = new String("liujianhong");System.out.println(s);System.out.println(ss);System.out.println(sss);System.out.println(ssss);// 就因为如此,所以,字符串不要使用== 判断是否相等System.out.println(s == sss);System.out.println(s == ss);System.out.println(s == ssss);// equals方法 来判断字符串是否相等System.out.println(s.equals(ssss));System.out.println(ssss.equals(sss));}
}

JAVA学习——函数总结相关推荐

  1. java学习 - 函数

    函数定义 /** * 权限修饰符 修饰符 返回值类型 函数名(参数类型 参数列表1...){ * 执行语句 * 返回值 *} * */ class FunctionDemo{ public stati ...

  2. JAVA学习笔记五---函数

    JAVA学习笔记五---函数 5.1 方法的学习 编写一个程序,求圆的周长和面积. package practice; /*** 编写一个程序,求圆的周长和面积.* @author iszhangyo ...

  3. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  4. Java学习第五日:函数

    函数 函数 Java中如何定义函数 函数的分类 局部变量 函数在内存的调用的本质 函数重载(overload) 函数递归 函数 何为函数:为了解决某一特定问题,具有名称的代码集合,可以当做现实中得到一 ...

  5. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  6. Java学习之 多态 Polymorphism

    Java学习之多态 多态的概念 多态==晚绑定. 不要把函数重载理解为多态. 因为多态是一种运行期的行为,不是编译期的行为. 多态:父类型的引用可以指向子类型的对象. 比如 Parent p = ne ...

  7. Java 回调函数的理解

    以下是我对java回调函数的理解,希望对各位有帮助. 简而言之,假设有两个类A与B,还有一个回调接口C(有一个c方法).其中A类持有一个B类对象作为属性和拥有一个a方法,并实现了接口C,所以A类中就有 ...

  8. Java必备:java入门、java学习

    2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 1.Java入门 1-1.Java具有那些适合在Internet环境中 ...

  9. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

最新文章

  1. 【云栖大会精华汇】历届云栖大会精彩资料大放送,一篇看尽云栖大会前世今生...
  2. 明白了缓存穿透和缓存雪崩,再了解一下缓存击穿!
  3. linux shell sed awk 命令(2)-awk
  4. 初步了解超图官网提供的应用程序
  5. poj 1696(极角排序)
  6. android eclipse中导入framework.jar以及使用其隐藏类的方法
  7. oracle 参照完整性,Oracle中用表外键来保证系统参照完整性
  8. 小白零基础怎么学习Java?不要慌
  9. UVALive 4329 Ping pong
  10. 计算与推断思维 翻译完成
  11. 台式计算机m9870t,新闻中心 ——驱动之家:您身边的电脑专家
  12. linux phpredisAdmin安装步骤
  13. angular中使用其他模块severs使用失败
  14. 力扣36.有效的数独
  15. 关于程序设计大赛环境部署的WBS图
  16. sklearn make_blobs函数
  17. 不同手机类型该如何更换手机IP
  18. google 搜索接口
  19. android 遥控器按键监听,安卓遥控器按键监听
  20. C++ Primer Plus 编程练习3

热门文章

  1. 从0元注册到61亿天价域名,一篇文章告诉你如何注册域名
  2. 七大壁纸网站满足所有分辨率需求!
  3. linux下有没有蜘蛛纸牌游戏,在Linux下可用Wine安装和运行蜘蛛纸牌、浩方电竞平台...
  4. 渗透 | 靶机Aragog-1.0.2本地定时执行脚本提权到root
  5. 水洼数目(dfs万能模板)
  6. 骗子给韩国喜意来送来最深刻的道歉书
  7. 盘点国内那些深度学习框架:清华计图Jittor、腾讯优图NCNN、百度飞桨PaddlePaddle、阿里X-DeepLearning
  8. 数学建模竞赛—基金投资组合优化及绩效评价问题
  9. SSL证书申请流程是怎么的?
  10. Repellat qui perferendis praesentium dignissimos sit.