首页 > 其他分享 >基础知识

基础知识

时间:2025-01-18 15:55:46浏览次数:1  
标签:Java 常量 代码 基础知识 运算符 类型 方法

环境部署

计算机组成

  • 硬件

    主要组成部分:中央处理器(CPU)、内存(RAM)、存储设备(硬盘)、主板、显卡(GPU)、电源、输入输出设备

  • 软件

    系统软件:Windows、Linux、IOS、Android等等

    应用软件:微信、QQ、office办公软件

JDK-JRE-JVM

组件 全称 描述
JDK Java开发工具包 (Java Development Kit) 包含JRE和开发工具(如编译器javac),用于开发和编译Java程序。
JRE Java运行时环境 (Java Runtime Environment) 包含JVM和核心类库,用于运行Java程序,但不包含开发工具。
JVM Java虚拟机 (Java Virtual Machine) 负责执行Java字节码,实现跨平台特性

JAVA程序执行流程

编写Java源代码 (.java) → 由javac编译为字节码 (.class) →使用java命令运行class文件 → 垃圾回收(GC)

字节码 (.class)文件会被加载的内存中的方法区,此外,方法区还会存储静态变量常量池(Java 8以前)

环境变量

  • 配置path:让javac和java命令可以在全局使用
  • 配置classpath:让class文件可以在全局被找到

第一个Java程序

// 仪式感要有
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

关键字

类别 关键字
访问控制 public, private, protected
类、方法和变量修饰符 class, interface, abstract, final, static, synchronized, volatile, transient, native, strictfp
程序控制 if, else, switch, case, default, while, do, for, break, continue, return
异常处理 try, catch, finally, throw, throws
包和导入 package, import
基本类型 boolean, byte, char, short, int, long, float, double, void
其他 new, this, super, instanceof, enum, assert
未使用的保留字 goto, const

加上gotoconst一共52个

注释

  • 单行注释:

    // ……

  • 多行注释:

    /*

    ……

    */

  • 文档注释:通常用于生成 API 文档

    /**

    *……

    *……

    *……

    */

标识符命名

命名规则

  • 由字母、数字、下划线和美元符号组成;
  • 不能由数字开头;
  • 不能是关键字;

命名规范

  • 类名与接口名:大驼峰
  • 方法名与变量名:小驼峰
  • 常量名:全大写、下划线分割
  • 包名:全小写、不同层级用点隔开(包其实就是文件夹,用点隔开即为文件路径)

常量

常量类型 定义 示例
字面常量 直接写在代码中的固定值。 10:整数常量,表示整数值 10。
3.14:浮点数常量,表示浮点数值 3.14。
'A':字符常量,表示字符 A。
"Hello":字符串常量,表示字符串 "Hello"。
true:布尔常量。
false:布尔常量。
null:空常量。
final 常量 通过 final 关键字定义的变量,其值在初始化后不能被修改。 final int MAX_VALUE = 100;:定义一个整型常量 MAX_VALUE,值为 100。
final double PI = 3.14;:定义一个双精度浮点型常量 PI,值为 3.14。
类常量 在类中定义的 static final 常量,属于类而不是对象。 public static final int MAX_VALUE = 100;:在类中定义一个整型常量 MAX_VALUE,值为 100。
接口常量 在接口中定义的常量,默认是 public static final 的。 interface Constants { public static final String DEFAULT_NAME = "Unknown"; public static final int MAX_SIZE = 100; }:在接口中定义字符串常量 DEFAULT_NAME 和整型常量 MAX_SIZE
系统常量 Java 标准库中预定义的常量。 Integer.MAX_VALUEint 类型的最大值,值为 2147483647。
Math.PI:圆周率 π 的值,约为 3.141592653589793。
Math.E:自然对数的底数 e 的值,约为 2.718281828459045。
自定义常量 开发者根据需求自定义的常量。 public static final String APP_NAME = "MyApp";:定义一个字符串常量 APP_NAME,值为 "MyApp"。

变量

