java学习笔记之一------数据类型及常用转换

java数据类型划分

分为两大类型:

1)基本数据类型:类似于普通的值。

2)引用数据类型:传递的是内存的地址。

浮点类型实际上就是表示小数。

java基本数据类型

数据的溢出

当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生絮乱,且不是预期的运行结果。

例如:求出整型的最大值

[java] view plaincopy

  1. public class T {
  2. public static void main(String[] args) {
  3. int max = Integer.MAX_VALUE;
  4. System.out.println("整型的最大值为:"+max); //整型的最大值为:2147483647
  5. }
  6. }

现在对求的最大值进行加法操作

[java] view plaincopy

  1. public class T {
  2. public static void main(String[] args) {
  3. int max = Integer.MAX_VALUE;
  4. System.out.println("整型的最大值为:"+max);       //整型的最大值为:2147483647
  5. System.out.println("整型的最大值+1: "+(max+1));  //整型的最大值+1: -2147483648
  6. System.out.println("整型的最大值+2: "+(max+2));  //整型的最大值+2: -2147483647
  7. }
  8. }

如果现在要想避免数据的溢出,可以采用扩大数据类型的方式。int-->long

[java] view plaincopy

  1. public class T {
  2. public static void main(String[] args) {
  3. int max = Integer.MAX_VALUE;
  4. System.out.println("整型的最大值为:"+max);       //整型的最大值为:2147483647
  5. System.out.println("整型的最大值+1: "+(max+1));  //整型的最大值+1: -2147483648
  6. System.out.println("整型的最大值+2: "+(max+2));  //整型的最大值+2: -2147483647
  7. System.out.println("整型的最大值+2: "+((long)max+2));  //2147483649
  8. }
  9. }

字符类型

字符类型在内存中占有2个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待,

因此,严格说来,字符类型也算是整数类型的一种。

[java] view plaincopy

  1. public class T {
  2. public static void main(String[] args) {
  3. char ch1 = ‘a‘;     //字符是使用‘‘括起来的数据
  4. char ch2 = 97;      //通过数字定义字符变量
  5. System.out.println("ch1 = "+ch1);
  6. System.out.println("ch2 = "+ch2);
  7. }
  8. }

常用的转义字符

浮点数类型与双精度浮点数类型

在日常生活中经常会使用到小数类型的数值,如身高,体重等需要精确的数值时,整数就不能满足程序设计者的要求了。在数学中,这些带有小数点的数值

称为实数,在java中,这种数据类型称为浮点数类型(floag),其长度为32个字节,有效范围为-3.4E1038到3.4E1038。当浮点数的表示范围不够大的时候

还有一种双精度(double)浮点数可供使用。双精度浮点数类型的长度为64个字节,有效范围为-1.7E10308到1.7E10308

在java 中一个数字或者一个小数实际上也都是存在默认类型的:

小数(1.1,1.2)的默认类型是double类型

整数(1,2,3)的默认类型是int类型

布尔类型

布尔(boolean)类型的变量,只有 true(真)和false(假)两种

基本数据类型的默认值


将int转换成String类型,方法有以下三种:

(1) String s = String.valueOf(i);

(2) String s = Integer.toString(i);

(3) String s = "" + i;


String -> int

s="12345";
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?

以下是答案:


第一种方法:s=i+"";   //会产生两个String对象
第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象

第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象

--------------------------------------------------------------------

1如何将字串 String 转换成整数 int?

A. 有两个方法:

1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue();

注: 字串转成 Double, Float, Long 的方法大同小异.

2 如何将整数 int 转换成字串 String ?

A. 有叁种方法:

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i);

3.) String s = "" + i;

注: Double, Float, Long 转成字串的方法大同小异.

JAVA数据类型转换

这是一个例子,说的是JAVA中数据数型的转换.供大家学习

package shenmixiaozhu;
import java.sql.Date;
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数组转换成string,然后写文件,再读文件,再把string转换回来,成为byte数组。可是,看上去很简单,编出程序来一编译,通过..其实有玄机...特别是你要用到它(byte[]的内容)加密,解密时,就会报异常。至少我的会。出的异常是: javax.crypto.BadPaddingException:   Given   final   block   not   properly   padded   
上网找了很久,说法很多。自己搞了很久...终于搞定。

具体做法:

将byte数组转换成string
  
  BASE64Encoder enc=new BASE64Encoder();
  String 转换后的string=enc.encode(byte数组);
  
将string转换回来成为byte数组:

