首页 > 编程语言 >一些Java编程中的基本概念

一些Java编程中的基本概念

时间:2023-07-04 19:46:19浏览次数:43  
标签:操作数 Java 变量 编程 数据类型 运算符 类型 基本概念

介绍一些编程中的基本概念,比如:标识符、变量、常量、数据类型、运算符、基本数据类型的类型转换等。

二进制和十进制的转化

1.十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

2.二进制转十进制采用“权相加法”。

注释

在Java中根据注释的功能不同,主要分为单行注释、多行注释和文档注释。

单行注释:使用//开头。

多行注释:以/*开头以*/结尾。注意,多行注释不能嵌套使用。

文档注释:以/**开头以*/结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API)

标识符和关键字

标识符是用来给变量、类、方法以及包进行命名的。4大规则:

1.必须以字母、下划线_、美元符号$开头。

2.其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合。

3.大小写敏感,且长度无限制。

4.不可以是Java的关键字。

标识符的使用规范

1.表示类名的标识符:每个单词的首字母大写,如Man, GoodMan

2.表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写,我们称之为“驼峰原则”,如eat(), eatFood()

Java关键字是Java语言保留供内部使用的,如class用于定义类。 我们不能使用关键字作为变量名或方法名。

变量(variable)

1.变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。

2.可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。

3.Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。

4.不同数据类型的常量会在内存中分配不同的空间。

变量的分类和作用域

变量有三种类型:局部变量、成员变量(也称为实例变量)和静态变量。

局部变量(local variable):

1.方法或语句块内部定义的变量。

2.生命周期是从声明位置开始到到方法或语句块执行完毕为止。

3.局部变量在使用前必须先声明、初始化(赋初值)再使用。

成员变量(也叫实例变量 member variable):

1.方法外部、类的内部定义的变量。

2.从属于对象,生命周期伴随对象始终。

3.如果不自行初始化,它会自动初始化成该类型的默认初始值。

静态变量(类变量 static variable):

1.使用static定义。

2.从属于类,生命周期伴随类始终,从类加载到卸载。

3.如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值

常量(Constant)

在Java语言中,用关键字final来定义一个常量。常量一旦被初始化后不能再更改。

声明格式:final type varName = value;

为了更好的区分和表述,一般将1、2、3、’a’、’b’、true、false、helloWorld等称为字符常量,而使用final修饰的PI等称为符号常量。

基本数据类型(primitive data type)

Java数据类型分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。

整型

类型   占用存储空间   表数范围

byte   1字节       -27 ~ 27-1(-128~127)

short  2字节       -215 ~ 215-1 (-32768~32767)

int    4字节      -231 ~ 231-1 (-2147483648~2147483647) 约21亿

Long   8字节       -263 ~ 263-1

Java 语言整型常量的四种表示形式

1.十进制整数,如:99, -500, 0

2.八进制整数,要求以 0 开头,如:015

3.十六进制数,要求 0x 或 0X 开头,如:0x15

4.二进制数,要求0b或0B开头,如:0b01110011

【Java语言的整型常数默认为int型,声明long型常量可以后加l或L 。】

浮点型(Floating Point Number)

类型   占用存储空间   表数范围

float    4字节       -3.403E38~3.403E38

double   8字节       -1.798E308~1.798E308

1.float类型又被称作单精度类型,尾数可以精确到7位有效数字。

2.double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。

3.Java浮点类型常量有两种表示形式

(1) 十进制数形式: 例: 3.14 314.0 0.314

(2) 科学记数法形式 例:3.14e0 3.14E2 3.14E-1

4.浮点型不精确,不要用于比较。浮点数存在舍入误差,数字不能精确表示。

5.浮点常量默认类型是double,要改成float可以后面加F或f

java.math包下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。

BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。

字符型

ASCII字符集表示了英文字母、数字、特殊字符、控制符,所有字符集的老祖宗,大家都会兼容它。

【但是一个字节能够表示256个状态,而ASCII字符只用到128个,后面128个一直是空的。】

