JAVA ---数据类型

(一)Java的标识符与关键字

 

现实世界,所有东西都有属于自己的名字,从而方便分类和区别其他事物。在程序中,常常用一个记号对变量、数组、方法和类等进行标识,这个记号就叫标识符(名字)。

  由于Java语言本身使用一些标识符(称为Java关键字),在我们命名变量、数组、方法和类时应该避免使用这些标识符。否则,将导致程序无法进行编译。

访问控制

类、接口、方法、变量、代码块修饰符

程序控制错误处理基本类型变量引用包相关保留字
publicclassfortrybooleannewimportgoto
privateabstractbreakcatchbytesuperpackageconst
protectedextendswhilefinallycharthisvar
defaultimplementsdothrowshortvoidouter
interfacecontinuethrowsintnullinner
finaliflongtruefuture
stricfpelseflaotfalsebyValue
staticswitchdoubleoperator 
synchronizedcaserest
transientdefaultgeneric
volatilereturn
nativeassert
enuminstanceof

 

  Java标识符的命名规则 

① 由26个英文字母大小写,0-9,_ 或 $ 组成。

② 标识符的首字符必须是字母、下划线(_),或者美元符号($),切记数字不可以开头。

③ 不可以使用关键字(class、int等)和保留字(goto和const),但能包含关键字和保留字。

④ Java中严格区分大小写,长度无限制。(例:class×,Class√),一般来说,常量通常以大写字母英文单词命名,变量通常以小写字母英文单词命名。如果一个变量名由多个单词构成,第一个单词为小写,第二个单词为首字母大写,如anInt。

⑤ 类标识符通常以大写英文字母开始。
 ⑥标识符不能包含空格。

(二)数据类型  

 Java的数据类型分为简单数据类型和复合数据类型(引用类型)。

 1.数据类型

 

数据类型关键字所占位数默认值取值范围
布尔类型boolean8falsetrue,false
字节型byte80
短整型short160
整型int320
长整型long

64

0
单精度型float320.0
双精度double640.0
字符型char16'\u0000''\u0000'~'\uFFFF'

 注意:

(1)对于不同类型的数据,其所占内存空间不同。

 (2)对于不同类型的数据,其所能执行的操作不同。如整型和浮点型数据可以执行加减乘除四则运算,而布尔型数据就不行。

 (3)float和double均用于表示浮点型数值,区别在于它们所能表示的数值范围和精度不同。double比float可以存储范围更大,精度更高。

 (4)byte、shot、int和long均用于表示整数,只不过取值范围不同。

(5)字符型用来表示Unicode字符集中的符号,如各种控制字符、字母、数字和汉字。Unicode字符集采用16进制数表示每一个字符,如'\u0061'表示小写a。

(6) 布尔型只有true和false,不可以将0或非0的数代替true或false.

2.数据类型转换

① 简单数据类型的优先级

在Java中,规定(byte、shot、char)->int->long->float->double

② 数据类型的自动转换与强制类型转换

数据类型的自动转换:byte、shot、char)->int->long->float->double ,右边=左边时,会默认把左边转成右边的数据类型。

数据类型的强制类型转换:

    类型转换可以是隐式的,由编译器自动执行,也可以是显式的,通过使用强制类型转换运算符来指定。在编程时,有需要类型转换的时候都用上强制类型转换运算符,是一种良好的编程习惯。

  

相关代码:

package com.sxt;
import java.util.Scanner;
public class Test {
    public static  void main(String args[])
    {
        int a=4;
        //数据类型的自动转换
        float a1=a,a2=9.12f;
        System.out.println(a1);
        //强制类型转换
        a=(int)a2;
       // a=a1;Incompatible types. Found: 'float', required: 'int'
        System.out.println(a);
    }
}

 (三)各种数据类型数据表示方式

 1.整型数值:

2.浮点型数值

 浮点型数值有如下两种表示方式:①小数表示法,它由整数部分和小数部分组成,如1.3,5.32等

②科学表示法:他常用来表示很大的数或者很小的数,表示方法是在小数表示法面加“E”或“e”及指数部分。

  注意,对于float型变量来说,必须在数值后加“F”或“f”;对于double型变量来说,应该在数值后加“D”或“d”,也可以省略不写。

3.字符值

字符值有普通字符表示法和转义字符表示法两种。

 4.字符串值

字符串值是使用双引号括起来的0个或多个字符,且字符串中可以包含转义字符。用户还可以使用“+”将多个字符串串联在一起。其他数据类型+String型=String型。

注意: ""指的是空字符串,与"  "仅含空格的字符串不同。

(四)常量与变量

1.引言

       在程序中存在大量的数据来表示程序的状态,其中有些数据的值在程序运行过程中会发生改变,而有些数据的值在程序运行过程中不能发生改变,这些数据在程序中分别被称为变量和常量。


