变量与数据类型 java基础03

布满荆棘的人生 2022-12-25 07:56 324阅读 0赞

1. 关键字

关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字。和其它语言一样,Java中保留了许多关键字,例如,class、public等,下面列举的是Java中所有的关键字。

1.1 关键字概述

被Java语言赋予特定含义的单词

1.2 关键字特点

组成关键字的字母全部小写

1.3 关键字注意事项

  • goto和const作为保留字存在,目前并不使用
  • 类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

format_png

用于定义数据类型的关键字

format_png 1

用于定义访问权限修饰符的关键字

2. 标识符

2.1 标识符概述

就是给类,接口,方法,变量等起名字时使用的字符序列

2.2 组成规则

由英文大小写字母、数字字符、$(美元符号)、_(下划线)组成

2.3 注意事项

  • 不能以数字开头
  • 不能是Java中的关键字
  • 区分大小写

2.4 标识符常见命名规则:见名知意

2.4.1 包

其实就是文件夹,用于把相同的类名进行区分,全部小写,单级:liuyi,多级:cn.itcast

为了便于对硬盘上的文件进行管理,通常都会将文件分目录进行存放。同理,在程序开发中,也需要将编写的类在项目中分目录存放,以便于文件管理。为此,Java引入了包(package)机制,程序可以通过声明包的方式对Java类定义目录。

Java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中。在声明包时,使用package语句,具体示例如下:

  1. package cn.itcast.chapter01; // 使用package关键字声明包
  2. public class Example01{…}

需要注意的是,包的声明只能位于Java源文件的第一行。

在实际程序开发过程中,定义的类都是含有包名的,如果没有显式地声明package语句,创建的类则处于默认包下,在实际开发中,这种情况是不应该出现的,本教材的示例代码主要展现的是功能部分的代码,所以在大多数示例代码中没有为示例指定包名,但是在提供的源码中,都已使用包名。

在开发时,一个项目中可能会使用很多包,当一个包中的类需要调用另一个包中的类时,就需要使用import关键字引入需要的类。使用import可以在程序中一次导入某个指定包下的类,这样就不必在每次用到该类时都书写完整类名,简化了代码量。使用import关键字的具体格式如下所示:

  1. import 包名.类名;

需要注意的是,import通常出现在package语句之后,类定义之前。如果有时候需要用到一个包中的许多类,则可以使用 import 包名.*; 来导入该包下所有类。

在JDK中,不同功能的类都放在不同的包中,其中Java的核心类主要放在java包及其子包下,Java扩展的大部分类都放在javax包及其子包下。为了便于后面的学习,接下来简单介绍Java语言中的常用包。

  • java.util:包含Java中大量工具类、集合类等,例如Arrays、List、Set等。
  • java.net:包含Java网络编程相关的类和接口。
  • java.io:包含了Java输入、输出有关的类和接口。
  • java.awt:包含用于构建图形界面(GUI)的相关类和接口。

除了上面提到的常用包,JDK中还有很多其它的包,比如数据库编程的java.sql包,编写GUI的javax.swing包等等,JDK中所有包中的类构成了Java类库。在以后的章节中,这些包中的类和接口将逐渐介绍,这里只需要有个大致印象即可。

2.4.2 类或者接口

一个单词:单词的首字母必须大写,举例:Student,Dog
多个单词:每个单词的首字母必须大写举例:HelloWorld,StudentName

2.4.3 方法和变量

一个单词:单词的首字母小写,举例:main,age
多个单词:从第二个单词开始,每个单词的首字母大写,举例:studentAge,showAllNames()

2.4.4 常量

一个单词:全部大写,举例:PI
多个单词:每个字母都大写,用_隔开,举例:STUDENT_MAX_AGE

3. 注释

3.1 注释概述

用于解释说明程序的文字

3.2 Java中注释分类格式

  • 单行注释,格式://注释文字
  • 多行注释,格式:/* 注释文字 */
  • 文档注释,格式:/** 注释文字 */

    /*

    1. 注释:用于解释说明程序的文字
    2. Java中注释的分类及格式
    3. 单行注释://
    4. 多行注释:/星 星/
    5. 注意:多行不可以嵌套使用,而单行是可以的
    6. 文档注释:被javadoc工具解析生成一个说明书,面向对象部分讲解。

    */

    //这是我的注释案例
    class ZhuShiDemo {

    1. //main方法是主方法
    2. //是程序的入口
    3. //被jvm调用
    4. public static void main(String[] args) {
    5. System.out.println("好好学习,天天向上");
    6. }

    }

  • 对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行

  • 对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档
  • 注释是一个程序员必须要具有的良好编程习惯
  • 初学者编写程序可以养成习惯:先写注释再写代码
  • 将自己的思想通过注释先整理出来,在用代码去体现
  • 因为代码仅仅是思想的一种体现形式而已

    /*

    1. 需求:我准备写一个java程序,把"HelloWorld"这句话输出在控制台
    2. 分析:
    3. A:要写一个Java程序,必须定义类
    4. B:把数据能够输出,说明我们的程序是可以独立运行的,而程序要独立运行,必须定义main方法
    5. C:把数据输出在控制台,必须使用输出语句
    6. 实现:
    7. A:java语言提供了一个关键字:class用来定义类,后面跟的是类名
    8. B:main方法的格式是固定的:
    9. public static void main(String[] args) {
    10. }
    11. C:输出语句的格式是固定的:
    12. System.out.println("HelloWorld");
    13. "HelloWorld"这个内容是可以改变的

    */

    //这是我的HelloWorld案例
    class HelloWorld {

    1. /*
    2. 为了程序能够独立运行,定义main方法
    3. main方法是程序的入口
    4. 被jvm自动调用
    5. */
    6. public static void main(String[] args) {
    7. //为了把数据显示在控制台,我们就使用了输出语句
    8. System.out.println("HelloWorld");
    9. }

    }

