【Java】基础知识、标识符、数据类型、类型转换以及运算符

本文深入讲解了Java编程的基础知识,包括JVM、JRE、JDK的关系,Java程序的运行机制,以及标识符的命名规则。详细阐述了数据类型如整数、浮点、字符和布尔类型,以及它们之间的转换。还涵盖了运算符的种类和用法,如算术、赋值、比较和逻辑运算。此外,文章对比了Java与C++在面向对象编程上的差异,强调了Java的跨平台特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、基础知识部分

1.Java程序的运行

2.负责Java程序解释执行的解释器——虚拟机JVM

3.JVM、JRE、JDK的概念和功能,及其关系

4.JAVA程序的结构

5.同为面向对象的编程语言,Java和C++区别

二、标识符

1.标识符的定义规则

2.驼峰命名规则

小驼峰法

大驼峰法

三、数据

1.常量

2.变量

四、数据类型及其转换

1.整数类型​

系统对于整数类型的判定:

2.字符类型

3.浮点类型

4.布尔类型

*5.基本类型之间的转换原则

五、运算符

1、算术运算符

2、赋值运算符

3、比较运算符

4、逻辑运算符

5、位运算

6、 三目条件运算符


一、基础知识部分

1.Java程序的运行

Java语言编写程序(*.java   Java源文件)需要经过编译(compile)步骤,编译过后不直接产生特定平台的机器码而是产生一种字节码(*.class 源文件编译生成的字节码),再经Java解释器来解释执行(Runtime)为机器可执行的特定平台的机器码。Java程序的执行必须先编译后解释,所以说Java是一种半编译半解释的语言。

2.负责Java程序解释执行的解释器——虚拟机JVM

JVM是可运行Java字节码文件的虚拟计算机,JVM在Java程序执行过程中承上启下:向Java编译器提供相同的变成接口,向下对不同的操作系统(不同平台)提供接口互不相同。对于Java编译器来说,JVM屏蔽掉了操作系统(平台)的不同,编译出来的字节码只面向JVM虚拟机,虚拟机再根据操作系统的不同解释执行成特定平台的机器码,使一段相同的Java代码,可以在不同的操作系统上执行,JVM虚拟机是Java可以跨平台的关键所在

3.JVM、JRE、JDK的概念和功能,及其关系

JVM是Java虚拟机,解释执行class文件。

JRE是Java运行环境,作为运行Java程序所需环境的集合。

JDK是Java开发包,作为开发运行Java程序所需环境的集合。

4.JAVA程序的结构

1、由一个或多个独立的类组成

2、最多一个公共类

3、源代码文件必须与这个公有类的名字相同

4、类由一个或多个方法组成。其中公有类中的main方法用作程序运行的入口。

5.同为面向对象的编程语言,Java和C++区别

①在Java中所有的代码都必须通过类来实现,无论这个程序有多么的简单。但是C++就可以脱离类来实现。Java是一种纯粹的面向对象的语言,而C++不是。

以一个最简单的HelloWorld程序为例:

#HelloWorld Java代码
public class HelloWorld
{
     public static void main(String[] args)
     {
        System.out.println("Hello World!");
     }
}
#HelloWorld C++代码
#include<bits/stdc++.h>
using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    return 0;
]

② Java源码会先经过一次编译,成为中间码也就是字节码,中间码再被虚拟机JVM内置的解释器解释成机器码。C++源码一次编译,直接在编译的过程中链接了,形成了机器码。

③ C++比Java执行速度快,这种速度上的差异存在但是我们不容易感受到。

④Java可以利用JVM跨平台,C++不可以。

⑤ C++中有指针,Java中没有,但是有引用。

⑥ C++支持多继承,Java中类都是单继承的(父类只有一个)。但是继承都有传递性,同时Java中的接口是多继承,类对接口的实现也是多实现。

⑦C++创建对象之后,需要再使用完将其调用delete方法将其销毁;Java有垃圾回收机制,用来监视new出来的所有对象,辨别不会再被引用的对象,然后释放内存空间。

⑧ C++运算符可以重载,但是Java中不可以。同时C++中支持强制自动转型,Java中不行,会出现ClassCastException(类型不匹配)。

二、标识符

