Java杂谈

1.最大公因数的快速求法
  "  static int gcd(int numberA, int numberB) {
    return numberB == 0 ? numberA : gcd(numberB, numberA % numberB);
    }"
2.
在java的多层调用方法的时候比如
"import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Fraction a = new Fraction(in.nextInt(), in.nextInt());
        Fraction b = new Fraction(in.nextInt(),in.nextInt());
        a.print();
        b.print();
        a.plus(b).print();
        a.multiply(b).print();
        in.close();
    }
}"
中的"a.plus(b).print();"此处plus(b)返回的返回值应该是一个对象且这个对象含有一个print()方法;虽然不是很明白,但好像java中的多层调用是(a.b)之后采用(a.b)的返回值(?不知道这么准不准确)再调用.c.

3.
public class Main {

    public static void main(String[] args) {

        int n = 20;
        System.out.print(Factorial(n));

    }
public static int Factorial(int n)
    {
        if(n == 0)
return 1;
        else
return n*Factorial(n-1);
            
    }
}
递归的时候,n--因为是完成本条任务后在执行减法,所以很可能会带来死循环的问题啦,用的时候要注意一点.至于--n(?),好像也会有点问题,能用(n-1)就(n-1)

1) 鉴于java求整时欲生欲死,整理常用math如下:

1: java取整

a:floor向下取整

用法:Math.floor(num)

Math.floor(1.9)//1                      Math.floor(-1.9)//-2

b:  round四舍五入

用法:Math.round(num)实际上是等价于Math.floor(num+0.5)

Math.round(1.5)//2                     Math.round(1.4)//1

Math.round(-1.4)//-1                  Math.round(-1.5)//-1               Math.round(-1.6)//-2

c:  ceil取不小于num的最小整数

用法: Math.ceil(num)

Math.ceil(1.4)//2      Math.ceil(1.5)//2             Math.ceil(1.6)//2

Math.ceil(-1.4)//-1   Math.ceil(-1.5)//-1           Math.ceil(-1.6)//-1

d:  神级方法直接加(int)强制转换,直接去掉小数点位,没有任何向上向下,需要时最好用的方法

2: java求绝对值

Math.abs(num)

Math.abs(-30.5)//30.5

3:   java随机数

Math.random()随机去0~1的数

(int)(100*Math.random())这样就可以取0~100随机整数

4: java幂函数

Math.pow(a,b)a的b次方

Math.pow(x,2)就是平方

Math.pow(x,3)就是立方

5: java开根号

Math.sqrt(num)num的平方根

2)
java 中字符串转字符数组 toCharArray();

3)任何字符都能强制转化为int 不过转化的是ascll值 所以''1''不是1 是49

4)java当中 ,数组都是类的创建方法
比如数组,字符,字符串.都是类

1) 题目 :多线程创建1
(1 想要循环创建多个线程,线程是可以以组的形式来建立的 emmmmmm.大概就是 类名 组名[] = new 类名 组名[i]的形式.补丁1:好吧,可以以同个对象名同时创建多个线程,大概不好控制顺序;
(2 线程自带类的方法.调用的时候得首先在本类上声明异常的抛出 "throws Exception"语句
(3 线程的运算速度是有限的.如果不加上Sleep语句,就会导致最后的total语句先于各个time 语句输出来,而且循环的速度好像比线程类运算的速度快.不加Sleep 语句再次控制循环,输出顺序有点乱(x不是很清楚, 还得好好研究下)

分割字符串时候的split函数
Stringobiect split(分割符号,分割的个数)
当一项为空,返回每一个字符分割后的字符串,而个数不填,就能分多少个就分多少个;
当然还有一个配套用的函数 String.split(a,b).length 他这个返回的是分割之后子串的个数 个人是觉得很好用了
当然 分割空格的时候 分割一个或者多个空格可以用到 split("\\s")?我是看不懂了 也许以后懂
还有 charAt(i) 方法 能指定找i位置的字符

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值