【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的值赋值给aaddress  = 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]);}
} 

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

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

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

相关文章

008-Linux后台进程管理(作业控制:、jobs、fg、bg、ctrl + z、nohup)

文章目录 前言 1、& 2、ctrl z 3、jobs 4、fg:将后台进程调到前台执行 5、bg:将一个暂停的后台进程变为执行 6、&和nohup 总结 前言 有时候我们需要将一个进程放到后台去运行,或者将后台程序切换回前台,这时候就…

03 Prometheus+Grafana可视化配置

03 PrometheusGrafana可视化配置 大家好,我是秋意零。接上篇Prometheus入门安装教程 grafana官网下载安装包比较慢,如果没有魔法。可关注公众号【秋意零】回复101获取 Grafana官网下载:https://grafana.com/grafana/download 这里采用的二进制…

使用C语言实现学生信息管理系统

前言 在我们实现学生信息管理系统的过程中,我们几乎会使用到C语言最常用最重要的知识,对于刚学习完C语言的同学来说是一次很好的巩固机会,其中还牵扯到数据结果中链表的插入和删除内容。 实现学生信息管理系统 文件的创建与使用 对于要实现…

【小技巧】Keil C51 报错“*** ERROR L107: ADDRESS SPACE OVERFLOW****

软件:Keil C51 C51V961版本 电脑:Win10 报错提示: compiling System.c... linking... *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?LCD LENGTH: 0034H Program Size: data174.0 xdata17 code1205 Target not create…

100个投资者99个选择使用这款EA,WeTrade发现1个事实

为什么100个投资者会有99个选择使用这款EA,是因为这款EA能提供两个版本吗?是因为能控制风险吗?都不是,WeTrade发现1个事实才是这么多投资者选择的原因,那就是能实现100%的盈利率。 我们都知道外汇狙击手EA提供两种版本,分别是标…

MVC和Filter

目录 MVC和三层架构模型的联系 Filter 概念 作用 应用场景 步骤 简单入门 MVC和三层架构模型的联系 m-->model即模型是三层架构模型的业务层(service)和持久层(dao) v-->views即视图是三层架构模型的表现层(web) c-->controller即控制器也…

【SpringMVC】_SpringMVC项目返回HTML与JSON

目录 1. SpringMVC项目返回HTML页面 2. SpringMVC项目返回JSON 2.1 程序演示 2.2 关于响应的Content-Type 2.2.1 接口为对象 2.2.2 接口为String 2.2.3 接口为Map 本专栏已介绍: 返回静态页面: 【Spring MVC】_SpringMVC项目返回静态页面_mvc 返…

一种基于高德Web API实现沿路画面的实现

概述 本文在mapboxGL框架下,分享一种基于高德Web API实现沿路画面的实现。 实现效果 实现 1. 实现思路 通过点击获取路径的起点和终点;将多次规划路径的结果连成一条线;当鼠标点击回到第一个点的时候结束绘制;绘制结束后将路径…

写代码之前一定要提前想好思路

就和写数学题目一样,在做题目之前要先把思路确立下来。可能是我早年做数学的时候老是着急做题目没怎么分析过题目,把这个习惯不自觉地代入了代码的写入当中。习惯的养成使得我即使明白了自己的问题也依然会不断的犯错,看来只有刻意地提醒自己…

【MATLAB源码-第217期】基于matlab的16QAM系统相位偏移估计HOS算法仿真,对比补偿前后的星座图误码率。

操作环境: MATLAB 2022a 1、算法描述 高阶统计量(HOS)频偏估计算法 高阶统计量(Higher Order Statistics, HOS)频偏估计算法是一种先进的信号处理技术,广泛应用于现代数字通信系统中,以应对…

如何快速申请免费单域名SSL证书

申请免费的单域名SSL证书通常涉及以下几个步骤,虽然具体细节可能会根据不同的证书颁发机构(CA)有所差异。以下是通用的申请流程: 1.选择证书颁发机构: 访问提供免费单域名SSL证书的证书颁发机构网站,例如JoySSL等。 2.注册账号…

全局配置-案例:配置tabBar

一、需求:实现如图所示的tabBar效果 二、实现步骤: 1.拷贝图标资源 把image文件夹拷贝到小程序项目根目录中 图片中包含-active的是选中之后的图标 图片中不包含-active的是默认图标 2.新建3个对应的tab页面 3.配置tabBar选项 (1&#xf…

oracle tree

select * from "Test"; INSERT INTO "Test" ("id", "name", "pid") VALUES (01, 中国, 00); INSERT INTO "Test" ("id", "name", "pid") VALUES (01.01, 福建, 01); INSERT INTO…

如何找出真正的交易信号?Anzo Capital昂首资本总结7个

匕首是一种新兴的价格走势形态,虽然不常见,但具有较高的统计可靠性。它通常预示着趋势的持续发展。该模式涉及到同时参考两个不同的时间周期进行交易,一个是短期,另一个是长期,比如一周时间框架与一天时间框架、一天时…

看完这篇抖音小店选品秘籍!难道还愁不会选品吗?

大家好,我是喷火龙。 做抖音小店,没有什么花里胡哨的东西,核心就是我们的产品,把大部分精力用到选品上肯定是没错的。 选品之前一定要做好店铺的定位,确定好自己的主营类目,主营类目至少要占店铺产品的70…

J.搬砖【蓝桥杯】/01背包+贪心

搬砖 01背包贪心 思路&#xff1a;要让重量更小的在更前面&#xff0c;价值更大的在更后面&#xff0c;vi−wj>vj−wi viwi>vjwj 第 i 个箱子放在第 j 个箱子下面就显然更优。所以进行排序再用01背包即可。 #include<iostream> #include<algorithm> #defi…

go语言的使用方法

一.go语言的介绍 1.简介 2.应用领域 3.使用go语言的公司 4.go语言开发工具介绍 5.go语言开发环境搭建 【1】搭建Go开发环境-安装和配置SDK 基本介绍: 1).SDK的全称(Software Development Kit软件开发工具包&#xff09;2).SDK是提供给开发人员使用的&#xff0c;其中包含了…

SAP 消息号VF501科目确定期间出错

在销售开票VF02的时候&#xff0c;经常出现报错&#xff1a;“科目确定期间出错”&#xff0c;这个报错&#xff0c;目前检查步骤&#xff1a; 1、BP客户主数据&#xff0c;销售代码层数据&#xff08;销售与分销&#xff09;-开票-会计-客户科目分配组&#xff0c;要与销售订…

【UML用户指南】-02-UML的14种图

1、结构图 1、类图&#xff08;class diagram&#xff09; 展现了一组类、接口、协作和它们之间的关系。 在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。 包含主动类的类图给出系统的静态进程视图。构件图是类图的变体。 2、对象图&a…

【ONE·Git || 基本用法入门】

总言 主要内容&#xff1a;主要介绍Git中常用的指令。   PS&#xff1a;多人协作与企业开发模型使用&#xff0c;此部分内容不作博文总结。             文章目录 总言1、初识Git1.1、版本控制器1.2、git安装 2、基本操作2.1、Git本地仓库2.1.1、创建Git本地仓库&…