《疯狂Java讲义(第3版)》.(李刚)——基本数据类型
2016-04-21 14:37
423 查看
1、数据类型
1.Java的八大基本数据类型为:
整型
byte字节型1字节 8bit 最大存储数据量是255,存放的数据范围是-128~127之间
short短整型2字节 16bit最大数据存储量是65536,数据范围是-32768~32767之间
int整型4字节 32bit最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1
long长整型8字节 64bit最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1
浮点型
float单精度4字节 32bit数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F
double双精度8字节 64bit数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加
字符类型
char字符型用单引号
布尔类型
boolean布尔型true/false(只有真假两种结果)
数据值域的知识说明:
1.一个bit是计算机考研存储的最小的数据单位。即1位,只可能是0或1.
2.一个byte由八个bit组成,即八位,可以表示256个整数值,又由于byte在Java中有符号之分(即正负数),所以范围位-128~127.
3.一个char在Java中由两个byte组成,用来表示一个字符,即unicode编码,是无符号类型。
4.int和float在Java中由4个byte组成。
5.每个long或double型变量占用八个byte的存储空间。
6.1T=1024G,1G=1024M,1M=1024K,1K=1024B
小心得:
1.程序中的整数默认都是int型,即在方法调用直接传入的一个具体的整数值,默认情况下是int型。
2.值域小的的类型可以自动转化为值域大的。值域大的不能直接转化为值域小的,但是可以通过强制转化实现
Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,来保证Java程序的可移植性。整形数据默认为int数据类型,浮点型默认为double数据类型,如果要表示long型数据或float型数据,要在相应的数值后面加上l、L或f、F,否则会出现编译问题。
在其他语言中如C语言中,字符型数据和整型数据是可以相互转换的,都是以ASCII码来存储,可以将字符型数据当整型数据来看待。
2、基本数据类型间的转换
1、boolean类型不能转换成任何其他数据类型。
2、自动类型转换:容量小的数据类型可以自动转换成容量大的数据类型,如byte-short-int-long-float-double。byte、short、int不会互相转换,他们三者在计算时会转换成int类型。
例:int a=257;byte b=(byte)a;在java中,int类型占4个字节,byte占一个字节,故int类型转化为byte类型会出现位丢失情况,即将int的低4位作为byte类型的值。int型变量的值为257,对应的二进制是100000001,后8位是00000001,第一个0表示符号位,表示正数,所以变量b的值为1。
【备注:在计算机中,存储数据是通过内存地址来区分不同数据的,内存地址用十六进制数表示。在计算机存储单元中,一个ASCII码值占一个字节(8个二进制位),其中最高位符号位。事实上,计算机内的二进制数值是以补码形式表示的,正数的补码和原码的形式相同,负数的补码是将该数的绝对值的二进制形式,按位取反再加一。】
int a=128;byte b=(byte)a;这时b的值是-128。因为变量a对应的二进制是10000000,对应第一位符号位是1,则a是负数,其负数的补码仍是10000000,故b的值是-128。
3、强制类型转换:容量大的数据类型转换成容量小的数据类型时,要加上强制转换符,但这样有可能会造成精度降低或者数据溢出,要小心。
3、对象包装器
Java为了能将基本类型(primitive type)视为对象来处理,并能连接相关的方法,Java为每个节本类型都提供了相应的包装类,这样便能将基本类型转化为对象来处理。其对应关系表如下所示:
包装器类的使用
专门用来包裹(Wrap)基本类型的类叫包装类,也叫包装器,如Long,Integer等,其主要目的就是提供一个对象实例作为壳,将其基本类型包到这个对象之中,然后提供很多操作数据的方法,使面向对象的编程变得更加容易。
字符串、包装类、原始数据类间的转换
JAVA数据类型转换
1.Java的八大基本数据类型为:
整型
byte字节型1字节 8bit 最大存储数据量是255,存放的数据范围是-128~127之间
short短整型2字节 16bit最大数据存储量是65536,数据范围是-32768~32767之间
int整型4字节 32bit最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1
long长整型8字节 64bit最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1
浮点型
float单精度4字节 32bit数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F
double双精度8字节 64bit数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加
字符类型
char字符型用单引号
布尔类型
boolean布尔型true/false(只有真假两种结果)
数据值域的知识说明:
1.一个bit是计算机考研存储的最小的数据单位。即1位,只可能是0或1.
2.一个byte由八个bit组成,即八位,可以表示256个整数值,又由于byte在Java中有符号之分(即正负数),所以范围位-128~127.
3.一个char在Java中由两个byte组成,用来表示一个字符,即unicode编码,是无符号类型。
4.int和float在Java中由4个byte组成。
5.每个long或double型变量占用八个byte的存储空间。
6.1T=1024G,1G=1024M,1M=1024K,1K=1024B
小心得:
1.程序中的整数默认都是int型,即在方法调用直接传入的一个具体的整数值,默认情况下是int型。
2.值域小的的类型可以自动转化为值域大的。值域大的不能直接转化为值域小的,但是可以通过强制转化实现
Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,来保证Java程序的可移植性。整形数据默认为int数据类型,浮点型默认为double数据类型,如果要表示long型数据或float型数据,要在相应的数值后面加上l、L或f、F,否则会出现编译问题。
在其他语言中如C语言中,字符型数据和整型数据是可以相互转换的,都是以ASCII码来存储,可以将字符型数据当整型数据来看待。
2、基本数据类型间的转换
1、boolean类型不能转换成任何其他数据类型。
2、自动类型转换:容量小的数据类型可以自动转换成容量大的数据类型,如byte-short-int-long-float-double。byte、short、int不会互相转换,他们三者在计算时会转换成int类型。
例:int a=257;byte b=(byte)a;在java中,int类型占4个字节,byte占一个字节,故int类型转化为byte类型会出现位丢失情况,即将int的低4位作为byte类型的值。int型变量的值为257,对应的二进制是100000001,后8位是00000001,第一个0表示符号位,表示正数,所以变量b的值为1。
【备注:在计算机中,存储数据是通过内存地址来区分不同数据的,内存地址用十六进制数表示。在计算机存储单元中,一个ASCII码值占一个字节(8个二进制位),其中最高位符号位。事实上,计算机内的二进制数值是以补码形式表示的,正数的补码和原码的形式相同,负数的补码是将该数的绝对值的二进制形式,按位取反再加一。】
int a=128;byte b=(byte)a;这时b的值是-128。因为变量a对应的二进制是10000000,对应第一位符号位是1,则a是负数,其负数的补码仍是10000000,故b的值是-128。
3、强制类型转换:容量大的数据类型转换成容量小的数据类型时,要加上强制转换符,但这样有可能会造成精度降低或者数据溢出,要小心。
3、对象包装器
Java为了能将基本类型(primitive type)视为对象来处理,并能连接相关的方法,Java为每个节本类型都提供了相应的包装类,这样便能将基本类型转化为对象来处理。其对应关系表如下所示:
包装器类的使用
专门用来包裹(Wrap)基本类型的类叫包装类,也叫包装器,如Long,Integer等,其主要目的就是提供一个对象实例作为壳,将其基本类型包到这个对象之中,然后提供很多操作数据的方法,使面向对象的编程变得更加容易。
字符串、包装类、原始数据类间的转换
JAVA数据类型转换
package com.alex.demo02; import java.util.Date; /** * Description <br> * 网站:<a href= "http://blog.csdn.net/qq_32347977">Alex的博客</a> <br> * This is a demo of TypeChange <br> * * @author Alex * @version 1.0 */ public class TypeChange { /** * TypeChange构造器 */ public TypeChange() { } /** * hange the string type to the int type * * @param intstr * @return */ public static int stringToInt(String intstr) { Integer integer; integer = Integer.valueOf(intstr); return integer.intValue(); } /** * change int type to the string type * @param value * @return */ public static String intToString(int value) { Integer integer = new Integer(value); return integer.toString(); } /** * change the string type to the float type * @param floatstr * @return */ public static float stringToFloat(String floatstr) { Float floatee; floatee = Float.valueOf(floatstr); return floatee.floatValue(); } /** * change the float type to the string type * @param value * @return */ public static String floatToString(float value) { Float floatee = new Float(value); return floatee.toString(); } /** * change the string type to the sqlDate type * @param dateStr * @return */ public static java.sql.Date stringToDate(String dateStr) { return java.sql.Date.valueOf(dateStr); } /** * change the sqlDate type to the string type * @param datee * @return */ public static String dateToString(Date datee) { return datee.toString(); } /** * 测试主方法 * @param args */ public static void main(String[] args) { Date day = TypeChange.stringToDate("2003-11-3"); String strday = TypeChange.dateToString(day); System.out.println(strday); } }
相关文章推荐
- 最近上中间件技术的课,又重温java servlet技术
- Java多线程——ThreadLocal
- Java语言基础二
- 【JUC】JDK1.8源码分析之Semaphore(六)
- Java多线程
- JAVA去除小数点后不需要的0
- java AES128加密压缩 模拟传输数据
- JAVA中断机制详解
- 为什么我新建的maven项目没有java目录?
- Struts2——debug标签
- 错误,这个如何解决呢?内存溢出的问提。把JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m 还是不行
- Java中的位操作
- 自定义java泛型
- 线程的创建方式问题
- java运行时异常与一般异常有何异同?
- Eclipse的使用
- ns-3 的下载、编译以及 Eclipse 的相关配置
- JDK1.8源码学习之Map.java
- java 图片缩放和截取
- java Split 特殊符号处理