基本类型介绍

目录

  • 基本类型介绍

    • JAVA 中标识符的命名原则
    • 变量类型
      • 1.常用变量的大小 (1 Bytes = 8 bits)
      • 2.分类
        • 局部变量
        • 成员变量
        • 静态变量
    • 常量(constant)
    • 数据类型
      • 基本数据类型
      • 引用数据类型 (4B)
        • 数值型
        • 浮点型
        • 字符型 char : 2B
        • 布尔型(boolean) (1bit)
    • 注意:

基本类型介绍

JAVA 中标识符的命名原则

  • 可以使用 " _ ", " $ " 开头,其他字符一律不行;
  • 不可以使用数字作为开头;
  • JAVA 使用Unicode字符集,所以可以使用汉字来命名;但是我们人为不允许。

变量类型

1.常用变量的大小 (1 Bytes = 8 bits)

  • double: 8 Bytes
  • long: 8 Bytes
  • int: 4 Bytes

2.分类

局部变量

  • 方法或语句块内部定义的变量。
  • 生命周期从生命位置开始到方法或语句块执行完毕为止。语句块是用 {} 包含起来的代码块。

成员变量

  • 方法外部、类的内部定义的变量
  • 生命周期伴随对象始终。
  • 如果不自行初始化,就按照规则自动初始化。如:
    • int -- 0;
    • double -- 0.0
    • char -- ‘\u0000‘
    • boolean -- ‘false‘

静态变量

  • 使用 static 定义。又称 类变量 (static variable)
  • 从属于类,生命周期伴随类的始终--从类加载到卸载;
  • 定义类变量是在整个类中定义的,即:在主函数外部定义,这样在同一个类中其他函数也可以使用这个变量;
  • 格式:public static final int STATICVARS = 4;

常量(constant)

  • 一旦初始化就不能再改变;习惯上,常量名使用全大写
  • 我们主要是用关键字 final 来定义常量;
  • const 是java的保留关键字,目前并没有被使用;
  • 如果一个常量声明为public,那么其他类方法也可以使用这个常量;
  • 常量分为字面常量和符号常量
    • 字面常量: 1, 2, 3, ‘a‘, true, "HelloWorld"
    • 符号常量: 使用 final 修饰的;

数据类型

数据类型分为基本数据类型引用数据类型

基本数据类型

  • 数值型
  • 浮点型
  • 字符型
  • 布尔型

引用数据类型 (4B)

  • 类(class)
  • 接口(interface)
  • 数组

数值型

也就是 整型

  • 数据大小

    • byte : 1B
    • short: 2B
    • int : 4B
    • long : 8B
  • 表示其他进制数
    • 十进制整数;如: 99, -15
    • 八进制整数;要求以 0 开头;如:015
    • 十六进制;要求以 0x 或 0X 开头。如:0x15
    • 二进制数;要求以0b0B开头。如:0b01110101

浮点型

  • 数据大小

    • float : 4B 单精度,尾数精确到7位有效数字
    • double: 8B 双精度,精度是 float 的两倍
  • 科学计数法
    • 314e2: 314 x 10^2 = 31400
    • 314e-2: 314 x 10^(-2) = 3.14
    • 以此类推即可

字符型 char : 2B

char 型使用的是 unicode 字符集

  • 表示方法

    • 单引号法:如:char a = ‘A‘
    • 十六进制数值表示方法:如:char a = ‘\u0061‘ 代表字符 a ;
    • 使用 \u0000 -> \uffff 来表示除了 unicode 之外的编码;如 \u2122 表示注册符号 ? ; \u01C0 表示 π;
  • char 型字符和值的互相转换
    • 这也就意味着 char 型数据也可以用于数值比较;
char a = ‘a‘;
System.out.println(a);
// 两种类型转换的方法            System.out.println(0+a);            System.out.println((int)a);

// 输出
a
97
97
  • 转义字符
转义字符 含义 unicode值
\b 退格 \u0008
\n 换行 \u000a
\r 回车 \u000d
\t 制表符 \u0009
" 双引号 \u0022
单引号 \u0027
\ 反斜杠 \u005c
  • 字符类型转化
