05 变量、常量、数据类型 v1.0

本贴最后更新于 2861 天前,其中的信息可能已经时移俗易

1.关键字

-- 计算机语言里事先定义的,有特别意义的标识符,有时又叫保留字

Java 中的关键字

--对 Java 的编译器有特殊的意义,用来表示数据类型、程序结构等

--关键字不能用作变量名、方法名、类名、包名和参数。

数据类型:

boolean int long short byte float double char class interface

流程控制:

if else do while for switch case default break continue return try catch finally

修饰符:

public protected private final void static strictfp abstract transient

synchronized volatile native

动作:

package import throw throws extends implements this super instanceof new

保留字:

true false null goto const

关键字的注意事项

-- 所有 Java 关键字都是小写的

-- goto 和 const 虽然从未使用,但是也被作为 Java 的关键字保留

-- true,false 用在特殊的用途,但是不是 Java 的关键字

2.使用变量的步骤:

第一步:声明变量,即“根据数据类型在内存申请空间”

数据类型 变量名;

例如:int money;

第二步:赋值,即“将数据存储至对应的内存空间”

变量名 = 数值;

例如:money = 1000 ;

第一步和第二步可以合并

数据类型 变量名 = 数值;

例如:int money = 1000;

第三步:使用变量,即“取出数据使用”

变量命名规范:

简短且能清楚地表明变量的作用(见名之意),通常第一个单词的首字母小写,其后单词的首字母大写。

例如:myScore

字符串 String 类型变量的值是以双引号引起来的,字符 char 类型的值是单引号引起来的。

3.常量:

--代表程序运行过程中不能改变的值

作用:

--代表常数,便于程序的修改(例如:圆周率的值)

--增强程序的可读性

(例如:常量 UP、DOWN、LEFT 和 RIGHT 分 别代表上下左右,其数值分别是 1、2、3 和 4)

规范:

--常量名大写;多个单词全部大写,并以下划线分割,如 NAME, ROLE_NAME

声明常量并赋值:

final 数据类型 常量名称 = 值;

例如: final double PI = 3.1415926; //声明一个 double 常量并赋值

final String NAME = "JACK"; //声明一个 String 类型的常量并赋值

同时声明多个常量并赋值,多个常量之间以逗号 分隔

final 数据类型 常量名称 1 = 值 1, 常量名称 2 = 值 2,…常量名称 n = 值 n;

例如: //同时声明多个常量,以逗号分隔

final char MALE='M',FEMALE = 'F';

注意:Java 允许常量先声明后赋值;但是只能赋值一次

//常量只能赋值一次

final int num; //声明一个常量

num = 25; //首次给常量赋值

num =36; //再次给常量赋值则不允许的!

编辑器报错:The final local variable num may already have been assigned

4.java 分割符的种类

分号-“;”;逗号-“,”;空格-“ ”;圆点-“.”;花括号-“{}”

Java 分割符的作用

分号:语句必须以分号作为结束标记,for 循环中使用分号来分割不同的成份

逗号:用于方法中多个参数列表的分割,或者用于声明语句中同时声明多个属性或局部变量时起分割作用

空格或换行:Java 代码中各个组成部分之间可以插入任意数量的空格或换行---格式化代码

圆点:用于访问对象成员(属性或方法)标明调用或者隶属关系,其格式为“对象名.对象成员”

花括号:用于构造语句块---语句块

5.标识符

Java 所有的组成部分都需要有名字,为各种变量、常量、方法、类、接口等起的名字称为标识符(起别名)

标示符的命名规则

应以字母、下划线、美元符号开头(a-z/A-Z、_、$)

后跟字母、下划线、美元符号或数字

标示符的大小写敏感

标示符不能与关键字、保留字重名

见名之意。

  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary

6.数据类型

一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称

按照对数据类型的使用和约束程度来划分

强类型语言(Strong Typed languages) ----典型代表 Java 语言

每个变量都要有确定的类型

变量要先声明后使用

弱类型语言(Weakly Typed languages) ----典型代表 JavaScript

每个变量的类型是可以变化的

变量可以不声明就使用

5.Java 数据类型图示:

public final class String-----说明字符串是属于引用类型的 class!

6.基本类型

Java 中的基本类型的变量不是对象,它只能保存单一的值被称为原始类型、或简单类型

Java 中四类/八种基本数据类型

整数型:byte short int long

浮点型:float double

字符型:char

布尔型:boolean

7.整数型

用于保存整数信息,java 提供了四种不同的整数类型,各有固定的表示范围和字段长度,不受具体操作系统的影响,以保证 Java 的可移植性

类型说明表

