一,标识符
标识符由数字,字母,下划线,及美元符组成
注意:数字不能成为标识符的开始,如:1ac
关键字:具有特殊含义的标识符,如:int,void,main,string
用户自定义标识符:是由用户按标识符构成规则生成的非保留字的标识符,如:abc,name
命名规则:Java类的命名规则:类名首字母大写,如果有多个单词组合,则每个单词大写(大驼峰命名法):例如,HelloWorld
小驼峰命名法:首个单词字母小写,后面的单词首字母大写
例如:helloWorld
二
注意:Java严格区分大小写,如;name和Name表达的意思不一样
//单行注释
/*
*多行注释
*/
/**
*文档注释
*/
//int name
Java严格区分大小写,是强类型。
三,声明
变量:用来存放东西的
变量命名:
语法:变量类型 变量名字 赋值符号 值;
int age ;//声明变量,不赋值
age = 32;//声明后赋值
Srting name = “大锤”; //声明变量,赋值
//修改变量值(重新赋值)
age = 56;
name = “张三”;
int 2num;//非法命名
n1 = 2;
n2 = 3;
n3 = 4;
int n1,n2,n3;//批量命名(不推荐)
n1 = n2 = n3 =58;
int num1 = 3,num2 = 4;
四
变量的作用域:
全局变量:定义在方法(函数)和代码块之外的变量
局部变量:定义在方法或者代码块之间的变量
静态变量
static int number;
五,常量
常量:在某个程序中不改变值的量
常量值又称为字面常量,通过数据直接表示的,因此有多种数据类型。
整型int占4个字节,32位,大于32,用long长整型,占64位。后面加l或L。
常量一旦被赋值定义,则不可再被修改
成员常量
final double PI = 3.14
静态变量
final static float price = 99.99F;
成员常量和静态常量在再定义的同时必须要初始化
常量命名规则
1,常量名应该全部大写
2,当常量命名由多个单词组成,用下划线分割
如HTTP_CODE
java中的数据类型
1,基本数据类型(8)种
byte(字节型)、short(短整型)、int(整型)、long(长整型)、
float(单精度浮点型)、*double(双精度浮点型)*(后加F或者f)、Java小数默认double
char(字符型),字符型使用单引号引起来,当值为整型时,不需要单引号
boolean(布尔型)Java中,布尔型只有ture和false两种。
2,引用数据类型
除了基本数据类型,其他都是引用数据类型。如String、数组等
null类型:空类型
package com.zpark.day02;
/** * @PackageName: com.zpark.day02 * @ClassName: dEMO02 * @Description: * @author: RZS * @date: 2022/8/26 11:01 */ public class Demo02 {
static String name;
public static void main(String[] args) { /** * Java中的数据类型: * 1、基本数据类型(八种) * byte(字节型)、short(短整型)、int(整形)、long(长整型)、float(单精度浮点型)、double(双精度浮点型) * char(字符型)、boolean(布尔型) * 2、引用数据类型 * 除了基本数据类型,其他全部是引用数类型,如:String、数组等 */ // 字节型 byte by = 127; // System.out.println((byte) (by + 1)); // 短整型 short sh = 56; // 整形 int num = 78946; // 长整型,注意: 需要早长整型末尾添加L或者l long number = 56L;
// 单精度浮点型, 注意: 需要早长整型末尾添加F或者f float fl = 3.14F; float fl1 = 3.1415888888879874243246564564561129f; // 精度丢失 System.out.println(fl1);
// 双精度浮点型,java中小数默认是double类型 double db = 3.14159;
// 字符型, 字符型的值使用单引号引起来,当值为整形时不需要单引号 char ch1 = 3; char ch2 = 'a'; char ch3 = 97; System.out.println(ch1); System.out.println(ch3);
// 布尔值类型,注意:Java中布尔值类型只有true和false两个值 boolean bool1 = true; boolean bool2 = false;
// null类型 String str = null;
System.out.println(name); // int a = null; 报错 } }
关系运算符:
==:对等于
!=:不等于
>:大于
<:小于
>=:大于等于
<=:小于等于
关系运算符的结果为布尔值类型
equals(obj)方法和 == 的区别:
equals方法比较的是两个对象的内容是否相等
== 比较的是两个对象再内存中存放的地址是否为同一个
next()与nextLine()方法的区别:
1、当遇到空格或者回车的时候 next()方法停止读取
2、当遇到回车的时候 nextLine()方法停止读取,读取整行数据
单分支结构:
if () {
}
双分支结构
if语句:
if (条件表达式) {
条件为true执行
代码块
} else {
条件为false执行
}
if嵌套
* if(boolean){
* if(boolean){
* ....
* }
* }else{
* if(boolean){
…..
}
while循环:
语法:
while (循环条件) {
循环体
}
do.while循环
语法:
do{
循环体
} while (循环条件);
while循环与do...while循环的区别:
- while是先判断后执行,do...while循环是先执行然后再判断
- do...while循环至少执行一次
- while循环与do...while的特点:都是循环执行某一语句,循环次数素不固定
for循环:
语法:
for (表达式1; 表达式2; 表达式3) {
循环体
}
特点:循环次数固定
foreach语法:
for(迭代变量类型 变量的名字 :需要遍历(迭代)的对象){
语句块;
}
定义方法的语法:
修饰符 返回值类型 方法名(参数1,参数2...) { 方法体... }
return关键字的作用:1、结束方法的执行。2、将方法的执行结果返回给调用者
方法(函数)的类型:
- 无参无返回值
修饰符 void 方法名(){ 方法体 }
- 无参有返回值
修饰符 返回值类型 方法名(){ 方法体}
- 有参无返回值
修饰符 void 方法名(参数1, 参数2,....){ 方法体}
- 有参有返回值
修饰符 返回值类型 方法名(参数1, 参数2,....){ 方法体}
比较两个数的大小,将大的值返回回去
@param num1
@param num2
@return 返回最大值
定义方法:
比较两个数大小,返回布尔值
方法调用
- 通过 对象.方法名字(参数)
- 类名.方法(参数)
- 方法(参数)
调用非static关键字修饰的方法,语法:对象.方法(参数)
调用被static修饰的方法,语法:类名.方法(参数)
方法重载:
重载就是在一个类中,有相同的函数名称,但参数列表不相同的方法。
注意:
方法重载只与方法名字和参数列表有关,与方法返回值类型无关
方法签名:方法名字 + 参数列表
什么是程序?
答:程序 = 算法 + 数据结构
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能。
方法的作用及特点:
1、封装一段特定的业务逻辑功能
2、尽可能独立,一个方法只干一件事
3、方法可以被反复多次的调用
4、减少代码的重复,有利于代码的维护,有利于团队的协作
数组定义:
用来存放相同类型的一组数据
数组下标从0开始,对数组元素进行操作是通过数组的下标(索引)
数组一旦被创建,则数组的长度不可被修改
语法:
静态创建数组
数据类型[] 数组名 = {值1,值2....}
数据类型 数组名[] = {值1,值2....}
动态创建数组
数据类型[] 数组名 = new 数据类型[数组长度]
数据类型 数组名[] = new 数据类型[数组长度]
静态创建数组,特点:创建数组的同时给数组元素赋值
动态创建数组,特点创建数组时指定数组的长度
数组元素必须是相同类型的,不允许出现混合类型。
数组元素赋值:语法,数组名[索引] = 值
数组的长度获取方式,array.length
初始值
int 初始值为0
double初始值为0.0
boolea初始值为false
char的初始值为空格的编码
string的初始值null
data的初始值为null
Demo初始值为null
引用数据类型数组初始值为null
二维数组
两种初始化形式:**
格式1、动态初始化**
```java
数据类型 数组名[][] = new 数据类型[m][n]
数据类型[][] 数组名 = new 数据类型[m][n]
数据类型[] 数组名[] = new 数据类型[m][n]
格式2、 静态初始化**
```JAVA
数据类型[][] 数组名 = { {元素1,元素2....},{元素1,元素2....},{元素1,元素2....}.....};
Arrays类
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象类调用(注意是“不用”,而不是“不能”)。
Arrays类具有以下常用的功能:
**给数组赋值:**通过调用fill方法。
**对数组进行排序:**通过sort方法。
**比较数组:**通过equals方法比较数组中元素的值是否相等。
**查找数组元素:**通过binarySearch方法能对排序好的数组进行二分查找法操作。
**将数组转为字符串输出:**通过toString方法实现。
浅拷贝:这个是系统提供的拷贝方式,也是我们推荐使用的拷贝方式,它是浅拷贝,也就是说对于非基本类型而言,它拷贝的是对象的引用,而不是去新建一个新的对象。通过它的代码我们可以看到,这个方法不是用java语言写的,而是底层用c或者c++实现的,因而速度会比较快
数组扩容与缩容
数组扩容与缩容的实质:就是创建一个新的数组,新数组的长度比原来的数组(大,扩容,小,缩容),然后将原来数组中的内容全部拷贝到新的数组中,最后将新数组重新赋给原来的数组。
稀疏数组
**稀疏数组介绍:**
当一个数组中大部分元素为0时,或者为同一值的数组时,可以使用稀疏数组来保存该数组。
**稀疏数组的处理方式是:**
1、 记录数组一共有几行几列,有多少个不同的值。
2、 把具体有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模。
**稀疏数组定义:**
稀疏数组可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组。
冒泡排序
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
package com.zpark.day10; import java.util.Arrays; public class Demo05 { public static void |