易截截图软件、单文件、免安装、纯绿色、仅160KB

Java底层深入研究(一)


   关于Java
的底层一直想写点什么,但是好像很多问题在网上还是可以找得到答案,最后还是决定写出来,一来可以让自己重温一下,二来可以和大家一起深入探讨底层的知识。这里面还有一些常见的小问题,也附带在里面的原因,framework
其实也是构建在这些知识的基础上的。
  
论一:数值论
问题一:java.math
中两个很强大的类:BigInteger
和BigDecimal

这两个类可以处理任意长度的数值。为什么说他们强大?就是因为它们的作用强大。
代码1
:System.out.println(2.0-1.1); //
结果:0.899999999
 
为什么不是我们认为的0.9

答案是:对于浮点数计算,浮点数本身采用二进制表示,所以无法表示1/10
,就如同十进制无法精确表示浮点数一样,就会出现四舍五入的误差。
 
如何防止这种误差?
有办法。你可以尝试:
代码2

BigDecimal.valueOf(2.0).subtract(BigDecimal.valueOf(1.1));
//
结果:0.9
注意到了嘛,BigInteger
和BigDecimal
不适用算术符号,而适用方法,如add,subtract,multiply,divide,mod
重要方法:valueOf,
返回大整数或大浮点数。compareTo(BigX)
比较
 
问题二:浮点数中的特殊数值
浮点数有两种:单精度(float
)和双精度(double
)。
它们区别:1.float
精度不高,double
精度是它的一倍。 2.float
数值后有”f”,
没有默认是double
类型数值。
言归正传,特殊值是:正无穷大、负无穷大、NaN.
定义如下:
正无穷大:正整数除以0
的结果。负无穷大不用说了吧^^!
NaN: 
0/0  
或 负数的平方根。
Double.POSITIVE_INFINITY

Double.NEGATIVE_INFINITY

Double.NaN
 
如何判断一个数是否是NaN?
if(x
== Double.NaN) 
错误
if(Double.isNaN(x)) 
正确
原因是:所有“非数值”的值都认为不相等。
 
问题三:java
数组的copy
在Java
中数组是可以copy
的哦,可以通过如下语法:
System.arraycopy(fromArray,fromIndex,toArray,toIndex,count)
 
问题四:如何得到一个0—n-1
之间的随机数?
Math.random()*n
//
分析:Math.random
得到0—1
之间随机数,不包含1
,包含0.
 
问题五:二分法查找对于学过算法的人并不陌生,数组中为我们提供现成的方法了?是的。
int val = Array.binarySearch(array[],v);
参数说明:arr


相关文档:

Java的一些汇总

1.//property文件的读取
//com.test.message文件
package com.test;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class Test_Messages {
private static final String BUNDLE_NAME = "com.test.messages";
private static final ResourceBundle RESOURCE_BUNDLE = Reso ......

java读文件 乱码

/**
 *
 */
package com.dongyun.peas2.system.web.action;
///**
// * @author Administrator
// *
// */
//public class ABcom {
//
// /**
//  *
//  */
// public ABcom() {
//  // TODO Auto-generated constructor stub
// }
//
// /**
//&nb ......

java获取系统属性




转自:http://blog.csdn.net/babydavic/archive/2007/08/23/1755718.aspx
系统属性
是指与用户程序相关的操作系统配置信息以及软件信息。通常与用户程序相关的属性关键字包括:
  ●file.separator:文件分隔符,
Windows
环境下为“",
Unix
环境下为&ldquo ......

第一个Java界面程序

     做了一个很简单的界面程序,也是我第一个界面程序.主要功能就是输入两个数字,计算这两个数字的和,很简单的功能,我却花了很久,对java太不熟悉了,连得到textField1中用户输入的值怎么获得,都不知道,后来baidu才知道,
     用 textField1.getText()获得输入的值;,
   ......

将java项目生成exe可执行文件全过程

将java项目生成exe可执行文件全过程
2009年05月10日 星期日 16:30
一、首先为eclipse安装fatjar插件(如果你的jar项目中需要用到图片、外部程序等文件时要用此插件打包程序才能正常运行)
安装方式有两种:方法1:在线安装(推荐)
步骤:
eclipse菜单栏 help >software updates >Find and install >Search f ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号