| 类型 | 占有存储空间 | 表示范围 |
| byte | 1 字节 | -128—127 |
| short | 2 字节 | -215—215-1 |
| int | 4 字节 | -231—231-1 |
| long | 8 字节 | -263—263-1 |

整数型字面量表示形式

-十进制:如:78,-65,0

-八进制:以 0 开头。如 023

-十六进制:以 0x 或 0X 开头。如 0x35

-默认的整数型字面量为 int 类型,声明为 long 类型可以在字面量后面加 l 或者 L,建议使用大写的 L 避免引起误解。

8.浮点型

包括 float 和 double 两种类型,分别用于保存单精度和双精度的浮点数

类型说明表

| 类型 | 占有存储空间 | 表示范围 |
| float | 4 字节 | -3.403E38—3.403E38 |
| double | 8 字节 | -1.798E308—1.798E308 |

浮点型字面量表示形式

-十进制:必须有小数点,也可以采用科学计数法表示。如:5.75,8.54e5,0.34e-8

-十六进制:从 JDK5.0 开始引入,十六进制浮点数只能采用科学计数法表示。

如:0x3.6p5=(3160+616-1)*25

-默认的浮点型字面量为 double 类型,声明为 float 类型可以在字面量后面加 f 或 F

9.字符型

char 类型用来表示字符类型,Java 语言采用 16 位 Unicode 编码保存字符

字符型字面量的表示形式

1、使用单引号括起来的单个字符。如:char ch=‘b’;

2、使用 16 进制的 Unicode 编码形式表示。如:char ch=“\u0045”;

3、使用转义字符”\”来将其后面的字符转换位其他的含义。

如:char ch=“\n”

10.布尔型

-逻辑运算和程序流程控制中用来表示两种状态的逻辑值,代表特定条件的成立与否

布尔型字面量的表示形式

-只允许两个值 true 和 false,不能用 0 和非 0 来替代 true 和 false

11.类型转换

将数值从一种类型转换为另一种类型的操作,我们称为类型转换

自动类型转换---小范围向大范围转没有问题

-与上图中箭头指向相同的数值类型转换会在表达式中自动完成

short price2 = (short)236;

//基本数据类型转换,小 short 转大 long,直接自动转换

long testlong;

testlong = price2;

强制类型转换---大范围向小范围转换可能会造成丢失精度甚至是错误

-与上图中箭头指向相反方向的数值类型转换需要强制进行,强制类型转换一般会造成数值的精度损失。

-强制类型转换语法格式: (目标数据类型)< 表达式 >

int money = 1000; // 声明并赋值

//基本数据类型转换,大 int 转小 short 需要强制转换

short price;

price = (short) money;

12.引用数据类型

Java 语言中出来 8 种基本数据类型以外,其他的数据类型统称位引用类型(Reference Type)。具体包括:类,接口,数组,枚举和注解类型

引用类型的数据:以对象的形式存在

引用类型的变量:它的值是某个对象的句柄/地址,而不是对象本身

声明引用类型变量时,系统只为该变量分配引用的空间,并未创建对象;

只有使用 new 运算符调用类的构造方法时才会创建对象,并返回该对象的句柄

13.一个引用类型的类,通常具有:

A.构造方法;----用于构造该类的一个实例对象;

B.成员属性;----用于描述该对象的特征、特点、特性等;

成员属性,又分为成员变量、成员常量;

C.成员方法;----用于体现该对象的行为、功能、作用等;

D.静态 static 的类层次的属性;

E.静态 static 的类层次的方法。

14.构造方法和普通方法的区别:

A.普通方法的方法名前面有返回数据类型的声明,构造方法没有;

B.构造方法的方法名和类名必须完全一致,不一致不是构造函数,有返回类型声明就不是构造方法;

C.构造方法没有返回数据类型的声明,却会返回类类型的一个实例对象;

15.变量(Variable) ---用于记录数值,并可以改变数值的数据

变量的组成:变量=变量名 + 变量值

变量名:用于标记一段特定的存储空间

变量值:以二进制的形式保存在存储空间中,且可以被访问和修改的数值

变量的分类

按变量所属的数据类型分类

基本类型

引用类型

按变量声明的位置分类

局部变量——方法或者语句块中声明的变量

成员变量——方法外部、类的内部声明的变量

16.变量的声明和初始化:

声明变量:Java 是强类型语言,变量必须先声明后使用。声明变量即为变量分配相应的存储空间

初始化变量:为内存中已经存在的变量赋于初始值

语法格式:[] [=defaultValue1][, [=defaultValue2]]…;

例如:public int age =18,hight=175;

[]中括号的内容表示可选的。

17.变量的作用域和生存期:

