Java笔记(1)--------数据类型
2015-09-09 16:48
405 查看
一、数据类型
基本数据类型数值型
整数类型(bite,short,int,long)
浮点类型(float,double)
非数值型
字符型(char)
布尔型(boolean)
引用数据类型
类(class)
接口(interface)
数组
程序中的整数默认都是int型,即在方法调用直接传入的一个具体的整数值,默认情况下是int型。
值域小的的类型可以自动转化为值域大的。值域大的不能直接转化为值域小的,但是可以通过强制转化实现
Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,来保证Java程序的可移植性。整形数据默认为int数据类型,浮点型默认为double数据类型,如果要表示long型数据或float型数据,要在相应的数值后面加上l、L或f、F,否则会出现编译问题。
二、基本数据类型间的转换
boolean类型不能转换成任何其他数据类型。自动类型转换:容量小的数据类型可以自动转换成容量大的数据类型,如byte-short-int-long-float-double。byte、short、int不会互相转换,他们三者在计算时会转换成int类型。
强制类型转换:容量大的数据类型转换成容量小的数据类型时,要加上强制转换符,但这样有可能会造成精度降低或者数据溢出,要小心。
三、对象包装器
Java为了能将基本类型(primitive type)视为对象来处理,并能连接相关的方法,Java为每个节本类型都提供了相应的包装类,这样便能将基本类型转化为对象来处理。其对应关系表如下所示:基本数据类型 | 包装类 |
---|---|
byte(字节) | java.lang.Byte |
char(字符) | java.lang.Character |
int(整型) | java.lang.Integer |
long(长整型) | java.lang.Long |
float(浮点型) | java.lang.Float |
double(双精度) | java.lang.Double |
boolean(布尔型) | java.lang.Boolean |
包装器类的使用:
专门用来包裹(Wrap)基本类型的类叫包装类,也叫包装器,如Long,Integer等,其主要目的就是提供一个对象实例作为壳,将其基本类型包到这个对象之中,然后提供很多操作数据的方法,使面向对象的编程变得更加容易。
字符串、包装类、原始数据类间的转换
四、泛型
泛型只是编译时的概念,是供编译器进行语法检查用的(由于程序员需要一种类型安全的集合,故这种需求产生了泛型)。使用泛型的目的主要有以下两个方面:
1. 努力将运行时的异常转换成编译时错误,减少运行时异常数量(提高了编译器的能力)。
2. 解决模版编程的问题。
//不用泛型 List list0 = new ArrayList(); list0.add("hello"); String str0 = (String) list0.get(0); //用泛型,这样在获取对象的时候就不用类型转换 List<String> list = new ArrayList<String>(); list.add("hello");
注意:泛型是没有数组的。编译器不承认 HashMap< K,V >[]这种形式的: Cannot create a generic array of HashMap< k , v>
原因就是数组必须确定他每一个元素的类型。但是泛型在编译阶段有一个类型擦除的问题,也就是说编译器理解HashMap< Integer,Intege r>和HashMap< String,String>都是同一种类型HashMap。如果泛型数组存在,那么HashMap < Integer,Integer>和HashMap< String,String>对象都可以加入到同一个HashMap[]数组中,这会造成灾难性的结果。
如果
aac2
一定要定义HashMap数组,可以使用HashMap[] aTweightList = new HashMap[10]; 形式,也就是HashMap常规类型。
java中数据类型转换
如何将字串 String 转换成整数 int?
A. 有两个方法:int i = Integer.parseInt([String]) 或 i = Integer.parseInt([String],[int radix]);
int i = Integer.valueOf(my_str).intValue();
如何将整数 int 转换成字串 String ?
A. 有叁种方法:String s = String.valueOf(i);
String s = Integer.toString(i);
String s = “” + i;
数据类型转换java实例代码
public class TypeChange { public TypeChange() { } //change the string type to the int type public static int stringToInt(String intstr) { Integer integer; integer = Integer.valueOf(intstr); return integer.intValue(); } //change int type to the string type public static String intToString(int value) { Integer integer = new Integer(value); return integer.toString(); } //change the string type to the float type public static float stringToFloat(String floatstr) { Float floatee; floatee = Float.valueOf(floatstr); return floatee.floatValue(); } //change the float type to the string type public static String floatToString(float value) { Float floatee = new Float(value); return floatee.toString(); } //change the string type to the sqlDate type public static java.sql.Date stringToDate(String dateStr) { return java.sql.Date.valueOf(dateStr); } //change the sqlDate type to the string type public static String dateToString(java.sql.Date datee) { return datee.toString(); } public static void main(String[] args) { java.sql.Date day ; day = TypeChange.stringToDate("2003-11-3"); String strday = TypeChange.dateToString(day); System.out.println(strday); } }
转换原则
从低精度向高精度转换byte 、short、int、long、float、double、char
注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换
基本类型向类类型转换
正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2);
反向转换:通过类包装器来转换
int b=a.intValue();
类类型向字符串转换
正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可
反向转换:通过类包装器new出一个新的类类型的变量
eg1: int i=Integer.valueOf(“123”).intValue()
说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
基本类型向字符串的转换
正向转换:
如:int a=12;
String b;b=a+””;
反向转换:
通过类包装器
eg1:int i=Integer.parseInt(“123”)
说明:此方法只能适用于字符串转化成整型变量
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
本文是个人学习java笔记,文本资料来自http://blog.csdn.net/u011225629/article/details/45271019
相关文章推荐
- eclipse 中 Android 项目依赖文件管理
- java.net.SocketException: Too many open files 问题的解决办法
- Eclipse4.4 安装java反编译插件Eclipse Class Decompiler
- java之 ------ 类反射【详解】
- 使用Eclipse+Maven+Jetty构建Java Web开发环境(几个教程综合集成2014发行)
- js创建javaMap
- Spring 3.2三个值得关注的新特性
- Android-个性通知(开源niftynotification,eclipse实现调用,nineoldandroids动画)
- java NIO 传送文件
- Eclipse找不到或无法加载主类
- Java通过出生日期计算属相(生肖)和星座
- Spring 3 MVC hello world example – Annotation
- Java中堆内存和栈内存详解
- Eclipse使用Maven内置插件不需要安装Maven
- java多线程的编程实例
- java多线程的编程实例
- ubuntu下android源码倒入eclipse
- java中的string equals 与 == 的比较
- java1.5之Callable
- java压缩成zip