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

news2024/12/23 18:34:53

基本数据类型与数组

一,标识符和关键字

标识符

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

性质
(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]);
   }
} 

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

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

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

相关文章

集合竞价选股策略实战测试

2.3.2版本发布的集合竞价选股策略是网友吴PSYP提供的,团队按照策略实现的选股算法,最近半个月对策略进行的实战测试,从集合竞价选股开始,到股票收盘,收盘价格大于集合竞价价格,算作盈利,测试结果…

贪心-ACW803区间合并-XMUOJ力量碎片合并

题目 思路 附上几个参考链接 for(auto i : v)遍历容器元素_for auto 遍历-CSDN博客 C pair的基本用法总结(整理)_c pair用法-CSDN博客 使用 sort 实现自定义排序 - AcWing 话不多说,直接上代码 代码 /* ACW803区间合并-XMUOJ力量碎片合…

Redis-事务

简介 说到事务,一般都会第一时间的想到MySQL的事务。 在MySQL中事务的提出是为了解决解决原子性操作的,一组执行命令要么全部执行成功,要么执行失败进行回滚,一条也不执行。 在Redis中也有事务这个概念,但与MySQL相…

基于Pytorch框架的深度学习EfficientNet神经网络香蕉水果成熟度识别分类系统源码

第一步:准备数据 4种香蕉水果成熟度数据:overripe,ripe,rotten,unripe(过熟、熟、烂、未成熟),总共有13474张图片,每个文件夹单独放一种成熟度数据 第二步:搭…

零基础小白可以做抖音电商吗?小白做电商难度大吗?一篇全解!

大家好,我是电商花花 在直播电商的热度越来越多,更多普通的创业者都对抖音小店电商有了想法,因为很多普通 人都通过抖音小店开店卖货赚到了钱,让更多人对抖店电商产生了兴趣。 于是做抖音小店无货源,开店卖货赚钱成为…

【软件推荐】obsidian设置

【软件推荐】obsidian设置 初始化 附件相对路径设置 打开obsidian 设置-文件与链接,找到下图的这几个设置。设置为如图所示。 插件推荐 实时渲染 你可能会想,obsidian的使用体验没有typora好呀! typora可以实时渲染,obsid…

用c++用4个凸函数(觉得啥好用用啥)去测试adam,rmsprop,adagrad算法的性能(谁先找到最优点)

为了测试 Adam、RMSProp 和 Adagrad 算法的性能,你可以使用四个凸函数进行实验。以下是一些常用的凸函数示例: Rosenbrock 函数: Booth 函数: Himmelblau 函数: Beale 函数: 你可以选择其中一个或多…

光线追踪技术在AI去衣中的革命性角色

引言: 随着人工智能和计算机图形学的飞速发展,AI去衣技术已经从理论走向实践,为影视制作、虚拟现实、在线试衣等领域提供了强大的技术支持。在这一过程中,光线追踪技术以其卓越的渲染能力和逼真的光影效果,成为AI去衣领…

C++开发面试常问总结

一些面试总结 TCP粘包了解吗?解决办法?讲一下乐观锁悲观锁git中 git pull和git fetch的区别1.虚函数实现机制:2.进程和线程的区别:3.TCP三次握手、四次挥手:4.HTTP状态码,报头:5.智能指针&#…

MySql基础(一)--最详细基础入门,看完就懂啦(辛苦整理,想要宝宝的赞和关注嘻嘻)

前言 希望你向太阳一样,有起有落,不失光彩~ 一、数据库概述 1. 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改&…

【Django项目】 音乐网站spotify复刻

代码:https://github.com/tomitokko/spotify-clone 注:该项目不是自己提供mp3文件,而是使用spotify 的api接口获取。

奇舞周刊第529期:万字长文入门前端全球化

周五快乐(图片由midjourney生成) 奇舞推荐 ■ ■ ■ 万字长文入门前端全球化 目前国内企业正积极开拓国际市场,国际化已成为重要的发展方向,因此产品设计和开发更需考虑国际化。本文介绍了语言标识、文字阅读顺序等诸多知识。然后…

【编译原理复习笔记】中间语言

中间语言 中间语言的特点和作用 (1)独立于机器 (2)复杂性介于源语言和目标语言之间 中间语言可以使编译程序的结构在逻辑上更为简单明确 常用的中间语言 后缀式 图表示:抽象语法树,有向无环图 三地址代…

淘宝x5sec

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章未…

LeetCode 264 —— 丑数 II

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 第一个丑数是 1 1 1,由于丑数的质因子只包含 2 、 3 、 5 2、3、5 2、3、5,所以后面的丑数肯定是前面的丑数分别乘以 2 、 3 、 5 2、3、5 2、3、5 后得到的数字。 这样,我…

类的内存对齐位段位图布隆过滤器哈希切割一致性哈希

文章目录 一、类的内存对齐1.1规则1.2原因 二、位段2.1介绍2.2内存分配问题2.3跨平台问题2.4使用的注意事项 三、位图的应用3.1 给40亿个不重复的无符号整数,找给定的一个数。(int的范围可以到达42亿多)3.2 给定100亿个整数,设计算…

openEuler 22.03 LTS SP3源码编译部署OpenStack-Caracal

openEuler 22.03 LTS SP3源码编译部署OpenStack-Caracal 说明机器详情安装操作系统注意事项基础准备Controller节点 && Compute节点 && Block节点关闭防火墙关闭selinux设置静态IP更新安装前准备Controller节点 && Compute节点 && Block节点设…

auto关键字(C++11)

auto关键字(C11) 文章目录 auto关键字(C11)前言一、auto使用规则二、auto不适用的场景三、auto推荐适用的场景总结 前言 在C11中,auto关键字能够自动推导出变量的实际类型,可以帮助我们写出更加简洁、现代…

开发公众号自定义菜单之创建菜单

文章目录 申请测试账号换取Token接口测试提交自定义菜单查看效果校验菜单配置清空菜单配置结束语 申请测试账号 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?actionshowinfo&tsandbox/index 或 得到appid和secret 换取Token 使用appid和secret换取token令牌…

Python应用实战,用动画生成冒泡排序的过程

写在前言 hello,大家好,我是一点,专注于Python编程,如果你也对感Python感兴趣,欢迎关注交流。 希望可以持续更新一些有意思的文章,如果觉得还不错,欢迎点赞关注,有啥想说的&#x…