1.基本知识点

   ❶方法在C++里面称为函数。调用方法时,应该类型兼容——即不需显式类型转换即可将形参传递给实参。
   ❷形参的改变不影响实参的值。
   ❸Java注重模块化设计和自顶向下的设计

2.Math类

Math隐式导入,故不需要import。常用函数如下:

    ❶正三角和反三角函数:sin(),cos(),tan(),asin(),acos(),atan()。类型均为double,输入弧度
❷角度弧度转换函数:toRadians(),toDegrees()。参数和返回类型均为double
❸指数函数和对数函数:exp(),log(),log10(),pow(),sqrt()
❹取整函数:上整ceil(),下整floor,取最近整数(距离相等返回奇数)rint()
    round(float x)=(int)floor(x+0.5),round(double x)=(long) floor(x+0.54)
❺两者之间最大min(),最小max(),输入2数类型可相异;绝对值abs()

3.生成随机数Random

❶0.0<=Math.random()<1.0。

          Math.random()*100;  //返回位于[0 100)的随机数,但是不等于100
  'a'+Math.random()*('z'-'a'+1); //随机返回‘a’-'z'之间的字母 

随机返回[a,b]之间的数或者字符(a+Math.random()*(b-a+1))。如果没有+1,则返回值的区间为[a,b)。使用方法如下面代码。

❷Random类

利用java.util.Random类定义的随机数产生对象。如果种子相同,产生的随机数也相同,默认以当前时间为种子。使用方法如下:

java.util.Random data=new java.util.Random(3);//使用种子3产生随机数,默认以当前时间为种子
int a=data.nextInt();
int b=data.nextInt(1000);//(0,1000)之间的随机整数
double c=data.nextDouble();//(0,1.0)之间的随机数
float d=data.nextFloat();//(0.0F,1.0F)之间随机数
boolean e=data.nextBoolean();//随机false or true

4.代码

    ❶调用函数计算任意10进制数的16进制形式
    ❷调用扩展类生成100个'a'-'z'之间的随机字符
package function_study;
import java.util.Scanner;
public class function_study {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.print("输入一个大于0的数---");
int decimal=input.nextInt();
String hex="";
while(decimal!=0)//int值不能作为boolen类型,此处不能直接使用decimal
{
hex=decimal2hex(decimal%16)+hex;
decimal/=16;
}
hex="0X "+hex;
System.out.println("10进制转换为16进制的结果是---"+hex);
input.close();
for(int i=0;i<100;i++)<span style="font-family: Arial, Helvetica, sans-serif;">//随机生成a-z之间的100个字符</span> if((i+1)%10==0)
System.out.println(RandomCharacter.getRandomLower());
else
System.out.print(RandomCharacter.getRandomLower());
}
public static char decimal2hex(int decimal)
{
if(decimal>=0&&decimal<=9)
return (char)('0'+decimal);
else
return (char)(decimal-10+'A');
}
} package function_study;
public class RandomCharacter {
public static char getRandomCharacter(char ch1,char ch2)
{return (char)(ch1+Math.random()*(ch2-ch1+1));}
public static char getRandomLower()
{return getRandomCharacter('a','z');}
public static char getRandomHigh()
{return getRandomCharacter('A','Z');}
public static char getRandomDigit()
{return getRandomCharacter('0','9');}
public static char getRandomCharacter()
{return getRandomCharacter('\u0000','\uFFFF');}
}

Java探索之旅(4)——方法和Random&Math类的更多相关文章

  1. java数组、java.lang.String、java.util.Arrays、java.lang.Object的toString()方法和equals()方法详解

    public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...

  2. JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别

    JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别   关于获取类的字段有两种方式:getFields()和getDeclaredFields().我们先来 ...

  3. JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践

    JAVA进阶之旅(二)--认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践 我们继续聊JAVA,这次比较有意思,那就是反射了 一.认识 ...

  4. java——多线程——单例模式的static方法和非static方法是否是线程安全的?

    单例模式的static方法和非static方法是否是线程安全的? 答案是:单例模式的static方法和非static方法是否是线程安全的,与单例模式无关.也就说,如果static方法或者非static ...

  5. Java探索之旅(8)——继承与多态

    1父类和子类: ❶父类又称基类和超类(super class)子类又称次类和扩展类.同一个package的子类可以直接(不通过对象)访问父类中的(public,缺省,protected)数据和方法. ...

  6. 深入理解Java中的同步静态方法和synchronized(class)代码块的类锁

    一.回顾学习内容 在前面几篇博客中我我们已经理解了synchronized对象锁.对象锁的重入.synchronized方法块.synchronized非本对象的代码块, 链接:https://www ...

  7. Java探索之旅(14)——文本I/O与读写

    1文件类File    ❶封装文件或路径的属性.不包括创建和读写文件操作.File实例并不会实际创建文件.不论文件存在与否,可以创建任意文件名的实例.两种实例创建方式如下:               ...

  8. java基础之二:取整函数(Math类)

    在日常开发中经常会遇到数字的情况,有关数据的场景中会遇到取整的情况,java中提供了取整函数.看下java.lang.Math类中取整函数的用法. 一.概述 java.lang.Math类中有三个和取 ...

  9. Java探索之旅(18)——多线程(2)

    1 线程协调 目的对各线程进行控制,保证各自执行的任务有条不紊且有序并行计算.尤其是在共享资源或者数据情况下. 1.1 易变volatile cache技术虽然提高了访问数据的效率,但是有可能导致主存 ...

随机推荐

  1. Android中子线程真的不能更新UI吗?

    Android的UI访问是没有加锁的,这样在多个线程访问UI是不安全的.所以Android中规定只能在UI线程中访问UI. 但是有没有极端的情况?使得我们在子线程中访问UI也可以使程序跑起来呢?接下来 ...

  2. 怎么在js里写html

    <html> <head> <meta charset="utf-8"/> <title>示例前端模板写在代码里</title ...

  3. nodejs模块之http&&url

    我们使用nodejs中的http模块来进行网络操作 一.什么是HTTP协议: 超文本传输协议(HyperText Transfer Protocol)HTTP假定其下层协议提供可靠传输. 因此,任何能 ...

  4. 第二篇、css尺寸和边框

    一.尺寸和标签图 二.尺寸单位 %:百分比 in:英寸 cm:厘米 mm:毫米 pt:磅(点)(1pt等于1/72英寸) px:像素(计算机屏幕上的一个点) em:1em等于当前的字体尺寸,2em等于 ...

  5. 《python基础教程(第二版)》学习笔记 字符串(第3章)

    <python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:格式化输出字符 ...

  6. UNIDBgrid里动态添加clientevents实现回车替换TAB

    //GRID里回车替换TABfunction cellkeydown(sender, td, cellIndex, record, tr, rowIndex, e, eOpts){ if (e.get ...

  7. LightOJ 1138 二分

    1138 - Trailing Zeroes (III)   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...

  8. SESSION应用的一个场合

    Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间.每 一访问者都会单独获得一个Session.在Web应用程序中,当一个用户访问该应用 时,Session类型的变量可以供这个用户 ...

  9. 常见ETL工具一览,你知多少?

    这些年,几乎都与ETL打交道,接触过多种ETL工具.现将这些工具做个整理,与大家分享. 一 ETL工具[国外] 1. datastage点评:最专业的ETL工具,价格不菲,使用难度一般 下载地址:ft ...

  10. jQuery-中的事件

    [jQuery中的事件] javascript和html之间的交互是通过用户和浏览器操作页面时引发的事件来处理的,虽然传统的javascript能完成这些交互,但事jQuery增加并扩充了基本事件处理 ...