变量的作用域:变量的作用域也称为变量的作用范围,即一个变量在多大的范围内可以使用

成员变量:作用域与其所属对象的作用域相同

局部变量:作用域就是它所在的方法或语句块

变量的生存期:变量的生存期就是变量的生存时间,即变量从创建到销毁所经历的时间

成员变量:成员变量的生存期与其所属对象相同,随着对象的创建而创建,随着对象的销毁而销毁

局部变量:局部变量的生存期就是其所属方法或语句块的单次执行期间

18.变量的存储:

存储位置的分类

寄存器:寄存器在处理器的内部,空间最小,速度最快。寄存器根据系统的需要分配,程序员无法直接控制

栈:存储空间连续,以栈的方式进行管理容量小,访问速度快

堆:存储空间不连续,容量大,但是速度慢

程序代码内部:常量通常存储在程序代码内部,这样是安全的,因为它永远不会被改变。

外存储器:用于存储持久化数据

Java 中变量的存储

局部变量(基本类型、引用类型的句柄/引用)保存在栈内存中

对象及其成员变量(包含基本类型和引用类型)保存在堆内存中

19.java 数据存储:

20.方法:

方法

Java 语言中的方法相当于其他计算机语言中的函数或子程序,是用来完成相对独立的功能的一段代码的集合。

从类的角度来看,方法是类的动态性能描述了该类事务共有的功能或行为

语法规则

Java 的方法必须定义在类中,而不允许直接定义在源文件中

方法的定义不允许出现嵌套

只有方法所在的类的对象才有资格调用该方法

语法格式

[] return_type ([]){

[]

}

21.方法的四要素:----并不是全部必需的

返回类型(返回值)、形式参数、实际参数、方法体

返回类型

事先约定的返回值的数据类型。如果没有返回值,则返回类型定义为 void;定义构造方法时,则不允许给出返回值类型。

返回值

使用 return 关键字来返回值,return 的作用是终止方法的运行并返回其结果给调用它的环境。使用的格式是:return someValue;

如果方法的返回类型为 void,则可以省略 return;语句。编译时系统会自动添加该语句

形参和实参

形参:方法被调用时用于接受外界输入的数据

实参:调用方法时实际传给方法的数据

方法体

多条 Java 语句组成的语句块,用于完成特定的功能

22.方法的参数传递:

目前主流的说法是值传递和引用传递,

其中基本类型的传递为值传递,传递前后变量的值不变; ----即便在方法内部更改值,也只是在方法内部有效!

引用类型的传递为引用传递,传递前后变量(对象)的值会改变。----如果在方法中改变了对象的属性值,就真的改掉了!

23.方法形参和方法实参:

形参:用于方法定义时,需要明确参数的个数、顺序、参数的数据类型;

例如:public boolean display2(int height,int weight) {...}

实参:用于方法调用时,需要提供形参约定的参数个数及顺序。不需要在实参前面加数据类型,但是如果参数类型不一致,直接报错!例如:boolean result= person.display2(156, 150);

其他知识:

A.Eclipse 中显示包的方式,胖还是瘦;

B.Eclipse 中移动代码块,选中要移动的代码,按下 alt+ 上下方向键可以移动代码;

C.Eclipse 中文件修改没有保存的话,文件名称前有一个*星号;---Ctrl+s 保存

D.Eclipse 中 Alt+/ 可以手动触发提示;

D.改变 Git GUI 的文件编码显示的方式为 UTF-8,不修改则中文乱码;

Edit --Options

E.在 Git Bash 中:history 命令可以列出曾经执行过的命令;

F.拉取 GitHub 上的最新代码:

F1.打开从 Github 克隆而来的本地代码库;

F2.右键--Git Bash :

使用 git status 命令查看本地仓库的状态;

若本地仓库是干净的,使用 git pull 命令从 GitHub 上拉取代码到本地仓库;

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3201 引用 • 8216 回帖
  • 开发
    42 引用 • 159 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 1 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    79 引用 • 431 回帖 • 1 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    181 引用 • 408 回帖 • 486 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖 • 2 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 1 关注
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 764 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖 • 1 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    32 引用 • 108 回帖
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 93 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    239 引用 • 224 回帖
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 16 关注
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 28 回帖 • 1 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    58 引用 • 25 回帖 • 3 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    188 引用 • 319 回帖 • 251 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    24 引用 • 241 回帖
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 9 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1441 引用 • 10069 回帖 • 494 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 406 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 8 关注
  • 996
    13 引用 • 200 回帖 • 8 关注
  • 叶归
    8 引用 • 36 回帖 • 17 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 61 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖
  • abitmean

    有点意思就行了

    34 关注