Java探索之旅(4)——方法和Random&Math类
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类的更多相关文章
- 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 ...
- JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别 关于获取类的字段有两种方式:getFields()和getDeclaredFields().我们先来 ...
- JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践
JAVA进阶之旅(二)--认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践 我们继续聊JAVA,这次比较有意思,那就是反射了 一.认识 ...
- java——多线程——单例模式的static方法和非static方法是否是线程安全的?
单例模式的static方法和非static方法是否是线程安全的? 答案是:单例模式的static方法和非static方法是否是线程安全的,与单例模式无关.也就说,如果static方法或者非static ...
- Java探索之旅(8)——继承与多态
1父类和子类: ❶父类又称基类和超类(super class)子类又称次类和扩展类.同一个package的子类可以直接(不通过对象)访问父类中的(public,缺省,protected)数据和方法. ...
- 深入理解Java中的同步静态方法和synchronized(class)代码块的类锁
一.回顾学习内容 在前面几篇博客中我我们已经理解了synchronized对象锁.对象锁的重入.synchronized方法块.synchronized非本对象的代码块, 链接:https://www ...
- Java探索之旅(14)——文本I/O与读写
1文件类File ❶封装文件或路径的属性.不包括创建和读写文件操作.File实例并不会实际创建文件.不论文件存在与否,可以创建任意文件名的实例.两种实例创建方式如下: ...
- java基础之二:取整函数(Math类)
在日常开发中经常会遇到数字的情况,有关数据的场景中会遇到取整的情况,java中提供了取整函数.看下java.lang.Math类中取整函数的用法. 一.概述 java.lang.Math类中有三个和取 ...
- Java探索之旅(18)——多线程(2)
1 线程协调 目的对各线程进行控制,保证各自执行的任务有条不紊且有序并行计算.尤其是在共享资源或者数据情况下. 1.1 易变volatile cache技术虽然提高了访问数据的效率,但是有可能导致主存 ...
随机推荐
- STM32L0 HAL库 IO读写功能
开发环境使用 MDK5.16a + CUBEMX生成代码 开发板使用:NUCLEO-L053R8 核心芯片:STM32L053R8 今天主要学习了下最基础的IO的读写,IO使用 PA5 LED输出 ...
- ionic新项目启动步骤
1.sudo npm install -g gulp 2.SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install ...
- Python 不可变对象
str是不变对象,而list是可变对象. 对于可变对象,比如list,对list进行操作,list内部的内容是会变化的,比如: >>> a = ['c', 'b', 'a'] > ...
- 第五篇、javascript正则表达式二
一.内容概要 1)创建着呢规则表达式对象的两种方法 2)正则表达式的常用属性和方法 3)string对象常用方法中可以使用正则表达式 4)ES中其他预定义的对象:Math.Date.Number.Bo ...
- read + 计算
#!/bin/sbin read -p "please input first number:" a read -p "please input second numbe ...
- <HTTP协议详解>由浅入深看HTTP
一. HTTP协议的应用简单概况 HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POST ...
- Hadoop切换namenode为active
hadoop切换namenode为active 进入hadoop/bin目录下 ./yarn rmadmin -transitionToActive --forcemanual rm1 重新启动zkf ...
- selenium-查看selenium API
pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的.也可以生成WEB 页面的,还可以在服务器上以浏览器的方式呈现! 一.pydoc 1.到底什么是 ...
- Python基础-redis模块使用
redis是一个数据库,他的数据全都是存放在内存里面的,redis每秒能支持30w次的读写,存放有两种格式,一种string类型,一种是hash类型 一,操作string类型 r=redis.Redi ...
- Javascript-- jQuery DOM篇(一)
DOM创建节点及节点属性 通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作.但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了. 浏览器提供的一些原生 ...