Java 基本数据类型以及封装类

article/2025/10/10 19:08:43

本篇博客内容大部分是借鉴其他博客的,但是在此基础上博主本人修改以及添加了一些内容,也算属于原创,本篇博客仅供博主本人学习参考

Java基本类型共有八种,基本类型可以分为三类,
字符类型 char;

布尔类型 boolean;

数值类型 byte、short、int、long、float、double。

数值类型又可以分为

整数类型 byte、short、int、long

浮点数类型 float、double。
JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过无法直接对它们进行操作。

八种类型表示范围如下:
byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。

short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1(c++中为long long 或int_64)。

float:32位,数据范围在3.4e-45 ~ 1.4e38,直接赋值时必须在数字后加上f或F。

double:64位,数据范围在4.9e-324 ~ 1.8e308,赋值时可以加d或D也可以不加。

boolean:只有true和false两个取值,boolean值本质上与1/0不同(c/c++/相同),java语言单独为true和false开辟了一种新的数据。

char:16位,存储Unicode码,用单引号赋值。

Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。下表列出了Java中定义的简单类型、占用二进制位数及对应的封装器类。
在这里插入图片描述
**在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
**
基本类型的优势:数据存储相对简单,运算效率比较高
包装类的优势:有的容易,比如集合的元素必须是对象类型,满足了java一切皆是对象的思想,在使用集合时必须使用包装类