1.标识符的定义规则

标识符:给变量、常量、方法、类、对象等命名的符号,也就是程序员起名字的地方都要用到标识符。

①只能由字母、数字、_或$组成。 

②必须以字母、_或$开头。

③大小写敏感的,无长度限制。

④不能是Java的关键字和保留字。

⑤不局限于英文字母,可以包含Unicode字符集支持的字符,比如说中文、韩文。

2.驼峰命名规则

小驼峰法

除第一个单词之外,其他单词首字母大写,变量一般使用小驼峰法标识,例如 int myMathGrade。

大驼峰法

每一个单词的首字母都采用大写字母,类名、函数名、属性、命名空间一般用大驼峰法标识,例如 public calss HelloWorld。

三、数据

1.常量

在程序运行期间其值保持不变的量。

final定义常量————用符号表示常量
final double PI = 3.14159 //PI是实数类型的常量

2.变量

值在程序运行的时可以改变的量,每个变量需要先声明然后赋值,初始化或者赋值以后才可以使用。

四、数据类型及其转换

和C/C++一样Java的变量名也是先声明后使用,变量只能接受和它类型匹配的值。

1.整数类型

二进制表示:0b或0B作为前缀。

八进制:0作为前缀。

十进制:无前缀。

十六进制:0x或者0X作为前缀。

系统对于整数类型的判定:

①一个整数默认类型是int型,无论这个数多大。

②在给byte或者short在各自对应的范围内赋值,系统会将这个整数当作byte或者short类型处理。

③如果超出int型的范围的整数,系统不会自动当作long类型来处理,需要加上后缀l或者L。未超出int范围的整数给long类型赋值,是可行的,例如:long a = 10;表面上计算机直接将10当作long类型处理了,实际上存在的是int类型到long类型的自动类型转换。

※整数占用的存储空间与代码所在机器无关。

2.字符类型

用单引号表示。

3.浮点类型

Java中的实数类型 float(4字节,单精度)、double(8字节,双精度) 有固定的表数范围和字段长度,字段长度、表数范围都与机器无关。

Java浮点数遵循IEEE 754标准,用二进制数据的科学计数法表示浮点数。

float:第1位是符号位,接下来8位表示指数,再下面23位表示尾数;

double:第1位是符号位,接下来8位表示指数,再下面的52位表示尾数。、

浮点数无法精确表示部分实数,例如:0.9-0.3 = 0.60000000001。

系统默认浮点数位double类型

4.布尔类型

只能用true和false赋值,不能与其他类型进行转换,不能用0或者非零来代替.

*5.基本类型之间的转换原则

类型转换包括自动类型转换和强制类型转换。

①系统默认整数类型是int型。

②系统默认浮点类型位double型。

 ③表示范围小的数据类型可以直接赋值给表示范围大的数据类型,可以自动进行类型转换。表数范围大的类型向下兼容表数范围小的类型。例如:int  n = 2;long  m = n; 

④表数范围大的类型转换成表数范围小的类型时,要加强制转换符,但可能降低精度或造成溢出。

例如:long n = 2;int  m = (int)n;float n = 2.5f; long  = n;(会存在精度损失)

⑤多种类型混合运算:

1)系统自动将所有类型转换成表数范围最大的类型,再进行计算;

2)byte、short、char互相之间不转换,用时全部自动转换成int类型。

⑥判断两个类型表示范围大小第一看所占字节数第二看精度大小,所占字节越大,精度越大,表示范围也就越大。

 应用一下:long l = 30000000000L;如果不加L这里就会报错,因为这个数字已经超过了int的范围,需要让他自身变成long类型,在进行赋值。

五、运算符

1、算术运算符

 字符串连接符“+”:“+”两侧的操作数只要有一个是字符串(String)类型,系统自动将另一个操作数转换成字符串再进行连接。

自加自减运算符:前序增减,先运算再赋值;后序增减,先赋值再运算。

2、赋值运算符

3、比较运算符

返回值为Boolean类型。

4、逻辑运算符

 

 返回值也为boolean类型。

5、位运算

 

6、 三目条件运算符

x ? y : z

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

int score = 61;
String result = score >= 60 ? “及格”:“不及格”;
System.out.println(result);

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值