java基础2学习日志

  惭愧,昨天的日志,留到今天写.今日事今日毕,该打.

  首先, java程序结构与c++一样,都有顺序结构,选择结构和循环结构.语法也一模一样. 忽略.

  至于数据类型,占用的内存大小都是固定的. 其中比较难的 浮点型数据.  float类型数据占用32字节的内存.

  引用文档里的说明:"

In all other cases, let s, e, and m be three values that can be computed from the argument:

 int s = ((bits >> 31) == 0) ? 1 : -1;
 int e = ((bits >> 23) & 0xff);
 int m = (e == 0) ?
                 (bits & 0x7fffff) << 1 :
                 (bits & 0x7fffff) | 0x800000;
 

Then the floating-point result equals the value of the mathematical expression s·m·2e-150.

 

 浮点数用2进制表示的话,用0-31分别代表各2进制位的话.这里的s代表31位,是浮点数的符号位,决定正负.

 e代表30到23位,为浮点数的幂指数. m代表浮点数的有效位.这就是一个浮点数的内存结构,使用上面的表达式可计算出浮点数的值. 浮点数的值可以是无穷大,也可以不是一个数"NaN",也有最大值和最小值. 需要注意的是,由于浮点数是有精度的. 所以浮点数不能进行"相等"的判断,如: float x= 3.141 if(  x == 3.14), 这样的判断是错误的. 所以浮点数的判断 一般都用 一个区间来比较, 如:

   if( x >3.14 || x < 3.15), 一般采用 大于和小于的判断.

java的数组: (和C++有很大的不同)

  首先来定义一个数组: int  [] x;

  为其分配空间: x = new int[100];

  这里的数组,可以理解为一个数组对象,是一个变量. 它不象C++,在c++里它是一个指针常量,定义时一般指定数组大小,如:

  int x[5],此时系统就会分配栈的内存给它.

  而在java里,数组是一个对象类型, 这个对象类型有点象c++里的指针(java已经取消的指针),必须要用new来分配一个 堆中的空间给它才能使用.它不能象c++里的数组一样,一开始就设定大小.  其实这里的数组同时占用了 栈和堆的内存. 数组申请的是堆的空间, 而数组对象这个变量本身也占用了栈的内存,里面记录堆空间的起始地址.所以说,java比较吃内存. 当x=null时,就会被java的垃圾回收器给回收.所有new所申请的空间,垃圾回收器都会帮我们回收,比c++安全方便多了。不过java保留和c/c++一样的数组使用方法,使用下标来操作数组元素,很容易理解.

  不过java的数组还有很多优点,如获得数组的长度. 由于数组是一个对象, 通过访问数组的length成员,就能快速获得.

  java的二维数组也比C++中的灵活,它可以规则也可以不规则,如:

  int [][] xx = new int[2][3];   规则

  int [][] xx = new int[2][];

  xx[0] = new int[3];

  xx[1] = new int[4];

  

 所以java中的二维数组应该称为数组的数组才更贴切.

 java还提供了许多库,来帮助我门对数组的操作. 如java.util.arrays,里面的函数我门都可以方便使用.

 今天先到这里.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值