Java学习总结

关于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外的运算结果是什么?

  1. 无限乘以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的
注,非静态变量只限于实例,并只能通过实例引用被访问。

前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值