简谈JAVA基础--数据类型

来源:互联网 发布:蘑菇街秒杀软件 编辑:程序博客网 时间:2024/05/22 04:58
JAVA 数据类型
java基本数据类型根据字节占用循序包括boolean,byte,char,short,int,float,long,double
计算机中一个字节代表8位。根据各个类型所占用字节数可以得到表示的范围为 -2^位数   ——  2^位数-1次幂 - 1
除char与boolean外,其余类型的封装类继承于Number类 。java.lang -> java.lang.Number -> java.lang.XXX
除char的封装类外,其余封装类可以通过传递字符串来进行实例。boolean类型传入字符串如果为非true,则全部为false。
并且在通过传入字符串进行实例化时,如果无法被封装类所解析则会抛出NumberFormatException异常
而且在进行Interger.ValueOf( Long )时是不允许的。因为所表示数值的范围不同。但是可以进行Long.intValue()




JAVA 封装类型所 包含的方法
compareTo 方法用于比较两个字符串,从第一位开始比较,遇到不同字符串,返回两个字符的ASCII值
Character类型不能直接new一个ASCII码值。
基本类型的封装类,hascode是该值在机器中的ASCII码值。具有唯一性
parse 和 valueOf 的区别在于ValueOf返回的为封装类型,parse返回基本类型
bitCount 用于返回二进制有多少个1
getInteger(java.lang.String) 返回系统属性为String的Integer值
highestOneBit( i ) 讲i最高位保留,其余位数补0
lowestOneBit( i ) 讲i最低位保留,其余位数补0
numberOfLeadingZeros( i ) 二进制最高为1的位左侧为零的数量
numberOfTrailingZeros( i ) 二进制最低为1的位右侧为零的数量
reverseBytes - reverse 暂时不懂,暂时认为是反码
lowestOneBit 用于判断数值正负,1 和 -1 来表示
rotateRight 用于判断数值正负,1 和 -1 来表示
rotateLeft 和 rotateRight 代表循环左移和右移 << >>
toBinaryString 、toHexString、toOctalString 将十进制数转换为 2 、16 、8 进制


JAVA位运算
位运算是对数值的二进制表示进行运算。
>> 为有符号右移,起始位为0代表正数,右移位数直接舍弃,为1代表负数,右移位置补到最左侧
>>> 为无符号右移,无论正负,高位用0补位
<< 为左移


package demo;


/**
 * java基本数据类型以及封装类所包含的方法.
 * 
 * Created by yukaiji on 2017/2/26.
 */
public class BasicType {


public static void main(String[] args) {
// BasicType.sysoutSize();
// BasicType.lang();
BasicType.equles();
// BasicType.calculation();
}


/**
* 基本数据类型的字节数.
*/
public static void sysoutSize() {
System.out.println("Byte:" + Byte.SIZE / 8); // 2^7-1
System.out.println("Character:" + Character.SIZE / 8);
System.out.println("short:" + Short.SIZE / 8); // 2^15-1
System.out.println("Integer:" + Integer.SIZE / 8); // 2^31-1
System.out.println("float:" + Float.SIZE / 8);
System.out.println("Long:" + Long.SIZE / 8); // 2^63-1
System.out.println("Double:" + Double.SIZE / 8);
System.out.println("Boolean:" + Boolean.FALSE);
}


public static void lang() {
// 除boolean和char其余基本类型的封装类继承于Number类
// java.lang -> java.lang.Number -> java.lang.XXX
// 除Character类外,其他包装类可将一个字符串作为参数构造它们的实例
// boolean类型传入字符串为非true,全部为false。
// 传入的字符串必须能够被引用类型解析,否则会报NumberFormatException
// Long型转Int型如果数据过大,溢出从负数开始往回减
Integer integer = new Integer("123");
Boolean boo = new Boolean("true");
Long aLong= 1L;
System.out.println(integer);
System.out.println(boo);
}


public static void equles() {
// compareTo 方法用于比较两个字符串,从第一位开始比较,遇到不同字符串,返回两个字符的ASCII值
// Character类型不能直接new一个ASCII码值。
// 基本类型的封装类,hascode是该值在机器中的ASCII码值。具有唯一性
// parse 和 valueOf 的区别在于ValueOf返回的为封装类型,parse返回基本类型
// bitCount 用于返回二进制有多少个1
// getInteger(java.lang.String) 返回系统属性为String的Integer值
// highestOneBit( i ) 讲i最高位保留,其余位数补0
// lowestOneBit( i ) 讲i最低位保留,其余位数补0
// numberOfLeadingZeros( i ) 二进制最高为1的位左侧为零的数量
// numberOfTrailingZeros( i ) 二进制最低为1的位右侧为零的数量
// reverseBytes - reverse 暂时不懂,暂时认为是反码
// lowestOneBit 用于判断数值正负,1 和 -1 来表示
// rotateRight 用于判断数值正负,1 和 -1 来表示
// rotateLeft 和 rotateRight 代表循环左移和右移 << >>
// toBinaryString 、toHexString、toOctalString 将十进制数转换为 2 、16 、8 进制
Character car = new Character('a');
Integer in = new Integer(7);
Integer in1 = new Integer(4);
System.out.println(Integer.bitCount(7));
System.out.println(Integer.highestOneBit(7));
System.out.println(Integer.lowestOneBit(7));
System.out.println(Integer.toBinaryString(7));
}


public static void calculation() {
// >> 为有符号右移,起始位为0代表正数,右移位数直接舍弃,为1代表负数,右移位置补到最左侧
// >>> 为无符号右移,无论正负,高位用0补位
System.out.println(2 << 3); // 2的二进制为10 左移三位为 10 000 为16
System.out.println(16 >> 3); // 16的二进制为10000 右移三位 10 为2
}
}
原创粉丝点击