一、平方数静方法:

public class SquareInt {

public static void main(String[] args) {

int result;

for (int x = 1; x <= 10; x++) {

result = square(x);

// Math库中也提供了求平方数的方法

// result=(int)Math.pow(x,2);

System.out.println("The square of " + x + " is " + result + "\n");

}

}

// 自定义求平方数的静态方法

public static int square(int y) {

return y * y;

}

}

结果:

The square of 1 is 1

The square of 2 is 4

The square of 3 is 9

The square of 4 is 16

The square of 5 is 25

The square of 6 is 36

The square of 7 is 49

The square of 8 is 64

The square of 9 is 81

The square of 10 is 100

二、随机数生成:

Math函数中自带的Math.Random()生成随机数。

还可以自定义随机数生成

代码:

import java.util.*;

public class suiji {

public int suij(int n)

{

int a=16807;          //a的值

int m=(int)Math.pow(2, 31)-1;     //设置m的值

int x=(a*n)% m;       //利用取余数生成随机数

return x;

}

public static void main( String args[] )

{

suiji x=new suiji();

Random a=new Random();

int num=a.nextInt();         //随机生成初始随机数

Scanner input=new Scanner(System.in);

System.out.println("请输入生成随机数的数量:");

int n=input.nextInt(); //输入生成随机数数量

for(int i=1;i<=n;i++)

{

num=x.suij(num);

System.out.print(x.suij(num)+" ");

System.out.println();

}

}

}

结果:

三、Java的可变参数:

max(double ... values) 括号内的参数数量可以变化

…”位于变量类型和变量名之间,前后有无空格均可。调用可变参数方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

请看以下代码,你发现了有什么特殊之处吗?

// MethodOverload.java

// Using overloaded methods

public class MethodOverload {

public static void main(String[] args) {

System.out.println("The square of integer 7 is " + square(7));

System.out.println("\nThe square of double 7.5 is " + square(7.5));

}

public static int square(int x) {

return x * x;

}

public static double square(double y) {

return y * y;

}

}

输出结果:

The square of integer 7 is 49

The square of double 7.5 is 56.25

因为参数类型不同、方法名相同所以方法重载。

Java的“方法重载(overload)”特性。

满足以下条件的两个或多个方法构成“重载”关系:

(1)方法名相同;(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。方法的返回值不作为方法重载的判断条件。

四、CalculateN示例程序中的BUG:出现负数

由于计算机使用固定的位数来保存数值,因此,能处理的数值大小是有限的,当要处理的数值超过了这一范围时,计算机将会自动截断数值的二进制表示为它所能处理的最多位数,这将导致错误的处理结果。

所以用BigInteger类,支持大整数的加减乘除运算。

public static BigInteger calculateN2(int n) {

if(n==1 || n==0)

{

return BigInteger.valueOf(1);

}

return BigInteger.valueOf(n).multiply(calculateN2((n-1))); }

五、比较两个浮点数:

double i = 0.0001;

double j = 0.00010000000000000001;

System.out.println(i==j); //输出:true

计算机不能精确地表达浮点数(特殊形式的除外),因此,当需要比较两个浮点数是否相等时,应该比较其差的绝对值是否在某个允许范围之内即可。

if ( Math.Abs(i - j) < 1e-10 )

System.out.println("true");

else

System.out.println("false");

Java动手动脑02的更多相关文章

  1. Java动手动脑——多态和继承

    Java动手动脑——继承和多态 实验一 预估输出答案:100  200  201  202 输出结果:100  200  201  202 输出答案分析:100 创建parent类的对象,调用对象的方 ...

  2. java动手动脑和课后实验型问题String类型

    1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请 ...

  3. java 动手动脑7

    ---恢复内容开始--- 一.动手动脑:多层的异常捕获-1 阅读以下代码(CatchWho.java),写出程序运行结果: ArrayIndexOutOfBoundsException/内层try-c ...

  4. java动手动脑和动手实验

    动手动脑一: EnumTest.java: 程序代码: public class EnumTest { public static void main(String[] args) { Size s= ...

  5. java动手动脑和课后实验型问题第四讲

    1.完全"手写代码实现"随机数生成 动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. Modulus=231-1=int.MaxValue Mult ...

  6. Java动手动脑第四讲课堂作业

    动手动脑1 完全“手写代码实现”随机数生成 纯随机数发生器

  7. JAVA动手动脑多态

    动手实验一:下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 先进行自我判断,得出结论后,运行TestCas ...

  8. JAVA动手动脑异常处理

    1>请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. import javax.swing.*; class AboutEx ...

  9. JAVA动手动脑

    1.运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是 ...

随机推荐

  1. 如何复制CSDN上他人的博客文章到自己博客下

    原作者:hello_world!(CSDN) 原文地址:https://jingyan.baidu.com/article/0964eca24e159c8285f53618.html</a> ...

  2. Apache监控调优

    apache是一款对静态资源处理得比较好的中间件,但是对动态请求处理得不是很好,tomcat则正好相反. apache运用得比较多得工作模式主要是Prefork和Worker两种模式 1.Prefor ...

  3. iOS客户端使用教程

    使用须知 支持 ios9.0 以上系统,兼容 iphone.ipad.ipod 等设备. 电脑上用 PP 助手安装 Shadowrocket   Mac电脑上用PP助手安装Shadowrocket 下 ...

  4. NeDB——node嵌入式数据库

    参考资料1:[http://www.alloyteam.com/2016/03/node-embedded-database-nedb/] 参考资料2:[https://github.com/loui ...

  5. Django框架效率问题的解决方法和总…

    由于项目的需要,学习了Django框架,Django框架的MTV很清晰,通过MTV能够很好地了解Django框架的内部机理.但是在使用过程中发现了一个严重的问题,就是当有大量IO(写数据库操作)的时候 ...

  6. Java String == && equal

    [.net超级群:27921837] Java中equals和==的区别 java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型.byte,short,char,int,long,flo ...

  7. vue防止 由于网速出现 闪现{{}}

    防止闪现可能应为网速的原因{{msg}} 一直解析不了, 于是用户就看到它了,不友好, 于是 vue推出 与css配合 [v-cloak] {display:none}

  8. C/C++ 防止头文件重复包含 #pragma once 与 #ifndef 的区别

    为了避免同一个头文件被多重包含/重复包含,有两种方式: 方式一: #ifndef XXX #define XXX ... ...  //声明语句 #endif  //XXX 方式二: #pragma ...

  9. 虚拟机上首次安装Ubuntu后 root密码设置

    虚拟机下安装ubuntu后root密码设置 问题描述: 在虚拟机下安装了ubuntu中要输入用户名,一般情况下大家都会输入一个自己的网名或绰号之类的,密码也在这时设置过了. 但是当安装成功之后,使用命 ...

  10. [Git] 026 config 命令的补充

    少废话,上例子 1. 让命令更醒目 $ git config --global color.ui true 2. 偷懒 $ git config --global alias.st status 使用 ...