JAVA基本常识

变量规则

1,先声明,后赋值,再使用。
int a ;
a =10 ;
syso(a);
2, 变量只能声明一次,变量名不能重复。
int i =1;
int i =20; (错误)
3,可以将一个变量值赋值给另一个变量。
4,可以在声明变量的时候直接赋值。
int c =10;

标识符命名规范

项目名: 全小写 (zhttty)
包名: com.hn.czy.pm (倒着写)
类名:首字母大写,如有多个单词,单词首字母都大写。
类名 ,变量名 ,方法名 (驼峰命名法)

标识符中只能包含:英文字母,数字,_$,不能数字开头,也不能单数字,
类名首字母大写,要见名知意。

八种基本数据类型

整数类型 byte short int long
浮点类型 float double
字符 char
布尔类型 boolean

数据类型转换

自动类型转换:小的数据类型向打的转换。
强制类型转换:大的向小的转换,要在数值前加类型符号,并且会损伤精度。
double d = 5.222; int a = (int)d;

JDK:java开发工具集
bin: java工具集中的执行程序目录、
db: 开发工具集中的临时数据库

JRE: 运行环境
JVM:java虚拟机

运算符

运算符:
算数运算符 + - * / %
比较运算符 < > <= >= = = !=
赋值运算符 = += -= *= /= %=
自增自减运算符 ++ –
逻辑运算符 & && | || ! ^
三元运算符 ? : 表达式的返回值为true时,将返回?后边的值。为false时,将返回:后边的值。

运算符的优先级: 从大到小: 算 比 逻 条 或

java的语法结构

1,顺序结构
2,选择结构
if( 表达式 ){
代码块……
}else{
代码块……
}

键盘输入
Scanner : 扫描。
Scanner input = new Scanner(System.in);
String name = input.next(); 用来接收字符串
int age = input.nextInt(); 用来接收整数
double salary = input.nextDouble(); 用来接收小数

<think>嗯,用户想了解Java中二叉树的基本概念、定义和特性。首先,我需要回顾一下二叉树的基础知识。根据引用[3],二叉树是树的一种,每个节点最多有两个子节点,称为左子树和右子树。而且二叉树是有序的,左右子树的顺序不能颠倒,这点和普通树不同。 接下来,定义方面,引用[4]提到,二叉树可以是空的,或者由一个根节点和两个互不相交的左右子树组成。这个递归定义很关键,因为二叉树的很多操作都是递归实现的,比如遍历。 特性方面,用户可能想知道二叉树的独特之处。比如,每个节点最多两个子节点,这是基本特性。此外,二叉树的层次结构也很重要,根节点在第一层,子节点依次向下。引用[4]还提到二叉树的有序性,左右子树的位置不能交换,这影响了遍历和插入操作。 然后,需要结合Java的实现。比如,如何定义一个二叉树节点类。通常会有数据域和左右子节点的引用,这部分应该用代码示例来说明,如引用[1]中的Java代码示例可能涉及节点类的结构。需要确保代码正确,比如构造函数和字段的访问权限。 另外,二叉树的类型可能也需要提及,比如满二叉树、完全二叉树,这些在引用中没有直接提到,但根据常识,这些是基本分类,可以补充说明。但要注意引用内容是否覆盖这些,如果引用中没有,可能需要避免添加额外信息,或者明确说明是扩展内容。 用户的问题集中在基本概念,所以重点放在定义、特性、结构,以及Java中的表示方法。需要引用相关的引用来源,比如引用[3]和[4]详细说明了定义和特性,而引用[1]和[2]可能涉及Java的具体实现。 最后,生成相关问题的时候,要确保问题与内容相关,比如遍历方法、应用场景、实现细节等,参考用户提供的示例问题结构。</think>### Java 二叉树基本概念解析 #### 一、定义与核心特性 1. **基本定义** 二叉树是由$n(n \geq 0)$个节点构成的有限集合,可能为空(空二叉树),或包含: - 一个**根节点** - 两个互不相交的子树(左子树和右子树)[^4] *示例代码结构*: ```java class TreeNode { int val; TreeNode left; // 左子节点引用 TreeNode right; // 右子节点引用 TreeNode(int x) { val = x; } } ``` 2. **关键特性** - **有序性**:左右子树严格区分,顺序不可颠倒 - **递归结构**:每个子树本身也是二叉树[^3] - **节点限制**:每个节点最多有两个子节点 - **层次性**:根为第一层,子节点依次向下扩展 #### 二、二叉树分类(扩展) | 类型 | 特点 | |--------------|-------------------------------| | 满二叉树 | 所有非叶节点均有2个子节点 | | 完全二叉树 | 除最后一层外,其他层均填满 | | 二叉搜索树 | 左子树值 ≤ 根 ≤ 右子树值 | #### 三、Java实现要点 1. **节点表示** 通过类定义实现树节点,包含数据域和子节点引用(如上述`TreeNode`类)[^1] 2. **操作复杂度** - 查找/插入:$O(\log n)$(平衡时)→ $O(n)$(退化为链表时) - 遍历:$O(n)$(需访问所有节点) #### 四、应用场景 1. 数据快速检索(如二叉搜索树) 2. 表达式树(编译器中用于语法分析) 3. 哈夫曼编码(数据压缩)[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值