BASE64Decoder dec=new BASE64Decoder(); 
  try {
   byte数组 = dec.decodeBuffer(转换后的string);
  } catch (IOException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }

分享几个链接:

http://gagaghost.itpub.net/post/25/283173

http://topic.csdn.net/t/20061123/11/5179125.html

http://blog.csdn.net/dynamo2/archive/2005/08/30/468105.aspx

http://bbs.chinajavaworld.com/thread.jspa?threadID=677035&messageID=677189

时间: 2024-08-27 09:03:27

java学习笔记之一------数据类型及常用转换的相关文章

Java学习笔记三——数据类型

前言 Java是强类型(strongly typed)语言,强类型包含两方面的含义: 所有的变量必须先声明后使用: 指定类型的变量只能接受预支匹配的值. 这意味着每一个变量和表达式都有一个在编译时就确定的类型. Java数据类型分为两大类:基本类型和引用类型. 基本数据类型 Java的基本数据类型包括:boolean.字符型和数值类型. 数值类型包括:整型和浮点类型 boolean 大小:Java规范并没有强制指定boolean类型的变量所占内存大小 范围:true或false 例子:boole

疯狂Java学习笔记(64)------------线程转换

线程的生命周期 由上图可以看出: 线程的状态转换是线程控制的基础.线程状态总的可分为五大状态:分别是生.死.可运行.运行.等待/阻塞. 各个状态细节不再赘述,具体请看http://blog.csdn.net/u011225629/article/details/46288995此篇博文 此篇博文主要讲述各个状态的实例! 一.新建和就绪状态 此处不做细致的讲解,在上一篇博文中已经讲解过了! package com.haixu.thread2; public class InvokeRun exte

Java学习笔记——线程两种常用的创建调用方法

这是两种开发中常用的线程使用方法,匿名对象调用即可,很简单,掌握即可 <span style="font-size:18px;">class ThreadDemo { public static void main(String[] args) { new Thread() { public void run() { //coding here } }.start(); Runnable r = new Runnable() { public void run() { //

Java学习笔记二:数据类型

Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围从-2 147 483 6至2 147 483 647 超过20亿,如果用来存储大于20亿的值,最好使用long型. 1.2  int 与Integer: Java中的数据类型分为基本数据类型和复杂数据类型.Int为前者,integer为后者. Integer是int的封装类,提供了很多转换方法,当

Java学习笔记_18_字符串、包装类、原始数据类剪得转换

18. 字符串.包装类.原始数据类剪得转换: 各个转换如下: 1>String 转换成Integer: Integer integer = new Integer("string");或 Integer Integer = Integer.valueOf(String): 注:String必须是数字字符串,如:"1232". 2>Integer 转换成String: String str = Integer.toString(); 3>Intege

java学习笔记 第二篇 核心技术(二)

第十四章 集合类 集合类用来存放对象的引用.继承关系如下图: 14.1 Collection 接口 是层次结构中的根接口,构成Collection的单位称为元素.Collection接口不能直接使用,但该接口提供了添加元素.删除元素.管理数据的方法. Collection接口常用方法: 14.2 List 集合 包括List接口以及List集合的所有实现类.List集合中的元素允许重复,各元素循序就是对象插入的顺序 1.List接口,两个重要方法: get(int index): 获取指定索引位

java学习笔记16--I/O流和文件

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理设备之间的数据传输,对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中 输入/输出流可以从以下几个方面进行分类 从流的方向划分: 输入流.输出流 从流的分工划分: 节点流.处理流 从流的内容划分: 面向字符的流.面向字节的流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对

Java学习笔记3-操作符

Java基本操作符:+.-.*./.%.=.==.!=.+=.-=. 优先级:先乘除后加减,如果是连接符+号会优先往前匹配,比如 a+++++b,会被解释称 a++ ++ +b,所以会报错,需要自行使用括号隔离为 (a++) + (++b). 对象的引用如果赋值给了对象的引用后,2 个对象将指向同一个引用,有一个对象的引用重新赋值后将同时影响到另一个对象,比如 ClassName classA = new ClassName(); ClassName classB = new ClassName

Java学习笔记心得——初识Java

初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开始走进Java的世界.  Java产生的历史 Java来自于Sun公司的一个叫Green Project中撰写的程序语言,全球信息网(World Wide Web)兴起,Java Applet成为网页互动技术的代表,特别适合于Internet应用程序开发. Java语言的特点 1.面向对象 这是Java最重要