Unicode字符集是为了给全世界所有字符一个唯一的编码,“唯一”对应的英文为Unique,而编码的英文为code。

【Unicode采用了字符集和编码分开的策略。】

char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。

Unicode具有从0到65535之间的编码,他们通常用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)

Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义。

转义符   含义       Unicode值

\b     退格(backspace) \u0008

\n     换行       \u000a

\r     回车       \u000d

\t     制表符(tab)   \u0009

\“    双引号       \u0022

\‘    单引号       \u0027

\     反斜杠       \u005c

以后我们学的String类,其实是字符序列(char sequence), 本质是char字符组成的数组。

布尔型(boolean)

1.boolean类型有两个常量值,true和false。

2.在内存中占一个字节或4个字节,不可以使用 0 或非 0 的整数替代true和false,这点和C语言不同。

运算符(operator)

算术运算符:

1.+,-,*,/,%属于二元运算符。%是取模运算符,就是我们常说的求余数操作。

2.算术运算符中++(自增),--(自减)属于一元运算符。

二元运算符的运算规则:

整数运算:(1)如果两个操作数有一个为long, 则结果也为long。

 (2)没有long时,结果为int。即使操作数全为short,byte,结果也是int。

浮点运算:(1)如果两个操作数有一个为double,则结果为double。

 (2)只有两个操作数都是float,则结果才为float。

取模运算:其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操作数相同

赋值及其扩展赋值运算符:

运算符   用法举例   等效的表达式

+=     a += b     a = a+b

-=     a -= b     a = a-b

*=     a *= b     a = a*b

/=     a /= b     a = a/b

%=     a %= b     a = a%b

关系运算符:关系运算符用来进行比较运算。关系运算的结果是布尔值:true/false;

运算符   含义       示例

==     等于       a==b

!=     不等于      a!=b

>     大于       a>b

<     小于       a<b

>=     大于或等于   a>=b

<=     小于或等于   a<=b

注意事项:

1.=是赋值运算符,而真正的判断两个操作数是否相等的运算符是==。

2.==、!= 是所有(基本和引用)数据类型都可以使用。

3.> 、>=、 <、 <= 仅针对数值类型(byte/short/int/long,float/double 以及char)

逻辑运算符:

逻辑运算的操作数和运算结果都是boolean值。

短路与和短路或采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。

位运算符:位运算指的是进行二进制位的运算。

位运算符 说明

~     取反

&     按位与

|     按位或

^     按位异或

<< 左移运算符,左移1位相当于乘2

>> 右移运算符,右移1位相当于除2取商

&和|既是逻辑运算符,也是位运算符。如果两侧操作数都是boolean类型,就作为逻辑运算符。如果两侧的操作数是整数类型,就是位运算符。

字符串连接符:

+运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

条件运算符:

x为 boolean 类型表达式,先计算 x的值,若为true,则整个运算的结果为表达式y的值,否则整个运算结果为表达式z 的值。

运算符的优先级

优先级     运算符             类

1       ()               括号运算符

2       !、+(正号)、-(负号)    一元运算符

2       ~               位逻辑运算符

2       ++、--             递增与递减运算符

3       *、/、%             算术运算符

4       +、-               算术运算符

5       <<、>>             位左移、右移运算符

6       >、>=、<、<=           关系运算符

7       ==、!=               关系运算符

8       &               位运算符、逻辑运算符

9       ^               位运算符、逻辑运算符

10       |               位运算符、逻辑运算符

11       &&               逻辑运算符

12       ||               逻辑运算符

13       ? :               条件运算符

14       =、+=、-=、*=、/=、%=     赋值运算符、扩展运算符

数据类型的转换:

1.自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。

2.强制类型转换又称为造型(cast),用于强制转换数值的类型,可能损失精度。

3.当将一种类型强制转换成另一种类型,而又超出了目标类型的表数范围,就会被截断成为一个完全不同的值。

基本类型转化时常见错误和问题

1.操作比较大的数时,要留意是否溢出,尤其是整数操作时。

