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. Yii2发送短信验证码完全解决方案

    概述 在做项目的时候,需要用到短信发送验证码功能.不能不说Yii2的牛逼,很容易就搞定了.下面我整理一下具体功能和流程,分享给大家. 主要功能 通过Yii2 rules验证手机号 通过js验证是否为手 ...

  2. Python——轻量级web服务器flask的学习

    前言: 根据工程需要,开始上手另一个python服务器---flask,flask是一个轻量级的python服务器,简单易用.将我的学习过程记录下来,有新的知识会及时补充. 记录只为更好的分享~ 正文 ...

  3. vi/vim滚动屏幕

    VIM帮助文档如是说 Q_sc Scrolling CTRL-E N CTRL-E window N lines downwards (default: 1) CTRL-D N CTRL-D wind ...

  4. 大话设计模式--解释器模式 interpreter -- C++实现实例

    1. 解释器模式: 给定一个语言,定义它的文法的一种表示 并 定义一个解释器,这个解释器使用该表示文法 来解释语言中的句子. 如果一种特定类型的问题发生的频率很高,那么可能就值得将该问题的各个实例表述 ...

  5. Python- and & or 的短路原则

    条件1 and 条件2 条件1 or 条件2 短路原则 对于and 如果前面的第一个条件为假,那么这个and前后两个条件组成的表达式的计算结果就一定为假,第二个条件就不会被计算 对于or 如果前面的第 ...

  6. BZOJ 3391 [Usaco2004 Dec]Tree Cutting网络破坏:dfs【无根树 节点分枝子树大小】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3391 题意: 给你一棵无根树,求分支size均不大于一半点数的点. 题解: 假定1为根. ...

  7. SESSION应用的一个场合

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

  8. 利用Hibernate 框架,实现对数据库的增删改查

    增: package com.maya.test; import org.hibernate.*; import org.hibernate.cfg.*; import com.maya.model. ...

  9. Python基础知识之字符串操作方法总结

    Python 中字符串也是一种数据类型,针对此数据总结下常用的方法 1,字符串截取,变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾 ...

  10. php mysqli_get_server_version()函数

    php mysqli_get_server_version()函数以整数形式返回MySQL服务器版本. 本文章想大家介绍mysqli_get_server_version 函数的基本使用方法和实例,需 ...