基本格式

数据类型 变量名 = 初始化值;

变量的分类

变量类型 描述 特点 默认值 作用域 使用场景
局部变量 定义在方法或代码块内部的变量。 必须显式初始化。生命周期限于方法或代码块内。无访问修饰符。 无默认值,必须显式初始化,否则编译错误。 仅在定义它的方法或代码块内有效。 用于存储方法中的临时数据或计算结果。
实例变量 定义在类中方法外的变量,属于对象的一部分。 每个对象有独立的实例变量存储空间。可以使用访问修饰符(如 publicprivate)。 默认值由 Java 分配(如 00.0falsenull)。 在类的所有非静态方法中有效。 用于描述对象的属性或状态
静态变量 使用 static 关键字定义的变量,属于而不是对象。 所有对象共享一块存储空间(方法区)。可以使用访问修饰符。常用于常量或共享数据。 默认值由 Java 分配(如 00.0falsenull)。 整个类中有效,可通过类名直接访问。 用于定义常量或共享数据(如计数器、配置值)。

数据类型

基本数据类型

整数类型

基本数据类型 所占字节数 比特位数 范围
byte 1 8 -2⁷ 到 2⁷-1(-128 到 127)
short 2 16 -2¹⁵ 到 2¹⁵-1
int 4 32 -2³¹ 到 2³¹-1
long 8 64 -2⁶³ 到 2⁶³-1

long类型变量在定义的时候要在结尾加L

小数类型

基本数据类型 所占字节数 比特位数
float 4 32
double 8 64

float类型变量在定义的时候要在结尾加F

布尔类型

true false

字符类型

char:占2个字节,共16

char类型的数值范围是 0 到 65535(2¹⁶ - 1),用于表示 Unicode 字符,每个字符对应一个唯一的整数值。

数字字母-字符对应关系

字符范围 编码值(十进制范围)
09 48-57
AZ 65-90
az 97-122

基本数据类型的运算

  • 自动类型提升

    当一个表达式中包含多个不同类型的数据时,表达式的最终数据类型会自动提升为参与运算的数据中范围最大、精度最高的数据类型。这是为了确保计算过程中不会丢失数据或精度。

    • 数值范围小的与范围大做运算,会自动提升为范围大的;
    • byte/short/char做运算,包括自己与自己,都会自动提升为int。
    • 小类型转大类型不会产生精度损失

    范围大小:byte\short\char<int<long<float<double

  • 强制类型转换

    • 使用强转符进行转换:()
    • 强制类型转换可能会产生精度损失:目标类型的范围无法表示源类型的所有值

    向下转型:子类类型 变量名 = (子类类型) 父类引用

引用数据类型

  • 数组

  • 接口

    后续单独进行总结

运算符

常见运算符一览表

运算符类别及说明 运算符 描述
算术运算符:用于基本的数学运算。 + 加法
- 减法
*** 乘法
/ 除法
% 取模(取余)
++ 自增(前缀或后缀)
-- 自减(前缀或后缀)
关系运算符:用于比较两个值的大小或相等性。 == 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
逻辑运算符:用于布尔值的逻辑运算。 && 逻辑与(短路与)
|| 逻辑或(短路或)
! 逻辑非
位运算符:用于对整数类型的二进制位进行操作。 & 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 左移
>> 右移(带符号)
>>> 无符号右移
赋值运算符:用于将值赋给变量。 = 简单赋值
+= 加后赋值
-= 减后赋值
*= 乘后赋值
/= 除后赋值
%= 取模后赋值
&= 按位与后赋值
|= 按位或后赋值
^= 按位异或后赋值
<<= 左移后赋值
>>= 右移后赋值
>>>= 无符号右移后赋值
条件运算符:用于简化条件判断。 ? : 三元运算符(条件 ? 表达式1 : 表达式2)
instanceof:用于检查对象的类型。 instanceof 检查对象是否为某个类的实例