4. 常量

4.1 常量概述

在程序执行的过程中其值不可以发生改变

4.2 Java中常量分类

4.2.1 字面值常量

  • 字符串常量:用双引号括起来的内容,举例:“hello”,“world”
  • 整数常量:所有整数,举例:12,23
  • 小数常量:所有小数,举例:12.34,56.78
  • 字符常量:用单引号括起来的内容,举例:‘a’,’A’,’0’
  • 布尔常量,较为特有,举例:true,false
  • 空常量,举例:null

4.2.2 自定义常量

  1. /*
  2. 常量:
  3. 在程序执行过程中,其值不发生改变的量。
  4. 分类:
  5. A:字面值常量
  6. B:自定义常量(后面讲)
  7. 字面值常量
  8. A:字符串常量 用双引号括起来的内容。
  9. 举例:"hello","world","HelloWorld"
  10. B:整数常量 所有的整数
  11. 举例:100,200
  12. C:小数常量 所有的小数
  13. 举例:10.23,110.11
  14. D:字符常量 用单引号括起来的内容
  15. 举例:'a','A','0'
  16. 错误的:'ab'
  17. E:布尔常量 比较特殊
  18. 举例:true,false
  19. F:空常量 后面讲
  20. 举例:null
  21. */
  22. class ConstantDemo {
  23. public static void main(String[] args) {
  24. //字符串常量的输出
  25. System.out.println("hello");
  26. //整数常量的输出
  27. System.out.println(100);
  28. //小数常量的输出
  29. System.out.println(100.10);
  30. //字符常量的输出
  31. System.out.println('a');
  32. System.out.println('A');
  33. System.out.println('0');
  34. //这个是有问题的
  35. //System.out.println('ab');
  36. //布尔常量的输出
  37. System.out.println(true);
  38. System.out.println(false);
  39. }
  40. }

5. 变量

在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。

5.1 变量概述

在程序执行的过程中,在某个范围内其值可以发生改变的量,理解:如同数学中的未知数

5.2 变量定义格式

数据类型 变量名 = 初始化值;
注意:格式是固定的,记住格式,以不变应万变

5.3 变量的组成规则

format_png 2

1、从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。通过画图说明一个变量的组成部分

数据类型,变量名,变量值

2、为什么要定义变量呢?用来不断的存放同一类型的常量,并可以重复使用

6. 数据类型和类型转换

Java是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。

format_png 3

类型转换

6.1 数据类型

6.1.1 Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间

6.1.2 所谓有效数字:具体地说,是指在分析工作中实际能够测量到的数字。所谓能够测量到的是包括最后一位估计的,不确定的数字。对于一个近似数,从左边第一个不是0的数字起,到精确到的位数止,所有的数字都叫做这个数的有效数字。

6.1.3 Java 各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。

  • Java语言的整型常量默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ ,如:

    int i1 = 600; //正确 long l1 = 88888888888L; //必须加l否则会出错

  • - 与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响。

    Java浮点类型常量有两种表示形式,十进制数形式,如: 3.14 314.0

  • Java 浮点型常量默认为 double型,如要声明一个常量为 float 型,则需在数字后面加 f 或 F ,如:
    java<br />double d = 12345.6; //正确 <br />float f = 12.3f; //必须加f否则会出错<br />
  • char* 型数据用来表示通常意义上的“字符”

    • 字符常量为用单引号括起来的单个字符,例如:char ch1= ‘a’; char ch2=’中’;
    • Java字符采用 Unicode 编码,每个字符占两个字节,因而可用十六进制编码形式表示。
    • 注:Unicode是全球语言统一编码
  • boolean类型

    • boolean 类型适于逻辑运算,一般用于程序流程控制 。
    • boolean 类型数据只允许取值 true 或 false ,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。
  • 数据类型

    • 基本数据类型:整型byte、short、int、long,浮点型float、double,字符型char,布尔型boolean
    • 引用数据类型:类class、接口interface、数组[]