System.out.println(‘a‘ + ‘b‘)
System.out.println("" + ‘a‘ + ‘b‘);

// 返回
195
ab

布尔型(boolean) (1bit)

只有两个值:true false; 写代码时以下写法要注意:

boolean flag = true;
if (flag == true) {   //我们不使用这种写法
    System.out.println("true");
}

//标准写法
if (flag) {
    System.out.println("true");
    }

注意:

  1. 定义 long 型数据,需要在后面加 " L " 或 " l " 表示为 Long 型常量

这是因为 java 语言中的整形常数默认为 int 型,所以声明 long 型常量在后面加上 " L ";

如:long temp = 9876543210L; 这个数据显然超过了 int 型的范围(约21亿),这是就需要加上 " L ",否则会出现编译错误;

  1. 定义 float 型数据,需要在后面加 " F " 或 " f " 表示为 float 型常量

这是因为 java 语言中的浮点形常数默认为 double 型,所以声明 double 型常量在后面加上 " F ";

如:float temp = 3.14F; 如果没有这个 F 就会出现编译错误。

  1. 浮点型数据不能用于比较!

浮点数不适合在不允许舍入误差的金融计算领域;

如果需要进行不产生摄入误差的精确数字计算,需要使用 java.math类下的 BigDecimalBigInteger

BigInteger 实现了任意精度的整数运算;

BigDecimal 实现了任意精度的浮点运算。

  1. 使用 Double.isNaN(x) 来检查 x 是否为数值;
import java.math.BigDecimal;
/**
    * 浮点数的相关操作
    * Author: Eric Pan
    * Date: 2019.7.18
*/
public class DataType {
    /**
    * 浮点数是不能用于比较的;
    * 每次得到的结果可能不同;
    */
    public static void floatCharacter() {
        float d1 = 0.1f;
        double d2 = 1.0/10;
        float d3 = 423432423f;
        float d4 = d1 + 1;

        System.out.printf("d1和d2的比较结果是 %s\n", d1 == d2);
        System.out.printf("d3和d4的比较结果是 %s\n", d3 == d4);
    }

    /**
    * 使用 BigDecimal 来比较浮点数
    */
    public static void floatComparison() {
        BigDecimal bdDecimal = BigDecimal.valueOf(1.0);

        // 使用 BigDecimal 方法减5次0.1;
        for (int i=0; i<5; i++)
            bdDecimal = bdDecimal.subtract(BigDecimal.valueOf(0.1));

        System.out.println(bdDecimal);
        System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);

        // 比较要使用 .equals() 方法
        BigDecimal bd1 = BigDecimal.valueOf(0.1);
        BigDecimal bd2 = BigDecimal.valueOf(1.0/10);
        System.out.println(bd1.equals(bd2));
    }

    public static void main (String[] args) {
        floatCharacter();
        floatComparison();
    }
}

// 返回
d1和d2的比较结果是 false
d3和d4的比较结果是 false
0.5
0.5000000000000001
true

原文地址:https://www.cnblogs.com/rongyupan/p/12670448.html

时间: 2024-07-31 02:55:55

基本类型介绍的相关文章

nginx虚拟主机概念和类型介绍

nginx虚拟主机配置实战 1,虚拟主机概念和类型介绍 所谓虚拟主机,在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问. 这个这个独立的站点在配置里是由一定格式的标签段标记,对于apache软件来说,一个虚拟主机的标签段通畅被包含在<VirtualHost></VirtualHost>内,而nginx软件则使用一个server{}标签来标示一个虚拟主机,一个web服务里可以有多个虚拟主机主

jquery mobile常用的data-role类型介绍

转自原文 jquery mobile常用的data-role类型介绍 data-role参数表: page        页面容器,其内部的mobile元素将会继承这个容器上所设置的属性 header     页面标题容器,这个容器内部可以包含文字.返回按钮.功能按钮等元素 footer       页面页脚容器,这个容器内部也可以包含文字.返回按钮.功能按钮等元素 content     页面内容容器,这是一个很宽容的容器,内部可以包含标准的html元素和jQueryMobile元素 cont

