CreateTime--2017年12月6日10:03:53

Author:Marydon

一、java数据类型之基本数据类型

  (二)八种基本数据类型的特征

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject; /**
* 八种基本数据类型的特征
* @author Marydon
* @createTime 2017年12月1日下午5:14:37
* @description 初始值、取值范围、按容量大小排序、对应的封装类
* @Email:Marydon20170307@163.com
* @version:1.0.0
*/
public class BaseDataTypeCharacteristic {
// 为什么要声明static属性?因为main方法(静态方法)调用类的变量(成员变量),则被调用的变量也必须是静态的
// 布尔类型
static boolean bl;
// 字符型
static char c;
// 整型
static byte b;
static short s;
static int in;
static long l;
// 浮点型
static float f;
static double d; private static JSONObject byteObject = new JSONObject();
private static JSONObject shortObject = new JSONObject();
private static JSONObject charObject = new JSONObject();
private static JSONObject intObject = new JSONObject();
private static JSONObject longObject = new JSONObject();
private static JSONObject floatObject = new JSONObject();
private static JSONObject doubleObject = new JSONObject();
// 数据类型数组
private static JSONArray dataTypeArray = new JSONArray();
static List<BigDecimal> maxValList = new ArrayList<BigDecimal>();
static List<String> maxValType = new ArrayList<String>(); public static void main(String[] args) {
// 1.初始化验证
initValue();
// 2.取值范围验证
baseTypeRange();
// 3.将基本数据类型对象添加到json数组中
addDataToArray();
// 4.输出八种基本数据类型的特征并往maxValList、maxValType集合中填充内容
printCharacters();
// 5.排序
capacitySortByAsc(); } /**
* 按容量大小升序排列
*/
static void capacitySortByAsc() {
BigDecimal bg1 = null;
BigDecimal bg2 = null;
int compareResult = 0;
String str1 = "";
String str2 = "";
// 冒泡排序
for (int i = 0; i < (maxValList.size() - 1); i++) {// 最后一个也不再需要与其它数比较,因为它之前的数都已经和它做过比较了,所以i<(maxValList.size() - 1)
// 如果-1无法理解,自己可以在此处打个断点进行调试;当然,不减1也不影响最终结果
for (int j = (i + 1); j < maxValList.size(); j++) {// 每一个元素都不再需要与自己、自己前面的元素比较,所以j的最小值为i+1;
// 每个元素都需要自己身后的元素[自己身后第一个元素,最后一个元素]进行比较,所以j<maxValList.size()
bg1 = maxValList.get(i);
bg2 = maxValList.get(j);
compareResult = bg1.compareTo(bg2);
// bg1=bg2-->返回0;bg1>bg2-->返回1;bg1<bg2-->返回-1
if (1 == compareResult) {// 较大值放在后面
maxValList.set(i, bg2);// 错误用法:调用add方法
maxValList.set(j, bg1);
str1 = maxValType.get(i);
str2 = maxValType.get(j);
maxValType.set(i, str2);
maxValType.set(j, str1);
} }
} StringBuffer sb = new StringBuffer("八种基本数据类型按容量大小升序排列结果为:");
// 大小比较
for (int i = 0; i < maxValList.size(); i++) {
if (i == (maxValList.size() - 1)) {// 最后一次拼接去掉"<"
sb.append(maxValType.get(i));
} else {
sb.append(maxValType.get(i)).append("<");
}
} System.out.println(sb.toString());
} /**
* 输出八种基本数据类型的特征
*/
static void printCharacters() {
// 迭代输出
for (Iterator iterator = dataTypeArray.iterator(); iterator.hasNext();) {
JSONObject object = (JSONObject) iterator.next();
System.out.println(
"java八种基本数据类型之\"" + object.get("baseType") + "\"在作为类的成员变量时,其初始值为:" + object.get("initVal")
+ ";取值范围为:[" + object.get("minVal") + "," + object.get("maxVal") + "];对应的封装类为:"
+ object.get("packageType"));
// 说明:char类型的取值范围无法打印出来,通过转化测试取得结果为[0,65535]
if ("char".equals(object.get("baseType"))) {
object.put("minVal", 0);
object.put("maxVal", 65535);
}
// 将八种基本数据类型的最大值添加到maxValList集合中
maxValList.add(new BigDecimal(String.valueOf(object.get("maxVal"))));
// 将八种基本数据类型添加到maxValType集合中
maxValType.add((String)object.get("baseType"));
}
} /**
* 将八种基本数据类型对应的JSONObject添加到JSONArray中
*/
static void addDataToArray() {
dataTypeArray.add(doubleObject);
dataTypeArray.add(floatObject);
dataTypeArray.add(longObject);
dataTypeArray.add(intObject);
dataTypeArray.add(charObject);
dataTypeArray.add(shortObject);
dataTypeArray.add(byteObject);
} /**
* 八种基本数据类型作为成员变量时的初始值
*/
static void initValue() {
// 数据类型
String baseDateType = "";
// 默认值
Object defaultVal = "";
for (int i = 1; i <= 8; i++) {
for (int j = i; j <= i; j++) {
switch (j) {
case 1:
baseDateType = "boolean";
defaultVal = bl;// false
break;
case 2:
baseDateType = "char";
defaultVal = c;// ""
charObject.put("initVal", c);
break;
case 3:
baseDateType = "byte";
defaultVal = b;//
byteObject.put("initVal", b);
break;
case 4:
baseDateType = "short";
defaultVal = s;//
shortObject.put("initVal", s);
break;
case 5:
baseDateType = "int";
defaultVal = in;//
intObject.put("initVal", in);
break;
case 6:
baseDateType = "long";
defaultVal = l;//
longObject.put("initVal", l);
break;
case 7:
baseDateType = "float";
defaultVal = f;// 0.0
floatObject.put("initVal", f);
break;
case 8:
baseDateType = "double";
defaultVal = d;// 0.0
doubleObject.put("initVal", d);
break;
default:
break;
}
}
System.out.println("java八种基本数据类型之" + baseDateType + "在作为类的成员变量时,其初始值为:" + defaultVal);
} } /**
* 八种基本数据类型作为局部变量时,是否有初始值测试
*/
void localVar() {
// 局部变量只声明,未赋值
boolean bl2;
char c2;
byte b2;
short s2;
int in2;
long l2;
float f2;
double d2;
// 编译报错:局部变量没有初始值,要想调用必须先初始化
System.out.println(bl2);
System.out.println(c2);
System.out.println(b2);
System.out.println(s2);
System.out.println(in2);
System.out.println(l2);
System.out.println(f2);
System.out.println(d2); } /**
* 基本数据类型的最大值与最小值
*/
static void baseTypeRange() {
// 7种基本数据类型
String [] baseType = {"byte","short","char","int","long","float","double"};
// 7种封装数据类型
String [] packageType = {"Byte","Short","Character","Integer","Long","Float","Double"};
// 最小值
String minValue = "";
// 最大值
String maxValue = ""; for (int i = 0; i < baseType.length; i++) {
int j;
// 将j声明在外面的原因是:该层for循还体外可以共享变量j
for (j = i;j <= i;j++) {// int j = i;
switch (j) {
case 0:
minValue = String.valueOf(Byte.MIN_VALUE);
maxValue = String.valueOf(Byte.MAX_VALUE);
byteObject.put("minVal", minValue);
byteObject.put("maxVal", maxValue);
byteObject.put("baseType", baseType[j]);
byteObject.put("packageType", packageType[j]);
break;
case 1:
minValue = String.valueOf(Short.MIN_VALUE);
maxValue = String.valueOf(Short.MAX_VALUE);
shortObject.put("minVal", minValue);
shortObject.put("maxVal", maxValue);
shortObject.put("baseType", baseType[j]);
shortObject.put("packageType", packageType[j]);
break;
case 2:
minValue = String.valueOf(Character.MIN_VALUE);
maxValue = String.valueOf(Character.MAX_VALUE);
charObject.put("minVal", minValue);
charObject.put("maxVal", maxValue);
charObject.put("baseType", baseType[j]);
charObject.put("packageType", packageType[j]);
break;
case 3:
minValue = String.valueOf(Integer.MIN_VALUE);
maxValue = String.valueOf(Integer.MAX_VALUE);
intObject.put("minVal", minValue);
intObject.put("maxVal", maxValue);
intObject.put("baseType", baseType[j]);
intObject.put("packageType", packageType[j]);
break;
case 4:
minValue = String.valueOf(Long.MIN_VALUE);
maxValue = String.valueOf(Long.MAX_VALUE);
longObject.put("minVal", minValue);
longObject.put("maxVal", maxValue);
longObject.put("baseType", baseType[j]);
longObject.put("packageType", packageType[j]);
break;
case 5:
minValue = String.valueOf(Float.MIN_VALUE);
maxValue = String.valueOf(Float.MAX_VALUE);
floatObject.put("minVal", minValue);
floatObject.put("maxVal", maxValue);
floatObject.put("baseType", baseType[j]);
floatObject.put("packageType", packageType[j]);
break;
case 6:
minValue = String.valueOf(Double.MIN_VALUE);
maxValue = String.valueOf(Double.MAX_VALUE);
doubleObject.put("minVal", minValue);
doubleObject.put("maxVal", maxValue);
doubleObject.put("baseType", baseType[j]);
doubleObject.put("packageType", packageType[j]);
break;
default:
break;
}
}
// 为什么j-1?因为在j++在跳出for循环这个动作之前完成
System.out.println("java八种基本数据类型之" + baseType[j-1] + "的作用区间为:[" + minValue + "," + maxValue + "]");
} } }

  效果展示: 

  文字展示:

