java编程基础学习

来源:互联网 发布:南部县法院淘宝拍卖网 编辑:程序博客网 时间:2024/04/29 20:36

一、知识点

java基本语法

1.java中的常量:

  •  
    • 整形常量 16进制为 0x数字 8进制为0数字
    • 长整形  数字L
    • 单精度浮点型 浮点数f  2e3f
    • 双精度浮点型  浮点数 2e3
    • 字符常量  在字符串中用到  '  "  / 等都可用/'  /"  //  来表示 。其他转义字符 /r表示换行,/b表示退格。
    • 数组属于引用数据类型

2.变量占用的字节数

  •  
    • byte 占1个字节 字数大小-27~27-1。
    • short 占2个字节 字数大小-215~215-1。
    • int 占4个字节 字数大小-231~231-1。
    • long 占8个字节 字数大小-263~263-1。
    • float 占4个字节 字数大小1.4E-45~3.4E+38和-1.4E-45~-3.4E+38。
    • double 占8个字节 字数大小-4.9E-324~1.7E+308。
    • char 占2个字节 字数大小0~216-1。是unicode编码,可把数字赋予字符型转换为相应字符
    • Boolean 占1个字节 。

3.强制数据类型转换时取后面的字节。

 

4.表达式中的数据类型自动提升,提升为表达式中位数较高的那个类型。

 

程序的流程控制

 

1.java中不允许嵌套定义

 

2.switch可以接受的数据类型为:int,byte ,char,short.

 

3.switch 语句一旦碰到第一次case匹配,就会顺序执行之后的所有程序代码,而不管后面的case是否匹配。

 

4.命令行窗口中使用Ctrl+C是程序结束。

 

5.用System.in.read()获取命令行窗口中写入的字符。

 

6.标号的使用,使用break时只能跳出当前循环而不能跳出外层循环,当我们需要跳出外层循环时就可以使用标号

例:

但尽量不要用。

 

java中浮点数在内存中表示形式

 

float4个字节存放3部分数据 符号位,有效数字,幂指数。

其中31位为符号位0表示正数,1表示负数,30到23位这8位表示幂指数,有效数字为22位到0位。

所以浮点数表示的无穷大为:31位为0,30到23位最大都为1,有效数字最小都为0,即表示为16进制为0x7f800000。由此类推能够表示的最大值为比无穷大小一点的即幂指数小一位,有效数最大,用16进制表示为:0x7f7fffff;

最小值为(这里指正数里最小值):31位为1,30到23位最小都为0,有效数字只有最后一位为1(若为0则全为0,浮点数不能是0),即表示为16进制为0x00000001。

float通过Float.intBitsToFloat()方法,将前面表示完成的int类型转换为float。

其具体表示式为:

int s=((bits>>31)==0)?1:-1;

int e=((bits>>23) &  0xff);

int m=(e==0)?(bits & 0x7fffff)<<1:(bits & 0x7fffff) |ox800000;

 

结果为:s.m.2-150,

 

数组对应的堆栈

普通的变量通常会放到栈内存中,当我们用new 的方式产生一个的数组或对象时会放在堆内存中,堆内存有java的垃圾回收器管理,并定期回收垃圾。在堆中放置一个对象时,在栈中同时也会产生一个变量,这个变量中存放了堆中这个对象的首地址,我们声明的变量就成为堆中对象的引用变量。当程序运行到这个变量的作用域外时就会被释放,而内存中存放的对象依然存在,等到一定时期,与其他垃圾对象一起清理(前提是没有其他变量引用这个对象)。

数组

1.多位数组可以是矩阵数组,也可以不是,当数组是矩阵数组时可以用int[][]x=new int[2][3]这样的方式定义;

多维数组也可用int[][] xx={{1,2,3},{1},{1,2}};这样的方式定义。

 

2.数组的两个方法

Arrays.sort(),

Arrays.arraycopy(Object src,int srcPos,Object dest,int destPos,int length);

arraycopy的第一个变量表示原数组,第二个表示从原数组的哪个位置开始拷贝,第三个表示目标数组,第四个表示拷贝到目标数组哪个位置,第五个表示拷贝几个数据。

 

二、总结及感悟

对java编程基础这一课,之前了解比较深入所以很多知识点没有记录,只是对自己认为的难点和较模糊的知识点进行了总结,由于计算机基础比较薄弱所以对浮点数内存中的表现形式和堆栈知识进行了重点学习。

三、问题

在浮点数内存中的表现形式进行学习时,对Float.intBitsToFloat()方法中用到的表示式不甚明了:

即:int s=((bits>>31)==0)?1:-1;

      int e=((bits>>23) &  0xff);

      int m=(e==0)?(bits & 0x7fffff)<<1:(bits & 0x7fffff) |ox800000;

我只能清楚s是取31位,e是取23~31位并通过算式将第31位变为0,m是取0~22位并做相应处理,而对(bits>>23) &  0xff这样的表示式不是太明白,好像(0x90  & 0xff )的结果是0xff.

至于为什么这样算出现这样的结果表示不理解,请老师指明这是什么用法,只需指明什么算法,我自行查找学习,还请老师帮忙。

原创粉丝点击