2.L和l的问题:

(1) 不要命名名字为l的变量,字母l容易和数字1混淆。

(2) long类型使用大写L,不要用小写l。

标签:操作数,Java,变量,编程,数据类型,运算符,类型,基本概念
From: https://www.cnblogs.com/shidawuyu/p/17526801.html

相关文章

  • java调用filter,map方法
    java的集合类,没有直接实现filter,map这些函数式方法,要调用这些方法,可以使用Java8的StreamAPI详细使用可参考:Java8中Stream详细用法大全 Java8的StreamAPI的坑1.没有直接的findObj方法findFirst和findAny都不支持传入条件要从list中查找一个对象,只能通过filte......
  • Java编程里的控制语句
    控制语句:把语句组合成能完成一定功能的小逻辑模块。它分为三类:顺序、选择和循环。1.“顺序结构”代表“先执行a,再执行b”的逻辑。2.“条件判断结构”代表“如果…,则…”的逻辑。3.“循环结构”代表“如果…,则重复执行…”的逻辑。条件判断结构(选择结构)条件判断结构有:if结构......
  • PAT乙级【Java题解合集】
    ✨说在前面       这个暑假博主用大概两周不到的闲暇时间把PAT乙级的110道算法题全部肝完了,个人感觉题目的难度大部分在中等偏下,大概有二十道左右的题目还是蛮有意思的,值得细细去钻研,本专栏非常适合新手入门算法,也适合Java算法老手巩固一些基本知识点,由于C站上关于PAT乙级J......
  • 简单了解java
    Java各版本的含义JavaSE(JavaStandardEdition):标准版,定位在个人计算机上的应用JavaEE(JavaEnterpriseEdition):企业版,定位在服务器端的应用JavaME(JavaMicroEdition):微型版,定位在消费性电子产品的应用上Java的特性和优势1.跨平台/可移植性:这是Java的核心优势。2.安全性3.面......
  • 常用的前端JavaScript方法封装
     1、输入一个值,返回其数据类型**functiontype(para){returnObject.prototype.toString.call(para)} 2、数组去重functionunique1(arr){return[...newSet(arr)]}functionunique2(arr){varobj={};returnarr.filter(ele=>{if......
  • 【10.0】前端基础之JavaScript进阶
    【10.0】前端基础之JavaScript进阶【一】自定义对象可以看成Python中的字典,但是在JS中的自定义对象要比Python里面的字典操作起来更方便【1】创建自定义对象方式一vard={"键":"值",};操作方法vardict={"name":"dream","age":18};vardict={"name":"dream&......
  • java http大文件断点续传上传示例
    ​ 4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在很多情况下,平台运营方并没有大文件上传和断点续传的开发经验,往往在网上找一些简单的PHP或者Java程序来实现基......
  • java开发环境的搭建
    卸载JDK1、删除java的安装目录2、删除JAVA_HOME3、删除path下关于java的目录4、打开命令提示符,输入java-version检查jdk是否卸载成功 安装JDK1、百度搜索jdk8,找到下载地址2、下载电脑对应的版本3、双击安装JDK4、记住安装的路径5、配置环境变量:1)我的电脑→右键......
  • JavaScript 数组的 reduce 方法有哪些应用
    JavaScript数组的reduce方法有哪些应用JavaScript中的reduce()方法可以用于将数组元素汇总为单个值,它接受一个回调函数作为参数,并在每个数组元素上调用该函数,以便将其累加到一个累加器变量中。下面是一些实际应用:数组求和:使用reduce()方法将数组元素相加,从而计算数组的总......
  • 【8.0】前端基础之JavaScript引入
    【8.0】前端基础之JavaScript引入【一】什么是JavaScriptjs也是一门编程语言,他可以写后端代码JavaScript想一统天下,前后端都写于是node.js支持JS代码跑在后端服务器上但是并不能完美的实现JavaScript和Java一毛钱关系都没有,纯粹是为了蹭Java的热度【二】JavaScrip......