注意事项

  • 大多数运算符(如算术、关系、逻辑、位运算等)适用于基本数据类型
  • 某些运算符(如 ===!=+instanceof 等)可以用于引用类型
  • 当其他类型与字符串使用 + 运算符连接时,Java 会自动将非字符串类型转换为字符串,转换规则如下:
    • 基本数据类型(如 intdoubleboolean 等)会直接转换为对应的字符串形式
    • 对象会调用其 toString() 方法转换为字符串

方法

基本格式

没有返回值,返回值类型部分就写void

修饰符 返回类型 方法名(参数列表) {
    // 方法体
    return 返回值; 
}

方法的修饰符

修饰符类型 修饰符 描述
访问修饰符 public 方法可以被任何类访问。
protected 方法可以被同一包内的类以及子类访问。
默认(无修饰符) 方法可以被同一包内的类访问。
private 方法只能被定义它的类访问。
非访问修饰符 static 方法属于类,而不是类的实例。可以通过类名直接调用。
final 方法不能被子类重写。
abstract 方法没有方法体,必须在子类中实现。
synchronized 方法在同一时间只能被一个线程访问,用于多线程同步。

方法的分类

方法类别 描述
实例方法 属于对象,需要通过对象实例调用。可以访问实例变量和其他实例方法。
静态方法 属于类,通过类名直接调用。不能访问实例变量或实例方法。
构造方法 用于创建对象时初始化对象的状态。方法名与类名相同,无返回类型。
重载方法 在同一个类中,方法名相同但参数列表不同。用于实现类似功能但参数不同的操作。
重写方法 子类重新定义父类或接口的方法。用于实现多态。
抽象方法 没有方法体,必须在子类中实现。
final 方法 不能被子类重写。
同步方法 使用 synchronized 修饰,用于多线程同步。

语句结构

种类 定义 名称 格式 使用场景
顺序结构 程序按照代码的书写顺序依次执行。 语句1; 语句2; 语句3; 默认的程序执行方式,适用于简单的线性逻辑。
选择结构 根据条件判断选择执行不同的代码块。 if if (条件) { 代码块 } 单一条件判断,条件为真时执行代码块。
if-else if (条件) { 代码块1 } else { 代码块2 } 双条件判断,条件为真时执行代码块1,否则执行代码块2。
if-else if-else if (条件1) { 代码块1 } else if (条件2) { 代码块2 } else { 代码块3 } 多条件判断,依次检查条件,满足哪个条件就执行对应的代码块。
switch switch (变量) { case 值1: 代码块1 break; case 值2: 代码块2 break; default: 默认代码块 } 多分支选择,根据变量的值跳转到对应的 case 分支执行代码块。
三元运算符 条件 ? 表达式1 : 表达式2 简化双条件判断,适用于简单的条件赋值或返回。
循环结构 循环结构会重复执行某段代码,直到条件不再满足(即条件为 false)为止。 for for (初始化; 条件; 更新) { 代码块 } 适用于已知循环次数的场景。
while while (条件) { 代码块 } 适用于未知循环次数,先判断条件再执行代码块。
do-while do { 代码块 } while (条件); 适用于未知循环次数,先执行代码块再判断条件。
增强 for 循环 for (数据类型 变量 : 集合) { 代码块 } 适用于遍历数组或集合。
控制语句 用于改变程序的执行流程。 break break; 跳出循环switch 语句。
continue continue; 跳过当前循环的剩余部分,进入下一次循环。
return return 返回值; 从方法中返回值并结束方法
异常处理 用于处理程序运行时的异常,确保程序的健壮性。 try-catch try { 代码块 } catch (异常类型 e) { 处理异常 } 捕获并处理异常,防止程序崩溃。
try-catch-finally try { 代码块 } catch (异常类型 e) { 处理异常 } finally { 最终代码块 } 无论是否发生异常,finally 块中的代码都会执行。
throw throw new 异常类型("错误信息"); 手动抛出异常,用于自定义异常处理逻辑。
throws 返回类型 方法名() throws 异常类型 { 代码块 } 声明方法可能抛出的异常,调用者需处理或继续抛出。

