java基础教程(2)-Java基本数据类型

一个Java程序的基本结构:

public class DemoTest {public static void main(String[] args) {// 打印一句话System.out.println("hello...");}
}

以上程序功能是实现打印一句话到控制台输出;这是一个基本的java结构,所有java程序都是这种结构;

以上基本结构主要包含如下信息:

  • public 是访问修饰符,用于控制程序的其他部分对块代码的访问级别; 其他修饰符还有private protected default等
  • class关键字表明java程序中的全部内容包含在类中;java程序的所有内容必须放到类中;类是一个基本的构建块;类是一个程序的基本单位;
  • class后面跟着的是类名:类名必须以英文字母开头,后接字母,数字和下划线的组合;习惯以大写字母开头;类名不能是java的保留字;
  • 源代码的文件名称必须与公共的类名相同;并以java作为扩展名;java对大小写是敏感的;
  • 一个类中的所有内容都包含在{}中,在{}内部可以定义多个方法;方法中的语句也是包含在{}中;
  • 方法定义了一组执行语句,方法内部的代码将会被依次顺序执行。上面代码中的方法名是main,返回值是void,表示这个方法没有返回任何值;
  • Java入口程序规定的方法必须是静态方法,用static修饰,方法名必须为 main ,括号内的参数必须是String数组。
  • 以上代码中,main方法内部包含一个注释,和一个执行语句;

在Java程序中,注释是一种给人阅读的文本,不是程序的一部分,所以编译器会自动忽略注释; Java有3种注释,第一种是单行注释,以双斜线开头,直到这一行的结尾结束:而多行注释以 / 星号开头,以 / 结束,可以有多行:还有一种特殊的多行注释,以 /* 开头,以 / 结束,如果有多行,每行通常以星号开头:这种特殊的多行注释需要写在类和方法的定义处,可以用于自动创建文档。
其中执行语句实现输出一个文本到控制台; Java的每一行执行语句必须以分号结束:

  • 如果没有IDE而去执行java程序,需要手动编译后执行

使用javac DemoTest.java 会编译出一个class文件
使用java DemoTest 执行程序,输出文本;

  • 有IDE的话,点运行按钮;IDE会自动执行以上操作;

Java中的基本数据类型:

Java是一种强类型语言;

Java中一共有8中基本数据类型;

基本数据类型是CPU可以直接进行运算的类型。

8种数据类型分别是:

四种整数类型 btye short int long
两种浮点类型: float double
一种字符类型: char
一种布尔类型: boolean

要了解Java定义的这些基本数据类型的区别,需要简单了解一下计算机内存的基本结构。

计算机内存的最小存储单元是字节(byte),一个字节就是一个8位二进制数,即8个bit。它的二进制表示范围从 00000000 ~ 11111111 ,换算成十进制是0~255,换算成十六进制是 00 ~ ff 。

整型

Java 中的四种整型,表示的数字范围也是从小到大的,之所以表示范围不同主要和他们存储数据时所占的字节数有关。

Java只定义了带符号的整型,因此,最高位的bit表示符号位(0表示正数,1表示负数)
整型的这几个类型中:

  • byte:byte 用 1 个字节来存储,范围为-128(-2^7) 到 127(2^7-1),
  • short:short 用 2 个字节存储,范围为-32,768 (-2^15)到 32,767 (2^15-1)
  • int:int 用 4 个字节存储,范围为-2,147,483,648 (-2^31)到 2,147,483,647 (2^31-1)
  • long:long 用 8 个字节存储,范围为-9,223,372,036,854,775,808 (-2^63)
    到 9,223,372,036, 854,775,807 (2^63-1),
浮点型

在计算机科学中,浮点是一种对于实数的近似值数值表现法,由一个有效数字(即尾数)加上幂数来表示,通常是乘以某个基数的整数次指数得到。以这种表示法表示的数值,称为浮点数(floating-point number)。

浮点类型的数就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的,所以称为浮点数。

浮点型又分为单精度浮点型和双精度浮点型:

  • float是单精度浮点数,在计算机存储器中占用 4 个字节(32 bits);
  • double双精度浮点数,使用 64 位(8 字节) 来存储一个浮点数;

为什么在java中int类型和float类型都是4个字节,但是float类型的数值范围却大于int的数值范围

其原因就是:int类型和float组成结构不同:
int类型:第一位是符号位代表正负,剩下的31位表示数值位。float类型:第一位是符号位代表正负,余下的是八位指数位和23位底数位(底数是无符号的)。
int:此类型是各个位之间表示的值直接相加,所以表示的值范围是-2^31 ~ 2^31 - 1。
float:此类型是8位指数23位底数,这么来说可以表示最大的值就是223127,最小值就是-223127。所以范围就是-223127 ~ 223127。
在Java的不同数据类型之间虽然可能是占用相同的字节,但是不同数据类型对于位数的组合不同,数值范围也会有很大的区别。

字符类型char

字符类型 char 表示一个字符。使用2个字节(16位)存储;

Java的 char 类型除了可表示标准的ASCII外,还可以表示一个Unicode字符: char 类型使用单引号 ’ ,且仅有一个字符;

布尔值类型boolean

布尔类型 boolean 只有 true 和 false 两个值,布尔类型总是关系运算的计算结果;
Java语言对布尔类型的存储并没有做规定,因为理论上存储布尔类型只需要1 bit,但是通常JVM内部会把 boolean 表示为4字节整数;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/1042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】 单向链表的实现

单向链表是数据结构中的一种,它由节点组成,每个节点包含两个部分:数据域和指针域。数据域用于存储节点的值,指针域则用于指向下一个节点。单向链表的特点是只能从头节点开始遍历到尾节点,不能反向遍历。 1 单向链表的…

深入剖析图像平滑与噪声滤波

噪声 在数字图像处理中,噪声是指在图像中引入的不希望的随机或无意义的信号。它是由于图像采集、传输、存储或处理过程中的各种因素引起的。 噪声会导致图像质量下降,使图像失真或降低细节的清晰度。它通常表现为图像中随机分布的亮度或颜色变化&#…

面试不慌张:一文读懂FactoryBean的实现原理

大家好,我是石头~ 在深入探讨Spring框架内部机制时,FactoryBean无疑是一个关键角色,也是面试中经常出现的熟悉面孔。 不同于普通Java Bean,FactoryBean是一种特殊的Bean类型,它的存在并非为了提供业务逻辑,…

docker-002常用命令

启动类命令 启动systemctl start docker停止systemctl stop docker重启systemctl restart docker查看状态systemctl status docker开机启动systemctl enable docker概要docker info总体帮助文档docker --help命令帮助文档docker 具体命令 --help镜像命令 查看主机上的镜像 命令…

基于Springboot的小区物业管理系统

基于SpringbootVue的小区物业管理系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 用户管理 员工管理 业主信息管理 费用信息管理 楼房信息管理 保修信息…

【原创教程】海为PLC与RS-WS-ETH-6传感器的MUDBUS_TCP通讯

一、关于RS-WS-ETH-6传感器的准备工作 要完成MODBUS_TCP通讯,我们必须要知道设备的IP地址如何分配,只有PLC和设备的IP在同一网段上,才能建立通讯。然后还要选择TCP的工作模式,来建立设备端和PC端的端口号。接下来了解设备的报文格式,方便之后发送报文完成数据交互。 1、…

自定义Blazor单文件Web程序端口

#接 上篇 Mysql快速迁移版的制作过程# 上一篇《Mysql8快速迁移版的制作过程》完成了快速迁移的数据库的准备,今天接着讲基于Blazor的Web程序快速迁移版的制作。 单文件发布的难点不在发布而是因为程序系统默认给了个5001的端口,而是如何能够让用户自定…

AOP基础-动态代理

文章目录 1.动态代理1.需求分析2.动态代理的核心3.代码实例1.Vehicle.java2.Car.java3.Ship.java4.VehicleProxyProvider.java(动态代理模板)5.测试使用 2.动态代理深入—横切关注点1.需求分析2.四个横切关注点3.代码实例1.Cal.java2.CalImpl.java3.VehicleProxyProvider02.jav…

0-1背包问题:贪心算法与动态规划的比较

0-1背包问题:贪心算法与动态规划的比较 1. 问题描述2. 贪心算法2.1 贪心策略2.2 伪代码 3. 动态规划3.1 动态规划策略3.2 伪代码 4. C语言实现5. 算法分析6. 结论7. 参考文献 1. 问题描述 0-1背包问题是组合优化中的一个经典问题。假设有一个小偷在抢劫时发现了n个…

CSS继承、层叠和特殊性

继承性 CSS样式的相互传递,也就是说CSS内部标签拥有CSS外部标签的某些样式。我们可以利用CSS的继承性先把网页中具有相同,可继承的样式提取出来,然后进行全局中定义,利用继承属性影响整个页面的样式。 CSS中不可以继承的属性 1…

(C语言)sscanf 与 sprintf详解

目录 1.sprintf函数详解 2. sscanf函数详解 1.sprintf函数详解 头文件&#xff1a;stdio.h 作用&#xff1a;将格式化的数据写入字符串里&#xff0c;也就是将格式化的数据转变为字符串。 演示&#xff1a; #include <stdio.h> struct S {char name[10];int height;…

L1-039 古风排版--Python

中国的古人写文字&#xff0c;是从右向左竖向排版的。本题就请你编写程序&#xff0c;把一段文字按古风排版。 输入格式&#xff1a; 输入在第一行给出一个正整数N&#xff08;<100&#xff09;&#xff0c;是每一列的字符数。第二行给出一个长度不超过1000的非空字符串&a…

【QT进阶】Qt http编程之http与https简单介绍

往期回顾 【QT进阶】Qt Web混合编程之html、 js的简单交互-CSDN博客 【QT进阶】Qt Web混合编程之使用ECharts显示各类折线图等-CSDN博客【QT进阶】Qt Web混合编程之实现ECharts数据交互动态修改-CSDN博客 【QT进阶】Qt http编程之http与https简单介绍 一、什么是http与https …

NX二次开发——矩形排料5(基于最低水平线+遗传算法排料策略实现)

目录 一、概述 二、知识回顾 2.1适应度函数的确定 2.2基因编码 2.3遗传算法复制&#xff08;选择&#xff09; 2.4遗传算法交叉操作 通过交叉操作可以增加种群个体的多样性&#xff0c;既可以产生更多的优秀解。下面通过顺序编码方法进行改进&#xff08;网上有很…

ThreadLocal 实战使用详解

ThreadLocal 知识储备传送门&#xff1a; ThreadLocal 原理及源码详解 ThreadLocal 内存泄漏和常见问题详解 什么是ThreadLocal&#xff1f; ThreadLocal 是一种提供线程本地变量&#xff08;也称为线程局部变量&#xff09;的类&#xff0c;这种变量确保了在不同的线程中访…

vue3:树的默认勾选和全选、取消全选

实现的功能&#xff0c;上面有个选择框&#xff0c;当选中全部时&#xff0c;下方树被全选 代码&#xff1a; <template><div><el-select v-model"selectAll" style"margin-bottom: 10px;" change"handleSelectAllChange">&…

electron打包dist为可执行程序后记【electron-quick-start】

文章目录 目录 文章目录 前言 一、直接看效果 二、实现步骤 1.准备dist文件夹 2.NVM管理node版本 3.准备electron容器并npm run start 4.封装成可执行程序 1.手动下载electron对应版本的zip文件&#xff0c;解决打包缓慢问题 2.安装packager 3.配置打包命令执行内容…

嵌入式linux中利用QT控制蜂鸣器方法

大家好,今天给大家分享一下,如何控制开发板上的蜂鸣器。 第一:开发板原理图 从原理图中可以得出,当引脚输出低电平的时候,对应的蜂鸣器发出响声。 第二:QT代码详细实现 设置一个按钮,点击即可控制BEEP状态发生反转。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#in…

华为鸿蒙生态,威力估计被很多人低估了……

华为鸿蒙生态&#xff0c;威力估计被很多人低估了&#xff01;华为的鸿蒙千帆计划快成了&#xff0c;微信的加盟让计划就基本没问题了。 最近华为公布原生鸿蒙APP进度&#xff0c;在TOP5000应用里面&#xff0c;已经有4000支持了&#xff0c;不是已经开发完成&#xff0c;就是…

c++ 继承和组件的区别

一、什么是继承(Inheritance) 继承是面向对象编程的四大基本特性之一&#xff0c;它允许一个类&#xff08;派生类或子类&#xff09;继承另一个类&#xff08;基类或父类&#xff09;的属性和方法。通过继承&#xff0c;子类可以重用父类的代码&#xff0c;并且可以添加或覆盖…