【java程序设计期末复习】chapter2 基本数据类型与数组

基本数据类型与数组

一,标识符和关键字

标识符

定义
用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字 。

性质
(1)标识符由字母、下划线、美元符号和数字组成,长度不受限制。
(2)标识符的第一个字符不能是数字字符。
(3)标识符不能是关键字。
(4)标识符不能是true、false和null(尽管true、false和null不是关键字)。

true,false,null应表示常量

关键字

定义
关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用。

例如: booleanbyteshortintfloatdoublecharifelse等。  

性质
关键字都是小写的。遇到大写肯定不是关键字。

二,八大基本数据类型

逻辑类型:boolean (true/false)
整数类型:byte、short、int、long
字符类型:char
浮点类型:float、double

区别

boolean:true/false
int:4个字节——32位
byte:1个字节——8位
short:2个字节——26位
long:8个字节——64位
char:2个字节——16位
float:4个字节——32位
double:8个字节——64位

需要特别注意的是float常量后面必须要有后缀f或F。如:float x=22.76f

类型转换

精度从低向高排序:byte short char int long float double

规则
(1)当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。

例如:float x=100;

(2)当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值;

例如:int x=(int)34.89;//高精度向低精度转化会存在精度损失

(3)当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算;

public class Example2_2 { 
   public static void main (String args[]) {
      byte b = 22; 
      int  n = 129;  
      float f =123456.6789f ;
      double d=123456789.123456789;
      System.out.println("b=  "+b);   
      System.out.println("n=  "+n);
      System.out.printf("f=%-30.12f\n",f);    
      System.out.printf("d=%-30.12f\n",d);  
      b=(byte)n;    //导致精度的损失.
      f=(float)d;   //导致精度的损失
      System.out.printf("b=%d\n",b);   
      System.out.printf("f=%-30.12f  ",f); 
   }
}

运行结果:
在这里插入图片描述

三,数据的输入输出

输入基本型数据

可以使用Scanner类创建一个对象:

Scanner reader = new Scanner(System.in);  

其中:reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据:

nextBoolean()nextByte()nextShort()nextInt()nextLong()nextFloat()nextDouble()

上述方法执行时都会堵塞,程序等待用户在命令行输入数据回车确认。

import java.util.Scanner;
public class Example2_3 {
    public static void main (String args[ ]){
        System.out.println("用空格或回车做分隔,输入若干个数\n"+
                           "最后输入数字0,回车结束输入操作");
        Scanner reader=new Scanner(System.in);
        double sum=0;
        double x = reader.nextDouble();
        while(x!=0){
           sum=sum+x;
           x=reader.nextDouble();
        }
        System.out.printf("sum=%10.5f\n",sum);
    }
}

输出基本型数据

(1)java使用System类中的方法实现数据输出
例如:System.out.println()或System.out.print()输出串值,表达式的值。二者的区别是前者输出数据后换行,后者不换行。如:

System.out.println(m+"个数的和为"+sum);
System.out.println(":"+123+"大于"+122);

如果需要输出的字符串的长度较长,可以将字符串分解成几部分,然后使用并置符号:“+”将它们首尾相接,

例如:System.out.println("你好,"+
                                     "很高兴认识你" ); 

(2)JDK1.5新增了和C语言中printf函数类似的输出数据的方法,格式如下:

System.out.printf("格式控制部分",表达式1,表达式2,…表达式n)

格式控制部分由格式控制符号:%d、%c、%f、%s和普通的字符组成,普通字符原样输出。格式符号用来输出表达式的值。
%d输出int类型数据值;%c输出char型数据;%f输出浮点型数据,小数部分最多保留6位;%s输出字符串数据。
输出数据时也可以控制数据在命令行的位置,例如:%md输出的int型数据占m列;%m.nf输出的浮点型数据占m列,小数点保留n位。

例如:System.out.printf("%d,%f",12, 23.78); 

四,数组

定义: 数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据。下标从0开始排序。

数组的声明

(1)声明一维数组有下列两种格式:
数组的元素类型 数组名[];
数组的元素类型 [] 数组名;

float boy[];
char [] cat;

