`
Mini_Xiao
  • 浏览: 7025 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java----基本数据类型和String类(7.6)

    博客分类:
  • java
阅读更多

第一节   基本数据类型和String

纲要:1.八种基本数据类型

      2.数据类型之间的转换

      3.String

 

一.八种基本数据类型

整数类型:十进制存储格式

     byte    字节型    8bits     表示范围:-128~127

     short   短整型    16bits    表示范围:-2^15~2^15-1

     int      整型     32bits    表示范围:-2^31~2^31-1

     long    长整型    64bits    表示范围:-2^63~2^63-1

浮点型:十六进制存储格式,默认格式为double

     float    浮点型    32bits   

     double   双精度浮点型    64bits

布尔型:

     boolean   布尔型    true/false

字符型:

      char     字符型    16bits 

 

(数据值域说明:

     1.一个bit是计算机可以存储的最小数据单位。即1位,不是0就是1

     2.1K=1024bit , 1M=1024K , 1G=1024M   

 

/**
 * 测试基本数据类型的取值范围
 * @author zhouxiaoxiao
 *
 */
public class range {

	/**
	 * 程序主函数入口
	 */
	public static void main(String[] args) {
      
		//byte 类型可取的最小值:-2^7
		System.out.println("byte 类型可取的最小值: "+Byte.MIN_VALUE);
		//byte 类型可取的最大值:2^7-1
		System.out.println("byte 类型可取的最大值: "+Byte.MAX_VALUE);
		
		//short 类型可取的最小值:-2^15
		System.out.println("short 类型可取的最小值: "+Short.MIN_VALUE);
		//short 类型可取的最大值:2^15-1
		System.out.println("short 类型可取的最大值: "+Short.MAX_VALUE);
		
		//int 类型可取的最小值:-2^31
		System.out.println("int 类型可取的最小值: "+Integer.MIN_VALUE);
		//int 类型可取的最大值:2^31-1
		System.out.println("int 类型可取的最大值: "+Integer.MAX_VALUE);
		
		//long 类型可取的最小值:-2^63
		System.out.println("long 类型可取的最小值: "+Long.MIN_VALUE);
		//long 类型可取的最大值:2^63-1
		System.out.println("long 类型可取的最大值: "+Long.MAX_VALUE);	
		
		//float 类型可取的最小正值:2^(-149)=1.4E-45
		System.out.println("float 类型可取的最小正非零值的常量: "+Float.MIN_VALUE);
		//float 类型可取的最大正值:(2-2^(-23))2^127=3.4028235E38
		System.out.println("float 类型可取的最大正有限值的常量: "+Float.MAX_VALUE);
		
		//double 类型可取的最小正非零值:2^(-1074)=4.9E-324
		System.out.println("double 类型可取的最小正非零值: "+Double.MIN_VALUE);
		//double 类型可取的最大正有限值: (2-2^(-52))*2^1023=1.7976931348623157E308
		System.out.println("double 类型可取的最大正有限值: "+Double.MAX_VALUE);
		
		//boolean 类型只可取两个值:true 或 false
		System.out.println("boolean 的true值: "+Boolean.TRUE);
		System.out.println("boolean 的false值: "+Boolean.FALSE);		
		
		//char 类型可取的最小值: '\u0000'即Unicode值为0000的字符‘ ’。
		System.out.println("char 类型可取的最小值: "+Character.MIN_VALUE);
		System.out.println("char 类型可取的最小值的Unicode值为: "+(int)Character.MIN_VALUE);
		//char 类型可取的最大值: '\uFFFF'即Unicode值为FFFF的字符‘?’。
		System.out.println("char 类型可取的最大值: "+Character.MAX_VALUE);	
		System.out.println("char 类型可取的最大值的Unicode值为: "+(int)Character.MAX_VALUE);
	}

}

 结果如下:



 

二.数据类型之间的转换

数据范围大小:byte<short<char<int<long<float<double

 1.boolean类型不能和其他任何类型进行相互转换。

2.小范围的类型转换成大范围的类型时,只有在整型转成char型时才需要强制转换,

  其他情况下都可以通过赋值的方式直接转型。

代码如下:

/**
 * 数据类型之间的转换,小范围转大范围
 * byte<short<char<int<long<float<double
 * @author zhouxiaoxiao
 * 
 */
public class minTRANSmax {

	/**
	 * 程序主函数入口
	 */
	public static void main(String[] args) {

		/**********boolean类型与其他类型之间的转换***********/
		//boolean类型既不能通过直接复制转为其他类型,也不能通过强制转化转为其他类型
		//boolean bool=true;
		//byte b0=bool; ×
        //byte b0=(byte)bool; ×
		
		/**********byte型转其他大范围的***********/
		byte b1=123;
		
		//byte型可直接通过赋值转short型,int型,long型,float型,double型
		//byte型转short型如下:
		short s1=b1;
		System.out.println("byte型值为:123,转换为short型后为:"+s1);
		
		//byte不能通过赋值直接转为char型
		//char c1=b1; ×
		//byte型经过强制转换转为char型
		char c1=(char)b1;
		System.out.println("byte型值为:123,强制转换为char型后为:"+c1);

		/********short型转其他大范围的*******/
		short s2=1234;
		
		//short不能通过赋值直接转为char型
		//char c1=b1; ×
		//short型经过强制转换转为char型
		char c2=(char)s2;
		System.out.println("short型值为:123,强制转换转为char型后的值为:"+c2);
		
		//short型可直接通过赋值转为int型,long型,float型,double型
		//short型转int型如下:
		int t2=s2;
		System.out.println("short型值为:123,转换为int型后的值为:"+t2);

		/**********char型转为其他大范围的*********/
		char c3='3';  //字符3的ASCII值为51
		
		//char型可直接通过赋值转为int型,long型,float型,double型
		//char型转int型如下:
		int t3=c3;
		System.out.println("char型字符为:3,转换为int型后的值为:"+t3);

		/********int型转其他大范围的*******/
		int t4=12345;
		
		//int型可直接通过赋值转为long型,float型,double型
		//int型转为long型如下:
		long lg4=t4;
		System.out.println("int型值为:12345,转换为long型后的值为:"+lg4);

		/********long型转其他大范围的*******/
		long lg5=123456;
		
		//long型可直接通过赋值转为float型,double型
		//long型转为float型如下:
		float f5=lg5;
		System.out.println("long型值为:123456,转换为float型后的值为:"+f5);

		/********float型转其他大范围的*******/
		 //浮点类型默认的格式为double型,因此不可以将12345.6直接赋值给float型
		//float f6=12345.6; ×
		float f6=(float)12345.6;  
		
		//float型可直接通过赋值转为double型
		double d6=f6;
		System.out.println("float型值为:12345.6,转换为double型后的值为:"+d6);			
	}

}

 结果如下:



 

3.大范围数据类型转换为小范围数据类型时

 (1)都需要用强制转换,强制转换的格式如下:

         数据类型 类型名=(数据类型)数据;

 (2)大范围的数据类型转换为char型时若值未超过char型的最大范围,则会输出相应的字符,

 若已经超出了char的最大范围,则不输出任何结果。

 (3)浮点型转整数类型时,若没有超出整型的数据范围,则只会丢失小数点部分的数据。

 若超出了整数类型的数据范围,则从“头”开始到对应位置即可,但数据已经不正确了。

 例:对byte型,数据范围为-128~127,

        -129已经超出了范围,它在byte中对应的数为127,-130则对应值126......以此类推

          128也超出了数据范围,它在byte中对应的数据为-128,129则对应值-127......以此类推。

 (4)整数数据类型之间的转换,若没有超出数据范围,则数据不产生影响。

   若超出了整数类型的数据范围,也会从“头”开始到对应位置即可,但数据也会不正确。

代码测试如下:

 

/**
 * 数据类型之间的装换,大范围转小范围
 * byte<short<char<int<long<float<double
 * @author zhouxiaoxiao
 * 
 */
public class maxTRANSmin {

	/**
	 * 程序主函数入口
	 */
	public static void main(String[] args) {

		/*******double型转成范围比它小的类型*********/
		double d1=123456.3456;

		//double型不能直接转为float型,必须通过强制转型
		//float f1=d1;   X
		float f1=(float)d1;   //float精度比double低,会有一些小数点丢失
		System.out.println("double型的数据值为:123456.3456,强制转为float型后的值:"+f1);
		
		//double转为整型时也必须用强制转型,若值未超过整型的最大范围,则只会丢失小数部分的值
		//long lg1=d1;  X
		long lg1=(long)d1;
		System.out.println("double型的数据值为:123456.3456,强制转为long型后的值:"+lg1);
		
		//double转为整型时,若超过了整数的最大范围,则从头开始数,输出对应的值
		//short s1=d1; X
		short s1=(short)d1;
		System.out.println("double型的数据值为:123456.3456,强制转为short型后的值:"+s1);
		
		//double转为char型时也必须用强制转型,若值未超过char型的最大范围,则会输出相应的字符
		//若已经超出了char的最大范围,则不输出任何结果
		//char c1=d1;  X
		char c1=(char)d1;    //d1已经超出了最大范围
		System.out.println("double型的数据值为:123456.3456,强制转为char型后的值:"+c1);
		
		//double型不能转为boolean型
		//boolean bool=d1;  X
                //boolean bool=(boolean)d1;  X
		
		/*******float转为范围比它小的类型*********/
		float f2=(float)1234.5;
		
		//float转为整型时也必须用强制转型,若值未超过整型的最大范围,则只会丢失小数部分的值
		//long lg2=f2;  X
		long lg2=(long)f2;
		System.out.println("float型的数据值为:1234.5,强制转为long型后的值:"+lg2);
		
		//float转为整型时,若超过了整数的最大范围,则从头开始数,输出对应的值
		//byte b2=f2;  X
		byte b2=(byte)f2;   
		System.out.println("float型的数据值为:1234.5,强制转为byte型后的值:"+b2);
		
		//double转为char型时也必须用强制转型,若值未超过char型的最大范围,则会输出相应的字符
		//若已经超出了char的最大范围,则不输出任何结果
		//char c2=f2;  X
		char c2=(char)f2;   //f2没有超出最大范围
		System.out.println("float型的数据值为:1234.5,强制转为char型后的值:"+c2);
		
		//double型不能转为boolean型
		//boolean bool=f2;  X
                //boolean bool=(boolean)f2; X
		
		/*******long转为范围比它小的类型********/
		long lg3=1234;
		
		//long型转成范围比它小的整型时必须用强制转换,若没有超过最大值,则数据不影响
		//int t3=lg3;  X
		int t3=(int)lg3;
		System.out.println("long型的数据值为:1234,强制转为int型后的值:"+t3);
		
		//long型转为范围比它小的整型时,若超过了整数的最大范围,则从头开始数,输出对应的值
		//byte b3=lg3;  X
		byte b3=(byte)lg3;
		System.out.println("long型的数据值为:1234,强制转为byte型后的值:"+b3);
		
		//long转为char型时也必须用强制转型,若值未超过char型的最大范围,则会输出相应的字符
		//若已经超出了char的最大范围,则不输出任何结果
		//char c3=lg3;  X
		char c3=(char)lg3;
		System.out.println("long型的数据值为:1234,强制转为char型后的值:"+c3);
		
		//long型不能转为boolean型
		//boolean bool=lg3;  X
                //boolean bool=(boolean)lg3; X
		
		/*******int转为范围比它小的类型********/
		int t4=123;
		
		//int型转成范围比它小的整型时必须用强制转换,若没有超过最大值,则数据不影响
		//若超过了整数的最大范围,则从头开始数,输出对应的值
		//byte b4=t4;  X
		byte b4=(byte)t4;   //123没有超出byte型的最大范围
		System.out.println("int型的数据值为:123,强制转为byte型后的值:"+b4);
		
		//int转为char型时也必须用强制转型,若值未超过char型的最大范围,则会输出相应的字符
		//若已经超出了char的最大范围,则不输出任何结果
		//char c4=lg3; X
		char c4=(char)t4;
		System.out.println("int型的数据值为:123,强制转为char型后的值:"+c4);
		
		//int型不能转为boolean型
		//boolean bool=t4; X
               //boolean bool=(boolean)t4;  X
		
		/*******char转为范围比它小的类型********/
                char c5='A';
                System.out.println(c5);
        
              //char型转整型时,若ASCII的值未超过整型的最大范围,则整型值直接为字符的ASCII值
                //若超过了,则从头开始数,输出对应的值
                //short s5=c5;   X
               short s5=(short)c5;
              System.out.println("char型的字符为:A,强制转为short型后的值:"+s5);
        
		//byte b5=c5;  X
		byte b5=(byte)c5;
		System.out.println("char型的字符为:A,强制转为byte型后的值:"+b5);
		
		//char型不能转为boolean型
		//boolean bool=c5;  X
               //boolean bool=(boolean)c5;   X
		
		/************short型转byte型*************/
		short s6=123;
		
		//byte b5=s6;  X
		byte b6=(byte)s6;
		System.out.println("short型的数据值为:123,强制转为byte型后的值:"+b6);
		
		//short型不能转为boolean型
		//boolean bool=s6;   X
               //boolean bool=(boolean)s6;   X
	}
}
 

 结果如下:



 

三.String类:Stringjava中是类,String类表示的是字符串。

       String 类提供处理 Unicode 代码点(即字符)和 Unicode 代码单元(即 char 值)的方法。

1.创建并出示化字符串的方法:

     (1)使用字符串常量直接初始化

     (2)使用构造方法创建并初始化

/**
 * 创建并初始化string对象
 * @author zhouxiaoxiao
 *
 */
public class st {

	/**
	 * 程序主函数入口
	 */
	public static void main(String[] args) {

		//方法一:使用字符串常量直接初始化
		String s1="dcddjcidjm";
		System.out.println("字符串常量直接初始化s1 :"+s1);
		//输出结果:字符串常量直接初始化s1 :dcddjcidjm
		
		//方法二:使用构造方法创建,然后再赋值
		String s2=new String();
		s2="jkdnvk";
		System.out.println("构造方法创建,然后再赋值s2 :"+s2);
		//输出结果:构造方法创建,然后再赋值s2 :jkdnvk
		
		//方法三:使用构造方法创建的同时初始化
		char [] ch={'a','p','p','l','e'};
		String s3=new String(ch);
		System.out.println("构造方法创建同时初始化s3 :"+s3);
		//输出结果:构造方法创建同时初始化s3 :apple
	}

}

 

2.String类中常用的方法:

  2.1获取指定索引处字符,Unicode 代码点(Unicode值)及Unicode 代码点数的方法

        public char charAt(int index);

        public int codePointAt(int index);

        public int codePointBefore(int index);

        public int codePointCount(int beginIndex,int endIndex);

  方法实现的代码及说明如下:

/**
 * 指定索引处字符的方法
 * @author zhouxiaoxiao
 *
 */
public class st {

	/**
	 * 程序主函数入口
	 */
	public static void main(String[] args) {

		//初始化字符串
		String s1="djdvdejkrkrhttmdd";

		/***String类中的有关指定索引处字符的有关方法*****/
		//返回指定索引处的char值
		char c1=s1.charAt(3);    //3表示索引值,索引值范围为:0~length-1
		System.out.println("字符串  "+s1+"在索引值为3位置的字符为:"+c1); 
		
		// 返回指定索引处的字符(Unicode 代码点)。
		int t1=s1.codePointAt(3);   //在索引值为3的字符为v,它对应的Unicode值为118
		System.out.println("t1="+t1); //输出结果为:t1=118
		
		//返回指定索引之前的字符(Unicode 代码点)。
		int t2=s1.codePointBefore(3);  //在索引值为3之前的字符为d,它对应的Unicode值为100
		System.out.println("t2:"+t2);   //输出结果为:t2=118
		
		//返回此 String 的指定文本范围中的 Unicode 代码点数。
		//文本范围为:beginIndex~endIndex-1
		int t3=s1.codePointCount(3, 5);  //3是开始的索引值,5是结束的索引值,则取定的范围只包含了3,4
		System.out.println("t3:"+t3);	//输出的结果为:t3=2
	}

}

 

   2.2比较两个字符串的方法:

        public int compareTo(String anotherString);

        public int compareToIgnoreCase(String str);

        public boolean equals(Object anObject);

        public boolean equalsIgnoreCase(String anotherString);

      方法的实现及说明如下代码:

/**
 * 比较两个字符串的方法
 * @author zhouxiaoxiao
 *
 */
public class st {

	/**
	 * 程序主函数入口
	 */
	public static void main(String[] args) {

		//初始化字符串
		String s1="dejkriivjri";
		String s2=new String("Dabcdjdhjhvd  ");
		String s3=new String("dejkr");
		String s4="DEJKRIIVJRI";

		//按字典顺序比较两个字符串
		int t4=s1.compareTo(s2);    //字符串之间不存在包含关系时,判断第一个不同的字符之间Unicode差值
		System.out.println("t4:"+t4);   //d的Unicode值为:100,D的为:68.  100-68=32, t4=32
		t4=s1.compareTo(s3);    //一个字符串是另一个字符串的前部分或整个部分时,为两个字符串的长度之差
		System.out.println("t4:"+t4);   //s3是s1的前面部分,两者长度相差6,所以t4=6
		 
		//按字典顺序比较两个字符串,不考虑大小写。
		int t5=s1.compareToIgnoreCase(s4);
		System.out.println("t5:"+t5);  //不考虑大小写,s1和s4相同,长度相差0,所以t5=0
		
		//将此字符串与指定的对象比较,考虑大小写。
		boolean bool5=s1.equals(s2);   //字符串相同则返回true不同则返回false
		System.out.println("bool5:"+bool5);  //结果为:true
		
		//将此 String 与另一个 String 比较,不考虑大小写。
		boolean bool6=s1.equalsIgnoreCase(s4);  //字符串相同(不区分大小写)则返回true不同则返回false
		System.out.println("bool6:"+bool6);   //结果为:false
	}
}

 

  • 大小: 27.2 KB
  • 大小: 14.3 KB
  • 大小: 30.4 KB
1
1
分享到:
评论

相关推荐

    C++大学教程

    1.9 Java、Internet与万维网--------------------------------------------7 1.10 其它高级语言------------------------------------------------------8 1.11 结构化编程-----------------------------------...

    V20-Java笔记整理-重要概念和常见陷阱梳理.docx

    - 对于基本数据类型参数,传递的是该值的副本;对于引用类型参数,传递的是对象引用的副本。 **4.11 理解静态static** - **静态属性**:类级别的属性,可以通过类名直接访问,而无需创建对象。 - **静态方法**:类...

    java全集.pdf JAVA全集

    Java支持多种数据类型,包括: - 基本类型:如`int`, `double`, `char`等。 - 引用类型:如`String`, `Array`, `Class`等。 **3.5 命名规则** - 类名首字母大写。 - 变量名和方法名首字母小写。 - 常量名全部大写...

    java学习笔记 初学者必读

    17.3.1. 在基本数据类型和封装类之间的自动转换 17-69 17.4. 类型安全的枚举 17-70 17.5. 静态引入 17-71 17.6. C风格的格式化输出 17-72 17.7. Building Strings(StringBuilder类) 17-73 17.8. 可变长的参数 17-73 ...

    java笔记 java笔记

    Java支持以下几种数据类型: - **基本类型**:如int、float、char等。 - **引用类型**:如类、数组等。 ##### 3.5 命名规则 - 类名首字母大写。 - 变量名首字母小写。 - 方法名首字母小写,采用驼峰命名法。 ####...

    Java入门学习笔记

    - Java为每种基本数据类型提供了对应的包装类,如Integer、Double等。 **7.11 内部类** - **7.11.1 内部类的分类** - 成员内部类 - 局部内部类 - 静态内部类 - 匿名内部类 - **7.11.2 成员内部类** - 定义在...

    JAVA核心技术

    - **基本数据类型**:如int、float、boolean等。 - **引用数据类型**:如类、接口、数组等。 ##### 3.5 命名规则 - 类名首字母大写。 - 变量名首字母小写。 - 常量全大写,单词之间用下划线分隔。 #### 第四部分:...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    CoreJava笔记.doc

    Java中有两大类数据类型:原始类型和引用类型。 - **原始类型**包括`int`、`double`、`char`等。 - **引用类型**包括类、数组和接口。 **3.5 命名规则** - 变量名和方法名首字母小写,后面每个单词首字母大写...

    esutil工具类

    对于单个文档,开发者可以提供JSON格式的数据以及对应的索引名和类型;批量插入则允许一次性处理大量数据,提高了性能。 ```java public void indexDocument(String index, String type, String id, Map&lt;String, ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    Java领域基础部分JavaSE笔记

    ##### 2.4 基本数据类型与String类型转换 - **数据类型转String**:使用`String.valueOf()`方法或`+`操作符连接。 - **String转数据类型**:使用相应包装类的`parseXXX()`方法,如:`Integer.parseInt("123")`。 ##...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用其他组件 2.6.3 static关键字 2.7 我们的第一个Java程序 2.8 注释和嵌入文档 ...

    疯狂JAVA讲义

    6.1 基本数据类型的包装类 167 6.2 处理对象 170 6.2.1 打印对象和toString方法 170 6.2.2 ==和equals比较运算符 172 6.3 类成员 175 6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 ...

Global site tag (gtag.js) - Google Analytics