Java语法基础(一)----关键字、标识符、常量、变量

简介:

一、关键字:

关键字:被Java语言赋予特定含义的单词。组成关键字的字母全部小写。注:goto和const作为保留字存在,目前并不使用。main并不是关键字。

75f92ebf-fc8c-4b63-8456-7f95e9191f65

69b2f238-a68f-4ad5-9f6e-812585e9fc09

 

 

二、标识符:

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

组成规则:英文大小写字母、数字字符、$和_

注意事项:不能以数字开头、不能是Java中的关键字、区分大小写

我们通常会给下面的这些东西起一个标识符:

包、类或者接口、方法和变量、常量

 

三、注释:

单行注释的格式: //注释文字

多行注释的格式: /*  注释文字  */

文档注释的格式:/** 注释文字 */    

注:多行注释不能嵌套使用,而单行是可以的。

文档注释:被javadoc工具解析成一个说明书,面向对象部分的知识中会用到。

 

四、常量、进制和进制转换

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

Java中常量分类:

  • 字面值常量
  • 自定义常量(面向对象部分讲)

1、常见常量:

字符串常量:用双引号括起来的内容

整数常量、

小数常量、

字符常量:用单引号括起来的内容

布尔常量:较为特有,只有true和false

空常量:null(数组部分讲解)

 

2、进制与转换:

Java针对整数常量提供了4种表现形式:二进制、八进制、十进制、十六进制。

八进制的整数以0开头,十六进制的整数以0x开头。

注:现在的计算机系统很少用八进制的了。二进制表示法太冗长,所以在程序中一般喜欢用十六进制

二进制与八进制的转换:

33305925-38d7-47a6-bdc1-1f4b1fb65209

二进制与十六进制的转换:

aca04961-1a44-4a62-a991-5b5bed69a469

 

 

3、有符号数据表示法:

在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。

  • 原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
  • 反码:正数的反码与其原码相同;负数的反码是对其原码按照位取反,但符号位(最高位)不变。
  • 补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

8b7d8528-1141-445f-8ee0-b48e9f5ac383

主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。

另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

 

五、变量:

变量概述:在程序执行的过程中,在某个范围内其值可以发生改变的量

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

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

01db18b1-13cc-42be-8be1-d94a8f889ca0

注:引用类型中还有一种特殊的null类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针,只是Java中没有指针这个说法。

变量按被声明的位置划分:

  • 局部变量:方法或语句块内部定义的变量
  • 成员变量:方法外部、类的内部定义的变量

 

六、八种基本数据类型和类型转换:

1、计算机存储数据的基本单位:

字节(Byte)是:计算机文件大小的基本计算单位。

1个字节(Byte) = 8个位(Bit)

Bit意为“位”或“比特”,是计算机运算的基础;二进制中的一位,是二进制最小信息单位。二进位可以用来表示一个简单的正/负的判断,有两种状态的开关(如电灯开关)。

说明:

  • 在内存计算过程中,字节少的数据运算速度更快;
  • 在硬盘存储中,字节少的数据类型也可充分存入更多的数据。

2、八种基本数据类型:

c5831cdb-2745-4d04-bcfa-bc448972bbca

43365152-abe5-4a24-9cde-7f4876255d88

注:

(1)整数默认:int。声明long型常量必须在数字后面加‘l’或‘L’ ,如: long l1 = 88888888888L; //必须加l否则会出错

(2)浮点型常量(小数)默认:double。声明一个float型常量,则需在数字后面加 f 或 F ,如:double d = 12345.6; //正确   float f = 12.3f; //必须加f否则会出错

(3)Java 字符采用 Unicode 编码,每个字符占两个字节,因而可用十六进制编码形式表示。注:Unicode是全球语言统一编码。Java语言中的字符char可以存储一个中文汉字,因为java语言中的字符占用两个字节。

(4)boolean 类型适于逻辑运算,一般用于程序流程控制。

boolean 类型数据只允许取值 true 或 false ,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。

(5)byte、short在定义的时候,他们接收的其实是一个int类型的值。这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。
128:10000000
-128:10000000 (这里的1即是符号位,也是数值位)

使用变量注意事项:

  • 作用域:变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。
  • 初始化值:没有初始化值不能直接使用
  • 在一行上建议只定义一个变量:可以定义多个,但是不建议

3、数据类型转换:

注:boolean类型不能转换为其他的数据类型

  • 默认转换:(从小到大的转换)

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

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

  • 强制转换:

目标类型 变量名=(目标类型)(被转换的数据);

总结:那么,我们到底用那种转换呢?

一般建议,最好不要随意使用强制类型转换,容易造成数据精度的损失。

(1)容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。

(2)有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。

面试题:

A:下面两种方式有区别吗?
float f1 = 12.345f;
float f2 = (float)12.345;

答案:有区别:f1其实是通过一个double类型转换过来的;而f2本身就是一个float类型。

 

B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;

答案:byte b3 = b1 + b2;是有问题的。因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。

常量相加,先把结果计算出来,然后看是否在byte的范围内,如果不是,才报错。

 

C:下面的操作结果是什么呢?
byte b = (byte)130;

  System.out.println(b);

答案:-126

 

D:字符参与运算:是查找ASCII里面的值
'a' 97
'A' 65
'0' 48
System.out.println('a');
System.out.println('a' + 1);

 

E:字符串参与运算:这里其实是字符串的拼接
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5+5="+5+5);

System.out.println(5+5+"=5+5");

注:这里的+不是加法运算,而是字符串连接符。

 

相关文章
|
6月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
192 1
|
6月前
|
存储 SQL NoSQL
Redis-常用语法以及java互联实践案例
本文详细介绍了Redis的数据结构、常用命令及其Java客户端的使用,涵盖String、Hash、List、Set、SortedSet等数据类型及操作,同时提供了Jedis和Spring Boot Data Redis的实战示例,帮助开发者快速掌握Redis在实际项目中的应用。
480 1
Redis-常用语法以及java互联实践案例
|
7月前
|
算法 Java 测试技术
零基础学 Java: 从语法入门到企业级项目实战的详细学习路线解析
本文为零基础学习者提供完整的Java学习路线,涵盖语法基础、面向对象编程、数据结构与算法、多线程、JVM原理、Spring框架、Spring Boot及项目实战,助你从入门到进阶,系统掌握Java编程技能,提升实战开发能力。
451 0
|
7月前
|
存储 Java 容器
Java基本语法详解
本文深入讲解了Java编程的基础语法,涵盖数据类型、运算符、控制结构及数组等核心内容,帮助初学者构建坚实的编程基础。
|
8月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
372 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
5月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
277 1
|
5月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
295 1
|
6月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
259 0
|
6月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
449 16