标签:Java,常量,代码,基础知识,运算符,类型,方法
From: https://www.cnblogs.com/wy56297/p/18678524

相关文章

  • 测试 | 车载智能座舱基础知识
    1.VAD(voiceactivitydetection)语音活动检测也称为静音检测,是用来判断用户是否已经说完话,然后通过结果判断是否进行回答。开始语音识别之前,把首尾端的静音切除,以防对后续步骤进行干扰。如果此时用户还没有说完话,就停止识别了开始回答,会造成理解不当,回答不精准的情况;但是如果......
  • OSPF(1):基础知识与数据包、状态机、工作过程
    引言上一篇我们学习了RIP:RIP基础知识与配置,可是通过学习,我们发现RIP似乎只能运用在中小型网络中,那么中大型网络应该怎么做呢?这一篇博客我们就来学习OSPFOSPF---开放式最短路径优先协议动态路由优势评价维度:选路佳,收敛快,占用资源少 RIP与OSPF比较1.OSPF本身是链路状......
  • Vue 开发者必备的 JavaScript 基础知识
    变量与数据类型为什么重要:Vue3的响应式系统严重依赖于正确的变量声明。组合式API要求理解 const 用于ref和reactive对象。类型意识有助于Vue3的模板渲染和prop验证。const count= ref(0)const user= reactive({  name: 'John',  age: 30......
  • 再次梳理镜头基础知识及选型
    转载整理转载整理,原内容来自镜头全解析-CSDN博客!-----------------------------------------------------------------------------------------1.镜头的结构及原理1.1镜头的分类按功能分类:定焦镜头、变倍镜头、定光圈镜头按视角分类:标准镜头、广角镜头、远摄镜头按焦距......
  • Linux Shell 脚本编程基础知识篇—sed文本处理工具
    ℹ️大家好,我是练小杰,今天是周三了,距离星期五还有两天......
  • C51基础知识
    1.什么是C51?计算机平台——C语言单片机平台——C51计算机平台的CPU主频,内存和硬盘相较于单片机平台都是巨大的量级,另一方面,计算机平台的有不同的操作系统,如Windows,Linux,macOS等,单片机一般是没有操作系统的,(也会有一些简单的操作系统如:RTOS,但与计算机平台的系统相比,还是较为......
  • ElasticSearch基础知识
    1.背景2.概念2.1文档Document类似mysql一列,json格式存储2.2索引Index索引类似数据库里的表,相同文档类型的集合2.3映射mapping类似表结构属性:type:类型text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)。keyword类型只能整体搜索,不支持搜索部分内容index:是......
  • 【程序猿面试真题——计算机基础知识和编程】如何寻找二次曲线(离散的点连成的)的最小值
    【程序猿面试真题——计算机基础知识和编程】如何寻找二次曲线(离散的点连成的)的最小值?【程序猿面试真题——计算机基础知识和编程】如何寻找二次曲线(离散的点连成的)的最小值?文章目录【程序猿面试真题——计算机基础知识和编程】如何寻找二次曲线(离散的点连成的)的最小......
  • 【程序猿面试真题——计算机基础知识和编程】回调函数怎么实现?
    【程序猿面试真题——计算机基础知识和编程】回调函数怎么实现?【程序猿面试真题——计算机基础知识和编程】回调函数怎么实现?文章目录【程序猿面试真题——计算机基础知识和编程】回调函数怎么实现?什么是回调函数?回调函数的应用场景:回调函数的实现1.回调函数的基本结......
  • Python 基础知识 之 选择(分支)结构 + 模式匹配结构(match)
    选择结构按照条件选择执行不同的代码段1.单分支结构if语法结构执行流程:如果表达式的值为True,就执行语句块,如果表达式的值为False,就跳过语句块,继续执行下面的语句⭐注意:⭐⭐⭐表达式后面的冒号;缩进,python中通过缩进来控制程序逻辑示例;#1.判断是否中奖nu......