format_png 4format_png 5

  1. /*
  2. 数据类型:Java是一种强类型的语言,针对每一种数据都定义了明确的数据类型。
  3. 数据类型分类:
  4. A:基本数据类型
  5. B:引用数据类型(类,接口,数值)
  6. 基本数据类型:4类8种
  7. A:整数 占用字节数
  8. byte 1
  9. short 2
  10. int 4
  11. long 8
  12. B:浮点数
  13. float 4
  14. double 8
  15. C:字符
  16. char 2
  17. D:布尔
  18. boolean 1
  19. 注意:
  20. 整数默认是int类型
  21. 浮点数默认是double类型。
  22. 长整型后缀用L或者l标记。建议使用L。
  23. 单精度浮点数用F或者f标记。建议使用F。
  24. */
  25. class DataTypeDemo {
  26. public static void main(String[] args) {
  27. //定义变量的格式:
  28. //数据类型 变量名 = 初始化值;
  29. //定义一个字节变量
  30. byte b = 10;
  31. System.out.println(10);
  32. System.out.println(b);
  33. //定义一个短整型变量
  34. short s = 100;
  35. System.out.println(s);
  36. //定义一个整型变量
  37. int i = 1000;
  38. System.out.println(i);
  39. //超过了int的范围
  40. //int j = 1000000000000;
  41. long j = 1000000000000L;
  42. //long j = 100L;
  43. System.out.println(j);
  44. //定义浮点数据变量
  45. float f = 12.345F;
  46. System.out.println(f);
  47. double d = 12.345;
  48. System.out.println(d);
  49. //定义字符变量
  50. char ch = 'a';
  51. System.out.println(ch);
  52. //定义布尔变量
  53. boolean flag = true;
  54. System.out.println(flag);
  55. }
  56. }

运行结果:

format_png 6

6.1.4 使用变量的时候要注意的问题:

A:作用域
变量定义在哪个大括号内,它就在这个大括号内有效。
并且,在同一个大括号内不能同时定义同名的变量。

B:初始化值
没有初始化值的变量不能直接使用。
你只要在使用前给值就行,不一定非要在定义的时候立即给值。
推荐在定义的时候给值。

定义变量的格式:
a:数据类型 变量名 = 初始化值;
b:数据类型 变量名;
变量名 = 初始化值;

C:在一行上建议只定义一个变量
可以定义多个,但是不建议

6.2 类型转换

当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。

根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。

6.2.2 默认转换(从小到大的转换)

自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。

要实现自动类型转换,必须同时满足两个条件,

  • 第一是两种数据类型彼此兼容,
  • 第二是目标类型的取值范围大于源类型的取值范围。

(1)整数类型之间可以实现转换,如byte类型的数据可以赋值给short、int、long类型的变量,short、char类型的数据可以赋值给int、long类型的变量,int类型的数据可以赋值给long类型的变量
(2)整数类型转换为float类型,如byte、char、short、int类型的数据可以赋值给float类型的变量。
(3)其它类型转换为double类型,如byte、char、short、int、long、float类型的数据可以赋值给double类型的变量。

A:byte,short,char—int—long—float—double

B:byte,short,char相互之间不转换,他们参与运算首先转换为int类型

6.2.2 强制转换:

强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。

当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。

从大的数据类型到小的数据类型
格式:目标数据类型 变量 = (目标数据类型) (被转换的数据);
注意:不要随意的去使用强制转换,因为它隐含了精度损失问题

  1. /*
  2. 面试题:
  3. byte b1=3,b2=4,b;
  4. b=b1+b2;
  5. b=3+4;
  6. 哪句是编译失败的呢?为什么呢?
  7. b = b1 + b2;是有问题的。
  8. 因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
  9. 常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。
  10. */
  11. class DataTypeDemo6 {
  12. public static void main(String[] args) {
  13. //定义了三个byte类型的变量,b1,b2,b3
  14. //b1的值是3,b2的值是4,b没有值
  15. byte b1 = 3,b2 = 4,b;
  16. //b = b1 + b2; //这个是类型提升,所有有问题
  17. b = 3 + 4; //常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错。
  18. }
  19. }

1、在定义Long或者Float类型变量的时候,要加L或者f。

  • 整数默认是int类型,浮点数默认是double。
  • byte,short在定义的时候,他们接收的其实是一个int类型的值。
  • 这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。

2、byte值的问题

  1. byte b1 = 127;
  2. byte b2 = (byte)128; //-128
  3. byte b3 = (byte)129; //-127
  4. byte b4 = (byte)130; //-126
  5. byte的范围:-128 ~ 127
  6. 12810000000
  7. -12810000000 (这里的1即是符号位,也是数值位)

3、数据类型转换之默认转换
byte,short,char — int — long — float — double
long:8个字节
float:4个字节
A:它们底层的存储结构不同
B:float表示的数据范围比long的范围要大
long:2^63-1
float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

4、Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
可以。因为java语言中的字符占用两个字节。Java语言采用的是Unicode编码。

参考地址:https://github.com/JackChan1999/Java\_Basic\_Introduction

更多好文

java精品入门-0基础第一篇

JDK、JRE、JVM的区别与联系

*亲,需要你的“分享”和“在看”*








IT入门 感谢关注

程序员题库→

程序员用的单词表→

练习地址:http://520mg.com/it/#/main/397

发表评论

表情:
评论列表 (有 0 条评论,324人围观)

还没有评论,来说两句吧...

相关阅读