首页 > 编程语言 >Java数据类型

Java数据类型

时间:2023-12-07 17:26:33浏览次数:54  
标签:编码 Java 字节 字符 数据类型 char 类型 ASCII

1.数据类型

每一种数据都定义了明确的数据类型,在内存中分配大小不同的内存空间(字节)

8大基本数据类型

  • 整数类型:存放整数
    • byte,1个字节
    • short,2个字节
    • int,4个字节(默认)
    • long,8个字节
  • 浮点类型(小数)
    • float,4个字节
    • double,8个字节(默认)
  • 字符型:char,2个字节
  • 布尔型:boolean,1个字节,存放true和false

引用数据类型

  • 类:class
  • 接口:interface
  • 数组:[]
  • 枚举:enum
  • 注解: @XXX
  • 字符串:String

2.整数类型

1 byte num1=18;
2 short num2=18;
3 int num3=18; //4个字节
4 long num4=18; //8个字节

 说明:

  • Java各整数类型又固定的范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性
  • Java的整型常量(字面量,具体数值)默认为int型,声明long类型常量需要在后面加上"l"或者“L”
  • bit:计算机中最小存储单位。
  • byte:计算机中基本存储单元1byte=8bit

3.浮点类型

 说明:

  • 关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位
  • 尾数部分可能丢失,造成精度损失(小数都是近似值)
  • 与整数类型类似,Java浮点类型也有固定的范围和字段长度,不受操作系统影响,float是4个字节,double是8个字节
  • Java的浮点型常量默认为double型,声明floar型常量,后面需要加“f”或者“F”
  • 浮点型常量有两种表示形式
    • 十进制数形式:5.12 ,512.0F,.512(必须有小数点)
    • 科学计数法形式:5.12e2【5.12*10的2次方】 5.12E-2 【5.12/10的二次】
  • 通常情况下,应该使用double类型,因为他比float更精确

4.字符类型

字符类型可以表示单个字符,字符类型是char,char是两个字节(可以存放汉字),多个字符我们使用字符串String

char c1='a';
char c2='\t';
char c3='中'
char c4=97;
char c5='a'+2

说明:

  • 字符常量是用单引号(' ')引起来的单个字符
  • java中还允许使用转义字符'\'来讲其后的字符转变为特殊字符型常量。如 '\n'表示换行符
  • 在Java中char的本质是一个整数,在输出时,是unicode码对应的字符
  • 可以直接给char赋值一个整数,然后输出时,会按照对应的unicode字符输出。如97对应字符a
  • char类型是可以进行运算的,相当于一个整数,因为它都对应有unicode码

4.2 字符编码表

ASCII编码表:一个字节表示,一共128个字符,实际上一个字节可以表示256(一个字节8位 就是2的8次方)个字符,只用了128个

Unicode编码表:固定大小的编码,使用两个字节来变色字符,字母和汉字同一都占用两个字节,这样浪费空间

utf-8编码表:大小可变的编码,字母使用1个字节,汉字使用3个字节

gbk编码表:可以变色汉字,而且范围广,字母使用1个字节,汉字使用2个字节

gb2312编码表: 可以表示汉字,gb2312<gbk

big5码:繁体中文

4.2.1 ASCII码

上世纪60年代,美国制定了一套字符编码(使用一个字节),对英语字符与二进制位之间的关系,做了统一规定。被称为ASCII码。

ASCII码一共规定了128个字符的编码,只占用了一个字节的后面7位,最前面的1位统一规定为0.

特别提示:一个字节可以表示256个字符,ASCII码只用例128个字符

缺点:不能表示所有字符

4.2.2 Unicode编码

好处:将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,使用Unicode没有乱码的问题

缺点:一个英文字母和一个汉字都占用2个字节,这对于存储空间来说是浪费

2的16次方是65536,所有最多编码是65536个字符

编码0-127的字符是与ASCII的编码一样。比如'a' 在ASCII码是0X61,在unicode码是0X0061,都对应97.因此unicode码兼容ASCII码

4.2.3 UTF-8编码

 UTF-8是在互联网上使用最广的一种Unicode的实现方式(改进型)

UTF-8是一种变长的编码方式。它可以使用1-6个字节表示一个符号,根据不同的符号而变化字节长度

使用大小可变的编码 字母占1个字节,汉字占3个字节

5.布尔类型:boolean

基本介绍

布尔类型数据只允许取值true和false,无null

布尔类型占用1个字节

布尔类型适用于逻辑运算

标签:编码,Java,字节,字符,数据类型,char,类型,ASCII
From: https://www.cnblogs.com/lgs-tech/p/17883432.html

相关文章

  • C 语言实现抽象数据类型(ADT)之链表
    C语言实现抽象数据类型(ADT)之链表1什么是链表?(懂跳)C语言本身自带了很多基本数据类型,每种基本数据类型的变量总是代表着某个数据,比如:我们通常用整型变量来计数,用浮点型变量来保存价格这样的数据……intcount;doubleprice;而有时候我们需要表示的数据很复杂,比如我们想要......
  • java打包好的jar包在Linux服务器上指定端口并后台运行命令
    前提条件:a.已经在Linux服务器上安装了java环境。b.切换到jar包所在的目录下。c.运行方式为:java-jar运行。举例说明:包名  运行端口test.jar  8080命令如下:java-jar-Dserver.port=8080test.jar&>test.out&1解释:1.表示将test.jar这个jar包运行在8080端口(前提是端口......
  • java中禁用科学计数法的处理
    importjava.text.DecimalFormat;publicclassDisableScientificNotationExample{publicstaticvoidmain(String[]args){doublenumber=123456789.123456789;//创建DecimalFormat对象,设置输出格式DecimalFormatdecimalFormat=newD......
  • java使用ftp连接linux处理文件
    1、Maven依赖<!--FTP使用包--><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.6</version></dependency>......
  • 《Java编程思想第四版》学习笔记45--关于图标
    //:Faces.java//IconbehaviorinJButtonspackagec13.swing;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassFacesextendsJPanel{staticIcon[]faces={newImageIcon("face0.gif"),......
  • Java 标准库实现常见加密解密
    一时兴起,好奇Java中常用的加解密是如何实现的,今天就常见的bas64编码解码、MD5、SHA256、HmacSHA256做个简单小结,希望对各位有用。环境:JDK:17以下内容基于JDK17的自带工具库实现,示例如下:packagecom.example.util;importjavax.crypto.Mac;importjavax.crypto.......
  • [JVM] Java Heap Dump 分析 [转载]
    0序缘起近期项目上我负责的微服务出现了难以排查的问题,目前怀疑是JVM线程方面的情况,但也需从heapdump方面进一步印证,故需深入了解heapdump文件内容的各项含义。本文主要转载了网友的观点,详见:参考文献1HeapDump分析1.1heapdump简介heapdump文件是一个二进制......
  • Java扩展赋值运算符,字符串连接符
    1.扩展赋值运算符  2.字符串连接符   ......
  • JavaSe(11) - 常用API(上)
    JavaSe(11)-常用API(上)P155Math基本数学计算的工具类,包含执行基本数学运算的方法,例如指数,对数,平方根,三角函数...方法名说明publicstaticintabs(inta)获取绝对值ceil(doublea)向上取整floor(doublea)向下取整round(floata)四舍五入......
  • Java 通过反射获取注解属性信息以及状态中字典
    一、创建存储对象importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;/***属性对象存储类*/publicclassMetadataField{/***key对应对象中间的属性*/privateStringkey;/***字......