(2)声明二维数组有下列两种格式:
数组的元素类型 数组名[][];
数组的元素类型 [][] 数组名;

float a[][];
Char [][] b;

数组的分配空间:new

//数组的声明和分配空间可以在声明时同时完成:、
float boy  []=new float[4];

数组元素的使用

数组越界时程序可以编译通过,但运行时将发生

ArrayIndexOutOfBoundsException

数组的引用

数组是引用性数据类型

public class Example2_4 {
   public static void main(String args[]) {
      int a[]={1,2,3,4};
      int b[]={100,200,300};
      System.out.println("数组a的元素个数="+a.length);
      System.out.println("数组b的元素个数="+b.length);
      System.out.println("数组a的引用(带前缀信息)"+a);
      System.out.println("数组b的引用(带前缀信息)"+b);
      System.out.println(a==b);
      int address  = System.identityHashCode(a);
      System.out.printf("数组a的引用%x\n",address);
      address  = System.identityHashCode(b);
      System.out.printf("数组b的引用%x\n",address);
      System.out.println("将b的值赋值给a");
      a=b; //将b的值赋值给a
      address  = System.identityHashCode(a);
      System.out.printf("数组a的引用%x\n",address);
      address  = System.identityHashCode(b);
      System.out.printf("数组b的引用%x\n",address);
      System.out.println(a==b);
      System.out.println("数组a的元素个数="+a.length);
      System.out.println("数组b的元素个数="+b.length);
      System.out.println("a[0]="+a[0]+",a[1]="+a[1]+",a[2]="+a[2]);
      System.out.print("b[0]="+b[0]+",b[1]="+b[1]+",b[2]="+b[2]);
   }
} 

运行结果如下:
在这里插入图片描述

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

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

相关文章

cocos creator做圆形进度条

效果图: 我们在开发过程中经常要用到圆形进度条,例如技能CD 原文链接 之前写了一篇cocos2dx-lua_ProgressTimer创建扇形进度条,这里简单记录下在cocosCreator中如何制作。 具体方法 cocosCreator做起来比2dx还是要简单很多,首先给节点添加p…

PageHelper分页

文章目录 PageHelper分页ThreadLocalMap和ThreadLocal执行完PageHelper.startPage之后,分页参数存储到哪里了?Page和List的关系?PageInterceptor分页拦截器的作用?PageInfo的作用与结构?最后看下引入的pagehelper分页依…

Linux-部分:实用指令

1 指定运行级别 1)基本介绍: 运行级别说明: 0:关机1:单用户【找回丢失密码】2:多用户状态没有网络服务3:多用户状态有网络服务4:系统未使用保留给用户5:图形界面6&…

新业务 新市场 | 灵途科技新品亮相马来西亚亚洲防务展

5月6日,灵途科技携新品模组与武汉长盈通光电(股票代码:688143)携手参加第18届马来西亚亚洲防务展。首次亮相海外,灵途科技便收获全球客户的广泛关注,为公司海外市场开拓打下坚实基础。 灵途科技与长盈通共同…

基于Llama 3搭建中文版(Llama3-Chinese-Chat)大模型对话聊天机器人

前面两篇博文,我们分别在个人笔记本电脑部署了Llama 3 8B参数大模型,并使用Ollama搭建了基于 Web 可视化对话聊天机器人,可以在自己电脑上愉快的与Llama大模型 Web 机器人对话聊天了。但在使用过程中,笔者发现Llama大模型经常出现…

避免锁表:为Update语句中的Where条件添加索引字段

最近在灰度环境中遇到一个问题:某项业务在创建数据时耗时异常长,但同样的代码在预发环境中并未出现此问题。起初我们以为是调用第三方接口导致的性能问题,但通过日志分析发现第三方接口的响应时间正常。最终,我们发现工单表的数据…

【C++】C++11(一)

C11是一次里程碑式的更新,我们一起来看一看~ 目录 列表初始化:{ }初始化:std::initializer_list: 声明:auto:decltype: STL的一些变化: 列表初始化: { }初始化&#xf…

音视频开发4-补充 FFmpeg 开发环境搭建 -- 在windows 上重新build ffmpeg

