Java基础:第九讲 基本信息表示

JAVA语言程序设计(基础篇)第九章答案 习题9.1 public class SimpleRectangle { double width; double height; SimpleRectangle(){ width = 1; height = 1; } SimpleRectangle(double newWidth, double newHeight){ width = newWidth; height 阅读详情

 

第二部分:基本信息表示与基本信息处理
主要内容:
l  基本数据表示,包括基本数据类型、常量和变量;
l  基本数据处理,主要介绍各种基本运算符;
l  流程控制,介绍选择和循环结构;
l  代码共享,介绍方法的定义和使用;
l  字符串的使用;
l  日期的使用;
l  数字的处理;
l Math 类的使用。
 
    本次介绍基本数据表示。
 
之前的课程已经说过 , 语言是用来表示信息 , 然后对信息进行处理,本次内容介绍信息(有时候我会用“数据”,有一些区别,但是对我们现在讲的内容没有影响)的表示。
 
先看看我们的自然语言,要描述某个人,并且这个人不是你周围的人,你可能会说“中等身材,眼睛比较小,长头发,下颚有颗痣,口才特别好”,如果这个人是大家都认识的,你可以直接说“成龙”,因为听到名字就知道是谁了,知道了他的基本信息。
 
如果使用 Java 语言来描述这个人的信息,如何描述呢?最简单的方法就是直接使用这句话。例如,输出这个人的信息,你可以写:
System.out.println(“ 中等身材,眼睛比较小,长头发,下颚有颗痣,口才特别好 ”);
把这个人写到数据库中,可以直接把这句话写如数据库中。这句话成为字符串,有了字符串,所有的信息都可以表示成字符串了,这样会使用字符串是不是就会信息表示了,可以这样认为,并且字符串在任何语言中都是最重要的(个人认为),因为任何信息都可以表示成字符串,从输入和输出的角度来说,也都是按照字符串的形式进行了。
 
但是把信息全部表示成字符串,尤其是这样一个长字符串的时候,如果想从里面提取信息或者执行一些操作就比较麻烦了,例如要比较两个人的身高,需要分别从两个人的信息中取出身高信息(我们人来取比较简单,但是程序获取就比较难了),然后比较。所以我们要把它分解成更小的单元并且需要对描述方式进行约束。上面的信息可以转换为多条:
身高:中等                    height = middle 或者 height=170
眼睛:比较小                  eyes = little
头发:比较长                  hair = long
下颚是否有痣:是              hasZhi = true
这时候身高还可以用数字表示。如果使用数字表示,可以表示为 170 ,也可以表示为 1.7 ,因为单位不一样。这时候我们可以添加注释来告诉用户,例如输入的时候,可以提示用户单位是米还是厘米,输出的时候数字的后面加上单位。这就是如何把我们信息转换为编程语言,如何把编程语言中的信息转换为自然语言。
 
为了让 Java 语言来表示这些基本信息,首先要知道现实世界中的基本信息有哪些类型。简单的分可以分为:字符串、数字、日期和真假。关于日期在以后的内容中介绍。下面介绍在 Java 中这些信息类型的表示。
字符串
Java 中使用 java.lang.String 来表示字符串,注意 String 不属于基本的数据类型,但是字符串比较特殊,特殊性在“字符串的使用”中介绍。
Java 中提供的与字符串相关的是字符类型,表示为 char 。分为常量和变量。
字符常量
字符通常使用单引号括起来,例如:
字符“ a ”可以表示为: ’a’
字符“ 1 ”可以表示为: ’1’
注意大写的 A 和小写的 a 表示两个不同的字符。
有些比较特殊的字符,例如换行符没有办法直接表示,需要使用转义字符,格式为反斜杠加上特殊字符,例如换行可以表示为 ’/r’ 。下面 Java 中的转义字符:
/n 回车 (/u000a)  
/t 水平制表符 (/u0009)  
/b 空格 (/u0008)  
/r 换行 (/u000d)  
/f 换页 (/u000c)  
/' 单引号 (/u0027)  
/" 双引号 (/u0022)  
// 反斜杠 (/u005c)  
/ddd 三位八进制   
/udddd 四位十六进制  
字符变量
常量在程序中可以表示基本的字符信息,但是不能说明它的含义,例如要表示衣服的类型为 a ,直接写成 a 并不能表示它是衣服的类型。另外整个信息可能会发生变化,所以为了表示字符的含义,需要使用变量。例如衣服的类型为 a ,可以表示为:
type = ‘a’
其中, type 表示衣服的类型,等号表示“是”,是对变量的赋值。在声明这个变量的时候需要给出类型,所以通常会写成:
   char type=’a’
在 Java 中,这就是一个语句,每个语句要用分号结束,所以应该写成:
   char type=’a’;
注意:分号和引号都应该说英文的,否则会报错:无效字符
也可以把变量的声明和赋值分开写,例如:
    char type;
type=’a’;
char 表示字符类型,是语法规定的,必须这样写。 type 是用户指定的名字,是一种标识符,标识符应该按照一定的命名规则来写。
标识符的命名规则
    标识符的命名规则如下:
l  首字符必须是字母(大小写)、下划线_或美元符 $ ;
l  后面的字母除了可以使用以上字符外,还可以使用数字;
l  标识符不能使用系统保留的关键字。
系统的关键字如下:

abstractcontinuefornewswitch
assert***defaultgoto*packagesynchronized
booleandoifprivatethis
breakdoubleimplementsprotectedthrow
byteelseimportpublicthrows
caseenum****instanceofreturntransient
catchextendsintshorttry
charfinalinterfacestaticvoid
classfinallylongstrictfp**volatile
const*floatnativesuperwhile

* not used
** added in 1.2
*** added in 1.4
**** added in 5.0

下面的标识符识正确的:
height
input1
$value
time_12
下面的标识符不正确:
1value
value#
try
思考:为什么不正确?
在定义变量的时候还应该有一些编码习惯问题:
l  变量首字母小写;
l  多个单词组成的变量,后面的单词首字母大写;
l  变量名应该尽量有意义。
这些不是命名规范,但应该遵循。
真假
通常称为布尔值,类型名字为 boolean 。有两个常量, true 和 false ,分别表示真和假,或者是和否。
例如表示某个信息是否有效,可以使用 boolean 类型表示:
boolean validate;
validate=true;
validate=false;
数字
数字分为整数和浮点数。整数又分为 byte short int long 。浮点数又分为 float 和 double 。区别在于表示的范围不同。
byte 占用一个字节,表示的范围 -128 ~ 127 ,表示 28 个数字,从 -27 到 27-1 。可以通过下面的方法得到最大值和最小值: Byte. MAX_VALUE 和 Byte.MIN_VALUE 。
short 占两个字节, int 占 4 个字节, long 占 8 个字节, float 占 4 个字节, double 占 8 个字节。
 
整数类型的常量直接使用数字表示即可。例如 20 , 23 , -30 。
double 类型的常用可以直接使用数字,例如 32323 , 3334.33 。
float 类型的常量,如果不包含小数部分,可以直接写数字,如果包含小数部分,需要在后面使用 f 表示,例如 232323 , 23.33f ,如果不写 f ,系统会认为这是一个 double 类型,在赋值的时候会出错。例如下面的代码:
float radius=32.3;
在编译的时候,会出错,应该写成:
float radius = 32.3f;
 
注意:浮点数在计算机中存储的时候可能不是这个数字本身,因为在计算机中使用二进表示, 32.3 转换成二进制是多少呢?
基本数据类型的封装类型
byte 、 short 、 int 、 long 、 float 、 double 、 char 和 boolean 是 Java 提供的 8 种基本数据类型。为了让这些基本数据类型与 Java 中的类和对象的概念一致, Java 提供了这些基本数据类型的封装类型。基本数据类型只表示信息,没有处理功能,而封装类型除了表示信息之外,还提供了一些对信息进行处理的方法
对应关系如下:
byte      Byte
short     Short
int       Integer
long      Long
float      Float
double    Double
char      Character
boolean   Boolean
 
可以把基本数据类型转换为封装类型,也可以把封装类型转换为基本数据类型,下面以 int 与 Integer 之间的转换为例。
int height=170; // 声明整型变量并赋值
Integer height2=new Integer(height); // 转换成封装类型
Height = height2.intValue(); // 转换成基本数据类型
在 Java5 之后,可以直接写:
int height=170; // 声明整型变量并赋值
Integer height2=height; // 转换成封装类型
Height = height2; // 转换成基本数据类型
系统完成自动转换。
 
本次内容需要记住:
l  8 种基本数据类型;
l  标识符的命名规则;
l  变量的定义与赋值;
l  8 种基本数据类型的常量;
l  基本数据类型与封装类型。
 
下次介绍基本数据处理,主要是各种运算符的使用。
李绪成 优快云 Blog : http://blog.youkuaiyun.com/javaeeteacher

 

Java多线程基础(创建、使用,状态)——Java第九讲 本文主要讲解了Java多线程创建、使用,状态,多线程的创建包括实现Runnable接口和继承Thread类,以及线程的生命周期包括新建、就绪、运行、阻塞和死亡等状态。 阅读详情

相关推荐

《Java编程十五讲》第九讲:IO和NIO

第九讲 IO和NIO 一个完备的语言可以自成体系,并不需要与外部文件打交道,不过这种说法只是理论上的,实际上任何一个语言都需要与外部文件进行数据交换。一个不能与外部进行任何交换的系统似乎用处不大,一个封闭的单细胞怕是生存不下来,广而言之,“闭关锁国”真是要不得啊。 Java一生下来就有了对I/O的支持,后来在Java 1.4版本中增加了一套平行的API,即NIO,这些新的API都是为了提高性能而设计的。在Java 7之后又有了NIO2,改进了File操作,对所有文件系统提供了统一的支持。 在具体看程序之前,

人邮异步社区 553

java基础第九讲

异常、日志

m0_56528635的博客 629

一种解决STM32多串口同时收发的方法

在做项目中,遇到了同时调用串口通信时程序崩溃的问题,在项目中,串口1用作调试串口,串口2用作MQTT通信串口,串口3用作下位机通信串口, 串口1重定向以后,用库函数自带的printf函数打印字符串 串口2使用自己写的u2_printf函数,即va_list这套变参宏定义后使用vsprintf函数打印字符串 串口3刚开始使用串口2一样的打印方式,程序在调试调用到串口3打印函数时直接崩溃,后续将串口3改用dma转存输出,仍然无法正常调用 多次研究以后,采用三个串口都使用重定向后的库函数自带的printf

Zxp0605的博客 8797

【Java基础】第九讲 JavaBean和RMI

【课前思考】  1. 什么是JavaBean?  2. JavaBean和Java有什么关系?  3. JavaBean会有什么样的用途?  4. 什么是RMI?  5. RMI技术会有什么样的特点?  6. 什么是EJB?  7. EJB和JavaBean又有什么样的关系?9.1 JavaBean的基本概念9.1.1 JavaBean产生的背景介绍软件组件就是指可以进行独立分离、易于重复

shark's BLOG 1521

模拟退火算法详细讲解(含实例python代码)

模拟退火算法详细讲解(含实例python代码)(一)模拟退火算法简介三级目录(二)模拟退火算法原理(1)基本思想(2)算法步骤(3)参数控制(三)实例分析 最近老师要求做模拟退火算法实验,看了很多博客之后感觉还是不太清楚,最后问了老师之后才搞明白。想把自己的理解写下来,帮助大家更好的理解。本篇文章是在另一篇博客的基础上加了一下自己的理解,然后又把我们在实验中的实例写下来,还有参考代码。希望大家看了之后能够加深对模拟退火算法的理解。 另一篇博客链接: 深度学习 — 模拟退火算法详解. (一)模拟退火算法简介

weixin_48241292的博客 17万+

大模型LLM部署方式

建议根据实际需求选择方案,企业级服务优先考虑vLLM或TGI,个人用户可尝试Ollama或Hugging Face本地加载。若需完整代码示例,可参考网页2的VLLM实战或网页5的TGI部署案例。:高并发、低延迟的API服务,需分布式推理支持。:快速创建可分享的Web应用。:个人开发、快速原型验证。

u010249118的博客 518

第九讲 Java集合

比较适合于元素的查找和遍历的场合。二是利用Map的entrySet()方法,将整个Map转换为Set集合,Set集合中的每一个元素包含有一对键和值的整体数据,然后利用Iterator去迭代每个元素,从每个元素中取出相应的键和值。Map接口是一种双列集合,它的每个元素都是一个键值对的组合,键(Key)和值(Value)之间存在一种对应关系,称为映射。HashMap底层是由哈希表结构组成的,其实是“数组+链表”的组合体,数组是HashMap的主体结构,链表主要是为了解决哈希冲突而存在的分支结构。

2301_76272808的博客 1257

Vivado新手必看:5分钟搞定FPGA程序固化到Flash(附MCS文件生成全流程)

本文为FPGA新手详细解析了如何将程序固化到Flash存储器的完整流程。核心在于理解SRAM工艺FPGA断电易失的特性,并利用Vivado工具将比特流文件转换为Flash可识别的MCS文件。文章重点拆解了生成MCS文件的关键配置步骤、硬件连接要点,以及通过JTAG烧写Flash的实战操作,并提供了常见启动失败问题的排查清单,帮助开发者实现设计从调试到产品部署的关键跨越。

weixin_29230901的博客 356

第九讲 - Java面向对象

深入探索Java世界,领略编程之美。从基础语法到高级特性,从实战案例到性能优化,《Java后端学习路线》专栏带你领略编程的无穷魅力。无论你是初学者还是资深开发者,这里都有适合你的精彩内容。让我们一起在Java的世界里,书写代码的传奇! 欢迎大家支持订阅本专栏,后续内容更加精彩。

智潮先锋聚集地 704

YOLO26改进策略【Neck】| CVPR2025 LCA轻量交叉注意力 跨层级双向引导 + 分层降噪增强,提升微小目标特征表达

简单相加、拼接融合无法建立深浅层双向约束关系,浅层微小目标易被深层背景覆盖,深层全局信息难以修正浅层噪声;普通单路自注意力仅单一层内建模依赖,缺少跨层级特征互引导机制,深浅特征信息割裂;标准多头跨注意力计算量大、参数量高,轻量化单模态检测/分割网络部署困难,无法区分前景目标与背景噪声。为此设计单模态轻量化交叉注意力LCA,构建浅层细节、深层语义双分支双向引导结构,轻量完成跨层级特征交互,同步降噪并强化单模态微小目标特征。

Limiiiing的博客 523

EndNote X9 参考文献附录列表 格式调整

EndNote X9 插入参考文献常见问题总结

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2570

零基础入门学习java第九节:Java中的那个大数值

零基础入门学习java第九节:Java中的那个大数值 什么是大数值?用脚趾头想也知道,当然是“大”的数值(233)。Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以表示任意长度,任意精度,想要多大,就能有多大。 为什么要用大数值?理由很简单,当整数跟浮点数的精度不能满足要求时,就需要用更大或者精度更高的类型,这时候大数...

tzllxya的博客 246

【2025软考高级架构师】基础知识部分——6、软件架构设计

(1)架构是对系统的抽象(2)架构由多个结构组成(3)任何软件都存在架构(4)元素及其行为的集合构成架构的内容(5)架构具有“基础”性(6)架构隐含有“决策”

qq837993702的博客 1万+

《Java语言程序设计与数据结构》编程练习答案(第九章)

《Java语言程序设计与数据结构》编程练习答案(第九章) 英文名:Introduction to Java Programming and Data Structure, Comprehensive Version, 11th Edition 9.1 public class book { public static void main(String[] args) { ...

SWY's Workshop 1万+

【数据集】中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

WW、forever的博客 2600

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java基本数据类型只有八种?第九种告诉你

今天看了一下Oracle官网的JVM规范,发现基本数据不止有八种。这个东西一直都是说着八种,官网把放在八种基本数据类型一起说的,我们可以理解为第九种!常说的八种用于存储常见的数值和字符数据,第九种是指向 Java 虚拟机指令的操作码的指针,属于内部使用的!说的时候一般忽略,小编这里把它作为第九种不知道合不合适,欢迎讨论哈!结论咱们都说的差不多了,下面我们一起来看看定义和文档吧!Oracle JVM规范1.8文档byteshortintlongcharfloatdoubleboolean。

小王博客基地 218

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

第九讲

Java语言基础第九讲一.多态的概述及其代码体现 多态(polymorphic)概述 事物存在的多种形态. 多态的前提:要有继承关系; 要有方法重写; 要有父类引用指向子类对象.//代码体现多态 class Demo1_Polymorphic { public static void main(String[] args) { Cat c = new Cat();

duanbozhi的博客 372

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java第九章简答题5

Java第九章简答题5 import java.util.Scanner; public class D9zjdt5 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int mima = 0;// 密码 int jine = 0;// 金额 int a = 0...

qq_45155377的博客 625

Java第十版第九章习题全部答案

##Java第十版第九章全部答案(自己在学的时候写的) 第一题 package demo; public class Exercise9_1矩形类Rectangle { public static void main(String[] args) { /* * 两个名为width和height的数据域,默认值是1 * 创建默认矩形的无参构造方法 * 一个创建width和height为...

weixin_46004363的博客 1301

Java SE 第九讲(面向对象之封装)

Java SE 第九讲 1. 面向对象程序设计的三大基本特征:继承(Inheritence)、封装(Encapsulation)、多态(Polymorphism) 2. 封装:类包含了数据与方法,将数据与方法放在一个类中就构成了封装。 3. 如何定义类? 修饰符 class 类的名字 { //类的内容(包含了属性与方法) } 4. 方法。如何定义方法? 修饰符 返回类型 方法名称

Andy_Hanna的专栏 480

【java技术面试第九讲】Java面试题09.讲一下java中的集合

Java面试题09 : java中的集合好啦!今天的文章就给看官们分享到这儿如果觉得有帮助,记得关注、转发、收藏哟~提前预告,完全免费,没有任何套路,写文不易: 如果喜欢、对你有所帮助还...

hello world! 453

Java Web基础:第九讲 Web应用配置

李绪成的一亩三分地 1609

咱们一起学 Java(第九篇)

大家好!我写博客的目的就是想和大家携手共进,在Java编程的道路上越走越远。之前我们已经学习了Java基本程序结构中的诸多内容,包括变量、数据类型、运算符、字符串、输入以及格式化输出等。今天,我们将继续探索Java基本程序结构中的文件输入输出和控制流程相关知识,这会让我们的程序功能更加丰富和强大。

wj_rdk的博客 1817

第九周java学习总结

很久没有更博了~ 可能是自己感觉对java的学习越来越吃力了吧,然后就用生活学习上的一些琐事拿来当我没有更博的理由,未免显得太过冠冕堂皇了,但是转眼就是新的一个月了,应该给自己划上一个新的起点吧!哈哈所以到这里,我已经将接下来要狂补学习总结的想法暴露无疑咯凭借课堂的分组记忆+讲课笔记,接下来我将回忆第九周java的学习咯 -----------------此处作为闲聊分割-------------...

gettingi的博客 621

Java基础教程,第九讲,方法重载

前面已经学习了编写简单的构造器, 可以用于初始化对象。但是, 由于对象构造非 常重要, 所以 Java 提供了多种编写构造器的机制 。下面将详细地介绍这些机制 。 学完此次课程,我能做什么? 通过本次课程学习我们将了解Java面向对象编程又一重要特性,方法重载。 学习此次课程,需要多久? 5分钟 课程内容 重载 定义:如果一个类中,有多个相同的方法名,不同的参数,就是重载。执行哪个方法取决于...

程序员补给栈 258

面试 Java 基础八股文十问十答第九期

面试必备八股文!内容包含:Java基础、Java框架、Git命令、JVM、多线程、消息队列、微服务、Linux、数据库、Redis缓存、算法、Vue、React、前端性能优化等八股文。

qq_67358181的博客 947
上一篇: JTA
下一篇: 答学生问:感觉学习了很多东西,但是做项目的时候不知道从哪
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值