&lt;28&gt;【了解】10-枚举类型介绍及定义+【掌握】11-枚举变量变量定义和使用+【掌握】13-typedef定义新的类型+【掌握】15-宏的概念及无参宏定义方法+【掌握】16-有参宏定义和使用方法+【掌握】17-应用:使用有参宏求最大值+【掌握】18-typedef和#define的区别

[了解]10-枚举类型介绍及定义 枚举类型: C语言提供了一个种类型,这种类型的变量的取值被限定在一定的范围之内了 枚举类型的定义: enum 枚举类型名{ 枚举值1,枚举值2,.... }; 举例: 定义一个变量,保存一周的第几天 enum weekday{ zhouyi,zhouer,zhousan,zhousi,zhouwu ,zhouliu,zhouri }; 定义iPhone手机的颜色 关于枚举类型元素的命名习惯 enum iColor{kIcolorWhite,kIcolorBlac

【转】NHibernate主键类型介绍

转自:http://blog.163.com/wzx_dd/blog/static/1942850722012828934553/ 最近整合了一下框架,用SSH搭建了一个框架,但是在整合好之后,启动tomcat的时候老是报这个错误,上网搜集了一下并向同事问了问,终于知道了错误原因: 数据库不支持自动递增主键(oracle就不支持)所以你的key generation需要从新设置 通过上网搜集,整理了一下关于主键自增列的知识,以供以后学习使用: 1) Assigned 主键由外部程序负责生成,无需

SSRS 2012 图表类型 -- 介绍

"一图胜千言",数字管理的方式是希望通过科学化的衡量来作为企业的决策支持基础,但是当企业的规模日渐增加,业务日渐复杂,每天所产生的数据如排山倒海的涌入.如果死守着传统数据解读的流程,恐怕没多久数据就变成像垃圾一样的"公害"了.尤其决策人员大多公务繁忙,"太多的数据等于没有数据",成山的数字往往难以引起分析者解读的欲望,导致忽略带过,反而造成这些数字从此束之高阁而无人问津了. 根据视觉传播理论研究讨论指出,图形的视觉冲击力笔文字高出85%,因此,如

Redis-Sp:Redis支持的5大类型介绍

ylbtech-Redis-Sp:Redis支持的5大类型介绍 1.返回顶部 1. 1.String存储字符串,不支持分页排序1)string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value.2)string 类型是二进制安全的.意思是 redis 的 string 可以包含任何数据.比如jpg图片或者序列化的对象.3)string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储512MB.2.Hash

Go语言学习(四)常用类型介绍

1.布尔类型 var v1 bool v1 = true; v2 := (1==2) // v2也会被推导为bool类型 2.整型 类 型 长度(字节) 值 范 围 int8 1 ? 128 ~ 127 uint8(即byte)1 0 ~ 255 int16 2 ? 32 768 ~ 32 767 uint16 2 0 ~ 65 535 int32 4 ? 2 147 483 648 ~ 2 147 483 647 uint32 4 0 ~ 4 294 967 295 int64 8 ? 9 2

Linux切换目录、查看目录下的文件、文件类型介绍和查看文件的元数据信息

本篇博客介绍几个Linux的基础命令:写的如有不足,还望读者不吝赐教! 切换目录 cd(ChangeDirectory) 切换工作目录 语法:cd  [要切换的目录] cd:进入用户的宿主目录(回家) cd  ~:进入用户的家目录(和cd作用一样) cd  -:在上一次执行 cd 命令的目录和当前目录来回切换 cd..:切换当前目录的上一级目录 cd  ../.. :返回上两级的工作目录 cd  /etc:切换到/etc目录下 选项: -P:如果要切换的目录是个软链接,则切换到软链接指向的目标目

硬盘接口类型介绍

IDE IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器.把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容.对用户而言,硬盘安装起来也更为方便.IDE这一接口技术从诞生至今就一直在不断发展,性能也不断的提高,其拥有的价格低廉.兼容性强的特点,为其造就了