包装类的赋值方法是valueof但是从Java5.0(1.5)开始,JAVA虚拟机(Java Virtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类,但这并不意味着你可以通过基本类型调用它们的包装类才具有的方法。另外,所有基本类型(包括void)的包装类都使用了final修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法。
看一下valueof的源码了解缓存机制

public static Integer valueOf(int i) {assert IntegerCache.high>= 127;if (i >= IntegerCache.low&& i <= IntegerCache.high)return IntegerCache.cache[i+ (-IntegerCache.low)];return new Integer(i); 
}

各个包装类缓存值范围 :

booleantruefalse 
byte-128127 
char0127 
short-128127 
int-128127 
long-128127 
floatdouble没有缓存。
在缓存范围内的值相当于已经开辟好了一块空间,或者是已经new好了对象。

超过缓存区的值属于重新开辟了一个对象;

对象之间的比较需要用equal ,地址比较用“==“;

用途:
1.作为 和基本数据类型对应的类型存在,方便涉及到对象的操作。
2.包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
3.Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。
注意:
1.包装类的默认值为 null,包装类可以区分出未赋值和值为 0 的区别,而数据类型无法表达出未赋值的情况。

2.基础数据类型在传递参数时都是按值传递,封装类都是按引用传递。

注意:float、double两种类型的最小值与Float.MIN_VALUE、 Double.MIN_VALUE的值并不相同,实际上Float.MIN_VALUE和Double.MIN_VALUE分别指的是 float和double类型所能表示的最小正数。也就是说存在这样一种情况,0到±Float.MIN_VALUE之间的值float类型无法表示,0 到±Double.MIN_VALUE之间的值double类型无法表示。这并没有什么好奇怪的,因为这些范围内的数值超出了它们的精度范围。

Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少倍。比如3.14E3就是3.14×1000=3140,3.14E-3就是3.14/1000=0.00314

感谢以下文章的博主,本篇博客参考了他们的文章:
谁是谁的小确幸

时间的朋友


http://chatgpt.dhexx.cn/article/n8c3l5V4.shtml

相关文章

java 中封装类有哪些_java中封装类(一)

java中封装类共九个,分别是Boolean,Byte,Short,Integer,Long,Float,Double,Character,Void 其中Void对于使用者并无多大意义,也不可以构造任何对象,代码如下: packagejava.lang;public final classVoid {public static final Class TYPE = Class.getPrimitiveClass("vo…

Java包装类(封装类)详解

目录 包装类概念 包装类的继承 基本数据类型——>>包装类 的转换 默认值的区别 包装类——>>基本数据类型 的转换 xxValueof方法 toString方法 区别 自动装箱&#xff1a; 自动拆箱&#xff1a; 基本数据类型、包装类——>String类型 的转换 Sting类型…

Java类的封装

目录 1.什么是类的封装&#xff1f; 2.如何实现类的封装 1.private操作符 2.get与set 1.语法格式 2.封装演示 1.什么是类的封装&#xff1f; 隐藏对象的属性和实现细节&#xff0c;仅对外提供公共访问方式。 类的封装可以让使用者使用更加简单&#xff0c;数据也会更加安…

基本类型的封装类

目 录 1.基本数据类型的封装类 2.int类型的封装类是Integer!其中常用的构造方法有: 3.Integer封装类中常用的方法: 4.封装类的常用操作: 用于基本数据类型与字符串之间的转换. int类型转换为String类型 String类型转换为int类型 (需要注意的是该字符串的字面上…

ubuntu18.04安装虚拟显示器,不接显示器可远程桌面

Overview 主机配置启用远程控制安装软件和支持其它注意事项Reference 主机配置 系统&#xff1a;Ubuntu 18.04显卡&#xff1a;Intel 集成显卡 启用远程控制 注意&#xff0c;如果 teamviewer 是有登录账号&#xff0c;通过账号链接&#xff0c;那么有无上文的 Ubuntu 自带的远…

WIN10系统 Indirect Display 虚拟显示器之特殊应用

by fanxiushu 2020-05-20 转载或引用请注明原始作者。 有人询问我是否可以实现这样一种功能&#xff1a; 对windows输出的每一帧图像数据显示做一些特殊处理&#xff08;比如球形桌面&#xff0c;曲面化等特效&#xff09;&#xff0c;然后再显示到显示器上。 而且还不止一个人…

windows虚拟显示器开发(二)WDDM hook(USB转HDMI驱动、USB手写屏开发)

很久没有继续研究wddm hook了&#xff0c;最后一次研究还在3年前&#xff0c;不得不说虽然应用的少&#xff0c;但是wddm hook却是很有技术含量的一项技术&#xff0c;而且实用性很高&#xff0c;我们除了做虚拟显示器还能做很多的东西&#xff0c;比如高效的截屏&#xff08;因…

Ubuntu20.04 虚拟显示器配置,解决Ubuntu无显示器时nomachine/vnc/Teamviwer等远程终端桌面卡顿问题

&#x1f340;设置虚拟显示屏 安装xserver-xorg sudo apt-get install xserver-xorg-core-hwe-18.04 sudo apt-get install xserver-xorg-video-dummy增加xorg配置文件&#xff0c;通过指令vim /usr/share/X11/xorg.conf.d/xorg.conf&#xff0c;添加以下内容。 Section &qu…

X86工控机虚拟显示器设置(nomachine远程桌面)

前言 使用arm设备不需要设置虚拟显示器&#xff0c;可能已经设置过了。使用X86工控机需要设置虚拟显示器&#xff0c;这里介绍如何设置、如何取消&#xff0c;如何使用远程桌面。 nomachine 一、打开车载主控制器的命令行终端&#xff0c;安装虚拟显示器相关驱动软件。 su…

出现多个虚拟显示器(通用非即插即用监视器)处理办法

导致原因 安装docker软件时进行了一些设置&#xff0c;然后就出现这种情况了 本来想着吧这几个显示器卸载就好了&#xff0c;发现根本没用 然后处理办法如下 首先打开系统应用 打开相关设置里面的 程序和功能 继续 关闭虚拟机平台 ##重启就好了

如何在云电脑串流中实现多屏操作——WDDM虚拟显示器开发

文章目录 如何在云电脑串流中实现多屏操作——WDDM虚拟显示器开发1. 概述2. DxgkInitialize3. HOOK框架4. VIDPN5. 虚拟显示器6. 实现效果 如何在云电脑串流中实现多屏操作——WDDM虚拟显示器开发 “虚拟显示器”是一种新型的计算机图形显示端口技术&#xff0c;它可以将一台计…

ubuntu开机自启vnc虚拟显示器并使用向日葵远程连接

虚拟显示器 设置开机自动解锁 解锁后打开自动登录 1、预安装 依赖 sudo apt-get update sudo apt-get install xfce4 sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop sudo apt-get install vnc4server 初始化 在终…

RealVNC Server Ubuntu 20.04 无显示器连接 虚拟显示器

以前尝试过完全不接显示器&#xff0c;vnc连接设置总是不成功&#xff0c;这次很容易做成功了&#xff0c;记录一下。 以前记录的远程桌面使用心得&#xff1a; 远程桌面使用心得_捉不住的鼬鼠的博客-CSDN博客 RealVNC远程连接带显示器模式&#xff1a; Ubuntu18.04使用Rea…

【正版软件】Virtual Display Manager 虚拟显示器布局配置管理软件

前言 根据包括微软研究院在内的许多最新研究&#xff0c;多显示器系统以及更大的显示器可将用户工作效率提高 10% 至 50%。然而&#xff0c;多显示器采用的增长以及大屏幕显示器受到以下几个因素的影响&#xff1a; 购买额外硬件&#xff08;显示器和更新的视频板&#xff09…

Windows 10驱动开发入门(五):创建虚拟显示器 Indirect Display驱动开发

在开发或者办公中,越大的屏幕看起来就显示越舒服了,通常我们的做法是有两块屏幕,这样显示的内容就变多了,可以很容易提高办公的效率。 在设置中显示中,如果我们有两块屏幕,在显示器中自然的会出现两个,在其中可以对两块屏幕进行相应的设置。 在这个驱动中,我们要解决的…

linux usb 虚拟显示器,Linux KVM虚拟机挂载主机USB接口设备

查看USB设备信息 harveymeilinux-7zyd:~> lsusb Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root h…

Virtual Display Manager(windows虚拟显示器软件)官方中文版V3.3.2.44650 | Win7/win10虚拟显示器下载

Virtual Display Manager 是一款非常实用的Windows虚拟显示器软件&#xff0c;通过附加虚拟显示器的便利性来补充您现有的单显示器或多显示器系统&#xff0c;这些显示器可以使用现有硬件共享现有的物理屏幕&#xff0c;适用于任意数量的物理显示器&#xff0c;并且可针对每个物…

Ubuntu18.04虚拟显示器+远程桌面

需求 ubuntu主机开启远程桌面功能&#xff0c; 实现无显示器的情况下的远程访问。 主机环境 rogerubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.6 LTS Release: 18.04 Codename: bionic roge…

windows虚拟显示器开发(三)USB显示器

我们常用的显示器接口有HDMI、VGA等接口&#xff0c;这些接口是直接在显卡上的&#xff0c;当显示器插在显卡上&#xff0c;显卡就直接可以将显示信号输出到显示器了。 关于USB显示器跟HDMI之类的显示器有本质区别&#xff0c;我们需要实现的有两个&#xff1a; 在USB上插入一…

远程服务器虚拟显示器(Ubuntu 20.04 LTS)

远程服务器虚拟显示器&#xff08;Ubuntu 20.04 LTS&#xff09; 1. 准备工作2. 安装软件包3. 修改配置文件4. 卸载虚拟显示器5. 异常处理 1. 准备工作 安装 ssh sever 并开启&#xff0c;确保虚拟显示器配置失败后&#xff0c;无法正常显示&#xff0c;仍可以通过ssh连接至服…