本节的目的是在windows 上 编译 ffmpeg 源码,这样做的目的是:在工作中可以根据工作的实际内容裁剪 ffmpeg,或者改动 ffmpeg 的源码。 第一步 :下载, 安装,配置 ,运行 msys64 下载 下载地址&…

如何使用ssh将vscode 连接到服务器上,手把手指导

一、背景 我们在开发时,经常是window上安装一个vscode编辑器,去连接一个虚拟机上的linux,这里常用的是SSH协议,了解其中的操作非常必要。 二、SSH协议 SSH(Secure Shell)是一种安全协议,用于…

某某某加固系统分析

某某某加固系统内核so dump和修复: 某某某加固系统采取了内外两层native代码模式,外层主要为了保护内层核心代码,从分析来看外层模块主要用来反调试,释放内层模块,维护内存模块的某些运行环境达到防止分离内外模块&am…

vulnhub靶机De-ICE_S2.100_(de-ice.net-2.100-1.0)

下载地址:https://download.vulnhub.com/deice/De-ICE_S2.100_%28de-ice.net-2.100-1.0%29.iso 靶机搭建 注意下载下来的是iso文件接下来说明系统选择 linux的Debian 7.x就可以 然后注意一点我们需要创建一个192.168.2.0/24的网卡进行连接(靶机ip地址…

RTOS(3)极简ARM架构与汇编

1.掌握八条汇编指令即可 读内存loadLDR R0,[addrA]写内存storeSTR R0,[addrA]加ADD R0,R1,R2减SUB R0,R1,R2比较CMP R0,R1跳转B / BL入栈PUSH { R3,LR }出…

OpenStack平台Glance管理

1. 规划节点 使用OpenStack平台节点规划。 IP主机名节点192.168.100.10controller控制节点192.168.100.20compute计算节点 2. 基础准备 使用实战案例-部署的OpenStack平台。 IP 主机名 节点 192.168.100.10 controller 控制节点 192.168.100.20 copute 计算节点 02 案例分…

基于机器学习判断面部微表情发现哪些人更容易诊有帕金森病

1. 概述 帕金森病(Parkinson’s disease,PD)是一种慢性、进展性的神经退行性疾病,主要影响运动系统。该病症以大脑中黑质致密部多巴胺能神经元的逐渐丧失为特征,导致多巴胺(一种重要的神经递质&#xff09…

门禁-jenkins的构建状态同步到gitlab提交流水线

API接口文档 https://docs.gitlab.cn/jh/api/commits.html 配置pipline流水线 生成http请求代码: 使用HttpRequest插件生成 - sharelibs内容 //这是share libs里的 package devopsdef httpReq(reqType, reqUrl, reqBody, accessToken){def gitServer "…

Radware Alteon负载均衡-配置证书组

证书组:可以使用证书组将多个服务器证书与虚拟服务相关联。这提供了对服务器名称指示(Server Namelndication,SNI)的支持,允许在相同的IP和端口后面托管多个主机名。使用SNI,浏览器发送请求的主机名,使服务器能够在进行…

滤波电路应用笔记

滤波器 什么是滤波器? 滤波器是一种使某些频率或频带上的电信号通过而阻止其他信号通过的装置。 滤波电路的作用是尽可能减少脉动直流电压中的交流分量,保持其直流分量,降低输出电压的纹波系数,并使波形相对平滑。整流电路的输出…

以前:不会用电脑;现在:不会用AI

购买特价商务机票需要一些策略和灵活性。、 提前规划:商务舱票价通常在出发日期的2-3个月前最便宜。尽早规划您的行程并开始关注票价。 使用比价工具:使用Skyscanner、Kayak等比价网站来比较不同航空公司的商务舱票价。这些网站可以显示多个航空公司的价…

grpc、多集群、多租户

gRPC和服务发现 一个A high-performance, open-source universal RPC framework,高性能、开源的通用 RPC 框架。使用protobuf 语言基于文件定义服务,通过 proto3 工具生成指定语言的数据结构、服务端接口以及客户端 Stub。移动端上面则是基于标准的 HTTP…