// java八种基本数据类型之"double"在作为类的成员变量时,其初始值为:0.0;取值范围为:[4.9E-324,1.7976931348623157E308];对应的封装类为:Double
// java八种基本数据类型之"float"在作为类的成员变量时,其初始值为:0.0;取值范围为:[1.4E-45,3.4028235E38];对应的封装类为:Float
// java八种基本数据类型之"long"在作为类的成员变量时,其初始值为:0;取值范围为:[-9223372036854775808,9223372036854775807];对应的封装类为:Long
// java八种基本数据类型之"int"在作为类的成员变量时,其初始值为:0;取值范围为:[-2147483648,2147483647];对应的封装类为:Integer
// java八种基本数据类型之"char"在作为类的成员变量时,其初始值为:'';取值范围为:['','和汉字的口字很相似,无法打印出来'];转换成数字后为:[0,65535];对应的封装类为:Character
// java八种基本数据类型之"short"在作为类的成员变量时,其初始值为:0;取值范围为:[-32768,32767];对应的封装类为:Short
// java八种基本数据类型之"byte"在作为类的成员变量时,其初始值为:0;取值范围为:[-128,127];对应的封装类为:Byte
// 八种基本数据类型按容量大小升序排列结果为:byte<short<char<int<long<float<double 
 

