【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提供两种版本,分别是标…

style 标签写在 body 前和 body 后有什么区别?

style 标签写在 body 前和 body 后有什么区别&#xff1f; 对比项<style> 放在 <body> 之前<style> 放在 <body> 之后渲染速度【优】所有样式信息在页面加载时可用&#xff0c;用户能够快速看到格式化后的页面【劣】浏览器需要先解析 body 内容再应用…

python常用文件路径切片及写脚本

常用文件路径切片 因为自己对路径切片这一块不是很熟悉,所以每次用都到处查浪费了不少时间,今天刚好又用到,整理一下: #绝对路径 video_path=r“E:\avfilm\pokes\qw0001.mp4” # 从绝对路径中提取完整文件名 video_name = os.path.basename(video_path) # 文件路径提取,用…

CSS变量 -- var() 使用教程

目录 1 CSS变量的基本使用1.1 变量定义1.1 变量使用1.3 全局/局部变量 2 CSS变量的参数3 CSS变量的拼接和计算3.1 拼接3.2 计算 4 JS 修改 CSS变量 CSS 自定义属性&#xff08;有时候也被称作CSS 变量或者级联变量&#xff09;&#xff0c;它的值可以在整个文档中重复使用。 复…

【TypeScript】ts中的Classes使用方法介绍

简言 TypeScript 完全支持 ES2015 中引入的类关键字。 与 JavaScript 语言的其他功能一样&#xff0c;TypeScript 添加了类型注解和其他语法&#xff0c;允许您表达类与其他类型之间的关系。 class类是一个较重要的知识。 Classes 类声明 ts中类的声明和js中的高度相似。 类…

MVC和Filter

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

出现 java: Annotation processing is not supported for module cycles 解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 对于循环依赖的问题,代码中遇到过两次,分别如下: 深度剖析Spring循环依赖(实战Bug)出现The dependencies of some of the beans in the application context form a cycle 解决方法(全)对于模块的依赖第一次遇到,如文…

【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 本专栏已介绍&#xff1a; 返回静态页面&#xff1a; 【Spring MVC】_SpringMVC项目返回静态页面_mvc 返…

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

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

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

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

Flutter 中的 Viewport 小部件:全面指南

Flutter 中的 Viewport 小部件&#xff1a;全面指南 Flutter 是一个现代的移动和 web 应用开发框架&#xff0c;它允许开发者以一种非常直观和高效的方式构建用户界面。在 Flutter 中&#xff0c;Viewport 是一个非常重要的小部件&#xff0c;它提供了一个滚动视口&#xff0c…

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

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

【Nginx】深入解析Nginx配置文件

Nginx&#xff08;发音为“engine-ex”&#xff09;是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP代理服务器。由于其高并发性、低资源消耗和模块化设计&#xff0c;Nginx在全球范围内被广泛使用。本文将深入解析Nginx配置文件&#xff0c;帮助读者了…

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

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

全局配置-案例:配置tabBar

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