2.声明变量的方法
      变量是指在程序运行过程中可以发生变化的量,它用于在程序运行时临时存放数据。为了使用变量,需要首先声明变量,预先告诉编译器将要使用的变量名及其所表示的数据类型,以便在后面的代码中出现该变量时编译器知道该如何处理。
声明变量的语法格式如下:

① 数据类型 变量名1   ;
② 数据类型 变量名1  ,变量名2……;
 

注意:
⒈ 可以同时声明多个变量,各变量之间用逗号分隔。 
⒉可以在声明变量的同时为它赋一个初值。初值既可以是一个值,也可以是一个有确定值的表达式, 
⒊Java语言是完全面向对象的编程语言,故Java变量又分为成员变量(于类中方法体以外的变量)和方法变量(位于方法体内的变量,又称局部变量)。对于成员变量而言,我们还可以为其增加访问控制修饰符(如public、private等)和“static”字样以权限访问变量的权限和变量的创建方式。

3.声明常量的方法

    常量是指在程序运行过程中不能改变的量,它用来记忆一个固定的数值即常量只能被赋值一次。
一般来说,如果某个固定数据在程序中多处被引用,那么最好将它定义为常量,然后用常量替换掉各处的固定数据。如果需要改变这个数据,只需在程序中修改常量值就可以了。否则,要在程序中改变这个固定数据,必须对程序多处逐一修改。在Java中,常量用final来声明,而且常量名全部用大写字母,以便与变量名有所区别。定义常量的的一般格式如下:
final 数据类型名常量名=值或表达式; 

  使用常量有三个好处:1)当一个值多次被使用时,不必重复输入;2)如果必须修改常量值(例如,将PI的值从3.14改为3.14159),只需在源代码中的一个地方做改动;3)给常量赋一个描述性名字会提高程序的可读性。

注意:
 ⒈常量也可以先声明后赋值,不过,只能赋值一次。否则,系统会给出编译错误。
⒉ 与变量类似,常量也有成员常量和方法常量之分,其特点和用法与变量类似,

相关代码:

package com.sxt;

import java.io.IOException;