java 八种基本数据类型之初始值、取值范围、对应的封装类的更多相关文章

  1. java 八种基本数据类型之与对应的封装类之间的相互转化

      迁移时间--2017年5月26日17:47:37 Author:Marydon 一.java数据类型之基本数据类型 UpdateTime--2017年1月9日17:31:14 (三)格式转换 1. ...

  2. Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法?

    参考:http://blog.csdn.net/mazhimazh/article/details/16799925 1. Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法? 原始类型 ...

  3. 【转】Java八种基本数据类型的比较及其相互转化

    java中有且仅有八种基本数据类型,记住就行,共分为四类: 第一类:整型-->byte     short      int     long 第二类:浮点-->float    doub ...

  4. Java——八种基本数据类型(常用类)

    装箱和拆箱 装箱:基本数据类型转为包装类 拆箱:包装类转为基本数据类型 jdk1.5(即jdk5.0)之后的版本都提供了自动装箱和自动拆箱功能 基本数据类型的包装类 举两个例子,看一下 public ...

  5. java 八种基本数据类型

  6. JAVA四类八种基本数据类型

    boolean类型 Boolean在内存中占用一个字节. 当java编译器把java源代码编译为字节码时,会用int或byte来表示boolean.在java虚拟机中,用整数零来表示false,用任意 ...

  7. Java的八种基本数据类型及其包装类

    Java有八种基本数据类型,所谓基本类型就是说存储时仅存在栈中,那么与之相对就是引用类型,引用类型既存在栈里又存在堆里,栈内存放堆内地址. 八种基本类型分别为byte short int long f ...

  8. Java学习笔记四:Java的八种基本数据类型

    Java的八种基本数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. Java基本类型共有八种,基本类型可以分为三类,字符类型char,布 ...

  9. Java常用类之【八种基本数据类型】

    一.装箱和拆箱 装箱:将基本数据类型包装为对应的包装类对象 拆箱:将包装类对象转换成对应的基本数据类型 JDK5.0中为基本数据类型提供了自动装箱(boxing).拆箱(unboxing)功能 二.八 ...

随机推荐

  1. Java比较两个Date日期的大小

    import java.util.*; import java.text.ParseException; import java.text.SimpleDateFormat; class Test{ ...

  2. [Android Pro] ESP和EBP 栈顶指针和栈底指针

    cp:  http://blog.csdn.net/hutao1101175783/article/details/40128587 (1)ESP:栈指针寄存器(extended stack poin ...

  3. python的日志模块:logging;django的日志系统;django日志输出时间修改

    Django的log,主要是复用Python标准库中的logging模块,在settings.py中进行配置 源代码 1.__init__.py包含以下类: StreamHandler Formatt ...

  4. System.DllNotFoundException:“无法加载 DLL“librfc32.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。”

    System.DllNotFoundException:“无法加载 DLL“librfc32.dll”: 找不到指定的模块. (异常来自 HRESULT:0x8007007E).” 1.下载文件lib ...

  5. sql server获取标识,获取最后ID IDENT_CURRENT、IDENTITY、SCOPE_IDENTITY区别

    概念解释 IDENT_CURRENT returns the last identity value generated for a specific table in any session and ...

  6. 第一章 Typescript 介绍

    Typescript 介绍 一.Typescript 简介 Typescript 是微软开发的 Javascript 的超集,Typescript 兼容 Javascript,可以载入 Javascr ...

  7. 热修复 AndFix 阿里 apkpatch MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. Eclipse添加tomcat服务器以及解决404的问题

    Eclipse JavaEE IDE添加tomcat服务器 1. 先做准备工作,首先下载工具 点击下方链接下载     1) Tomcat v7.0     2) Eclipse IDE for Ja ...

  9. MySQL配置版下载安装、配置与使用(win7x64)

    http://jingyan.baidu.com/article/597035521d5de28fc00740e6.html

  10. @class指令的使用

    @class指令能够减少编译时间,告诉编译器“相信我,你最终能了解这个名称的类”,可以减少不得不导入的头文件的数量. sample如下: #import <Foundation/Foundati ...