关于math.random
int b=(int)(Math.random()10);//生成[0,9]之间的随机整数。
int temp=m+(int)(Math.random()(n+1-m)); //生成从m到n的随机整数[m,n]
关于怎样设置eclipse的自动提示,防止空格代码补全
在Windows/Preferences/java/Editor/Content Assist下后边有个Disable insertion triggers except ‘Enter’,把这个打钩就可以了,只有按enter才会输入到屏幕
java.math.Math类常用的常量和方法:
Math.PI 记录的圆周率 Value: 3.141592653589793
Math.E记录e的常量Value: 2.718281828459045
Math. abs (doubled) 求绝对值
Math.sin 正弦函数 Math.asin 反正弦函数
Math.cos 余弦函数 Math.acos 反余弦函数
Math.tan 正切函数 Math.atan 反正切函数
Math.toDegrees 弧度转化为角度 Math.toRadians 角度转化为弧度
Math.ceil 得到不小于某数的最大整数
Math.floor 得到不大于某数的最大整数
例如:Math.floor(12.7)=12.0
Math.ceil(12.7)=13.0
ceil()是天花板,即向上取整。floor是地板,向下取整。round是四舍五入。
Math.IEEEremainder(doublex, double y) 求余
Math.max (n1, n2)求两数中最大
Math.min (n1, n2)求两数中最小
Math. pow (doublex, double y) 求某数的任意次方xy
Math.sqrt(x):平方根
Math.pow(x,y):x的y次方
Math.exp(x) 求e的x次方
Math.log10(x)以10为底x的对数
Math.log 自然对数
Math.rint(double x)求距离x最近的整数(可能比某数大,也可能比它小)
Math.round(x) 同上,返回int型或者long型(上一个函数返回double型)
Math.random()返回0,1之间的一个随机数
java浮点数运算中有两个特殊的情况:NAN、INFINITY。
1、INFINITY:
在浮点数运算时,有时我们会遇到除数为0的情况,那java是如何解决的呢?
我们知道,在整型运算中,除数是不能为0的,否则直接运行异常。但是在浮点数运算中,引入了无限这个概念,我们来看一下Double和Float中的定义。
Double:
public static final double POSITIVE_INFINITY = 1.0 / 0.0;
public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
Float:
public static final float POSITIVE_INFINITY = 1.0f / 0.0f;
public static final float NEGATIVE_INFINITY = -1.0f / 0.0f;
那么这些值对运算会有什么影响呢?
我们先思考一下下面几个问题:
1.无限乘以0会是什么?
2.无限除以0会是什么?
3.无限做除了1、2、3外的运算结果是什么?
- 无限乘以0,结果为NAN
System.out.println(Float.POSITIVE_INFINITY * 0); // output: NAN
System.out.println(Float.NEGATIVE_INFINITY * 0); // output: NAN
2.无限除以0,结果不变,还是无限
System.out.println((Float.POSITIVE_INFINITY / 0) == Float.POSITIVE_INFINITY); // output: true
System.out.println((Float.NEGATIVE_INFINITY / 0) == Float.NEGATIVE_INFINITY); // output: true
3.无限做除了乘以0意外的运算,结果还是无限
复制代码
System.out.println(Float.POSITIVE_INFINITY == (Float.POSITIVE_INFINITY + 10000)); // output: true
System.out.println(Float.POSITIVE_INFINITY == (Float.POSITIVE_INFINITY - 10000)); // output: true
System.out.println(Float.POSITIVE_INFINITY == (Float.POSITIVE_INFINITY * 10000)); // output: true
System.out.println(Float.POSITIVE_INFINITY == (Float.POSITIVE_INFINITY / 10000)); // output: true
复制代码
要判断一个浮点数是否为INFINITY,可用isInfinite方法
System.out.println(Double.isInfinite(Float.POSITIVE_INFINITY)); // output: true
2、NAN
java中的NAN是这么定义的:
public static final double NaN = 0.0d / 0.0;
NAN表示非数字,它与任何值都不相等,甚至不等于它自己,所以要判断一个数是否为NAN要用isNAN方法:
System.out.println(Float.NaN == Float.NaN); // output: false
System.out.println(Double.isNaN(Float.NaN)); // output: true
3
Exception in thread “main” java.lang.NullPointerException
该问题多半是由于用到的某个对象只进行了声明,而没有初始化,即没有被new
比如说:
一个类Person,有一个对象p1
声明对象 Person p1;
使用该对象(调用它的某个方法等) p1.setXXX(…);
这种情况下就会产生上述错误。
改正方法:
在使用对象之前加上 p1 = new Person();
4静态方法和属性,Static使用方式
Java中主类中定义方法加static和不加static的区别
static的作用是,将属性或者方法修饰为该类的共享成员,即这个属性或方法是该类实例化的所有对象之间共享的,不为某个实例对象所有,static属性或方法是存储在内存的公共区,一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。
static的变量是在类装载的时候就会被初始化,即,只要类被装载,不管是否使用了static变量,都会被初始化。
static的基本规则
·一个类的静态方法只能访问静态属性
·一个类的静态方法不能直接调用非静态方法
·如访问控制权限允许,static属性和方法可以使用类名加“.”的方式调用,也可以使用实例加“.”的方式调用
·静态方法中不存在当前对象,因而不能使用this,也不能使用super
·静态方法不能被非静态方法覆盖
·构造方法不允许声明为static的
注,非静态变量只限于实例,并只能通过实例引用被访问。
前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用