class VarType
{
    int var1;//该变量只能被当前包中所有类访问
    public int var2;//该变量只能被当前包和其他包中所有类访问;基于该类创建多个对象时,每一个对象均可单独操作该变量;该变量占用多个存储空间,各对象之间互不影响
    public static int var3;//该变量只能被当前包和其他包中所有类访问;基于该类创建多个对象时,各对象均可共享该变量;该变量占用1个存储空间,在某个对象对其改变其值后,其他对象都将引用其值
}
public class Text {
    public static void main(String[] args ) throws IOException{
   //声明1个变量
        int a;
        char c;
        float []s={1.2f,1.56f,6.3f};//声明的同时给它赋值
        //声明多个相同变量
        double A,B,D;
        int A1=0,B1=1;//声明的同时给它赋值
   //声明常量
        final double PI=3.14,R=20;
        final double C;//先声明后赋值,但只能赋值一次
        C=2*PI*R;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为OD机试用java实现 -【最优调度策略】

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:最优调度策略 题目 在通信系…

JavaScript核心高级内容复习3

文章目录对象的创建模式继承模式详细介绍Object构造函数模式对象字面量工厂模式自定义构造函数模式构造函数原型的组合模式继承模式--原型链继承继承模式--借用构造函数继承继承模式--组合继承对象的创建模式 Object构造函数模式var obj {}; obj.name Tom obj.setName func…

【软件设计师04】计算机网络

计算机网络 1. OSI/RM七层模型 层次名称主要功能主要设备及协议7应用层实现具体的应用功能POP3、FTP、HTTP、Telnet、SMTP、DHCP、TFTP、SNMP、DNS6表示层数据的格式与表达、加密、压缩5会话层建立、管理和终止会话4传输层端到端的连接TCP、UDP3网络层分组传输和路由选择三层…

Matplotlib库入门

Matplotlib库的介绍 什么是Matplotlib库? Matplotlib是一个Python的数据可视化库,用于绘制各种类型的图表,包括线图、散点图、条形图、等高线图、3D图等等。它是一个非常强大和灵活的库,被广泛用于数据科学、机器学习、工程学、…

ARMv8 secure 和 Non-secure模式切换的两种方法:SMC和SCR.NS

文章目录SMC 指令SCR.NSAArch64SMC(Secure Monitor Call)指令HCR_EL2.TSC :Traps to EL2 of EL1 execution of SMC instructionsSCR_EL3.SMD : Disabling EL3, EL2, and EL1 execution of SMC instructionsSCR_EL3 寄存器AArch32S…

一次完整的OCR实践记录

一、任务介绍 这次的任务是对两百余张图片里面特定的编号进行识别,涉及保密的原因,这里就不能粘贴出具体的图片了,下面粘贴出一张类似需要识别的图片。 假如说我的数据源如上图所示,那么我需要做的工作就是将上面图片里面标红的数…

Spring----整合Mybatis

项目结构具体如下: 准备一个数据库: 架构是spring_db,表名为user_tb 结构如下: 第一步:配置pom文件(导入相应的坐标,注意spring-mybatis与mybatis的版本需要相对应,可以去官网查找…

Python(黄金时代)——多线程、多进程、协程

基本使用 基本概念 进程 几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程 进程是处于运行过程中的程序,并且具有一定的独立功能 进程是系统进行资源分配调度的一个独立单位 线程 线程&…

基于springboot物资管理系统(程序+数据库)

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

迅镭激光带您沉浸式直击展会现场!线上直播、云端互动,精彩持续!

2023 ITES深圳工业展 迅镭展位10-B06 深圳国际会展中心-宝安新馆 今天(3月29日),2023 ITES深圳工业展在深圳国际会展中心(宝安新馆)盛大开幕!迅镭激光以“行业高端典范、引领智造未来”为主题,携多款旗舰产品展示领先技术,展会首日便收获了超…

为了开放互联,明道云做了十件事

本文来自明道云资深研发经理孙伟,在明道云2022年秋季伙伴大会活动演讲,经校对编辑后整理为演讲精华。 一、开放没有选择 很多客户选择我们的一个重要原因,是明道云所能提供的产品开放能力。开放其实是没有选择的,坦白来讲&#…

SpringBoot接参注解与校验失败后的三种异常

文章目录一、SpringBoot中的参数传递注解1、PathVariable2、RequestParam3、RequestBody4、不用注解或者ModelAttribute二、参数类型校验失败后的三种异常一、SpringBoot中的参数传递注解 先看看非json下参数的接收和传递: 1、PathVariable PathVariable注解用于…

软件框架-实现使用@Component@Data@Configuration@Bean(配置类控制类实体类)等方法实现将配置文件从8080端口显示在网页上

一、前言 1.该程序代码是使用idea2021.12版本编写的,若使用其他软件请对照好配置; 2.这个程序具体的内容我忘了,只知道使用ComponentConfigurationPropertiesData ConfigurationBeanRestControllerAutowiredGetMapping等方法写的&#xff0…

chatGPT学英语,真香!!!

文章目录学习目标学习内容目标方式过程学习时间学习产出学习目标 能够在三个月的练习后,和真人外教比较流畅的沟通! 最近chatGPT实在是太火了,各种事情都能干,能改论文、写代码和翻译。 看到B站很多教程教我们直接用chatGPT进行…

【数据库管理】②实例管理及数据库启动关闭

1. 实例和参数文件 1.1 instance 用于管理和访问 database. instance 在启动阶段读取初始化参数文件(init parameter files). 1.2 init parameter files [rootoracle-db-19c ~]# su - oracle [oracleoracle-db-19c ~]$ [oracleoracle-db-19c ~]$ cd $ORACLE_HOME/dbs [oracl…

Docker 翻脸,不再开源,期待后续

前几日,Docker Hub出了一件大事!但凡创建了“organisation”的用户都收到了一封含有简短PDF链接的邮件。邮件的内容“金钱味”十足:如果不按照要求升级付费,用户就将失去对数据的访问权限。此举不仅会破坏开源项目的自动化构建&am…

GPT-4发布,这类人才告急,大厂月薪10W+疯抢

ChatGPT最近彻底火出圈,各行各业都在争相报道,甚至连很多官媒都下场“跟风”。ChatGPT的瓜还没吃完,平地一声雷,GPT-4又重磅发布! 很多小伙伴瑟瑟发抖:“AI会不会跟自己抢饭碗啊?” 关于“如何…

C++ 16 vector容器

目录 一、vector容器 1.1 简介 1.2 构造函数 1.3 赋值操作 1.4 容量和大小 1.5 插入删除 1.6 数据存取 1.7 互换容器 1.8 预留空间 一、vector容器 1.1 简介 ① vector数据结构和数组非常相似,也称为单端数组。 ② vector与普通数组区别:不同…

6.链路层和局域网

链路层链路层的主体是网络适配器,也称为网络接口卡2. 变换局域网链路层交换机的任务是在主机和路由器之间承载数据报没有两个适配器有相同的MAC地址适配器到哪里,MAC地址都不会改变主机移动时,主机的IP地址需要随之改变,以改变连接…

Vue+springboot 高校图书馆座位预约选座系统java毕业设计项目推荐

目前现有的图书馆选座管理系统对于用户而言其选座管理流程仍然过于繁琐,对于图书馆选座管理而言其系统安全性并不能保障。同时整套系统所使用的技术相对较为落后,界面不能动态化展示。相比较于其它同类型网站而言不能体现技术先进性。 1.2 项目目标 图书…
最新文章