JAVA基础
基本语法
1. 注释
(1)this is a program // 单行注释,仅用在单行
(2)this is a program /*多行注释 可以隔行*/
(3)this is a program /**这类注释可以生成到帮助文档中 */
2.标识符
1.标识符
定义:标识符由数字,美元符号,下划线和UNicode字符集组合构成;
注意:标识符第一个字符不能为数字,标识符间没有空格,标识符不能为关键字和保留字(JAVA中区分大小写,也能用),标识符命名最好符合直觉。
关键字和保留字
关键字是JAVA中有特殊含义的字符串,而保留字是目前没有特殊含义但日后可能加入关键字的字符串。
2.命名规范
关于JAVA的命名方式有很多,几乎每个企业都有自己的命名标准,最常见的诸如驼峰命名法和阿里命名法,但并不强求一定要用一种命名法,随机应变即可。
驼峰命名法:1.类名,接口名:首字母大写,后面每个单词首字母也大写。
2.变量名,方法名:首字母小写,后面每个单词首字母大写。
3.常量名:全部大写,单词之间用下划线连接。
3.变量
变量指在程序的执行过程中有可能发生改变的量(ps:说人话就是相当于函数中的自变量,在我们声明后才可使用)。
数据类型 变量名 = 数据值;
变量分为三种:局部变量,成员变量和静态变量。
最显著的区别是局部变量只在方法体中生效,方法结束后自动销毁,不会影响到整个函数;而静态变量始终是由所有类共享的,它始终生效,不必初始化.;成员变量则是最常见的变量,它参与到我们声明该变量的函数中。
变量必须先声明后使用,且只能声明一次
数据类型
数据类型分为基本数据类型和引用数据类型。
基本数据类型分为八种,此处略.
引用数据类型分为数组,类和接口。
3.运算符
运算符分为算数运算符,关系运算符,逻辑运算符和赋值运算符。
算数运算符中需要注意的是
·%是取余的意思
·/是除法
·B++与++B是不同的;B++是先输出再加,而++B是先加再输出。
关系运算符则用作检查操作数间的关系
==用于检查是否相等
!=用于检查是否不相等
">"用于检查是否大于,小于和大于等于,小于等于同理
逻辑运算符用于检查逻辑的真假
&&当且仅当两个都为真时才为真
||任何一个条件为真时都为真
!是逻辑非运算符,用于反转逻辑状态
赋值运算符顾名思义,主要用作java语言中给变量赋值的作用,其中多种不同运算符此处略
拓展:lambda表达式
Lambda是JDK8中的一个语法糖,它可以对某些匿名内部类的写法进行简化,是函数式编程思想的一个重要体现。让我们不用关注是什么对象,而是更关注我们对数据进行了什么操作。
Lambda的核心原则是可推导可省略 它的基本格式为(参数列表)-\>{代码}
举个例子,当我们在创建线程并启动时可以使用匿名内部类的写法:
new Thread(new Runnable(){
@Override
publiic void run(){
System.out.println("略");
}
}).start();
我们可以使用Lambda的格式进行修改,修改后如下:
new Thread(()->{
System.out.println(“略”)
;
}).start();
4.控制语句
选择
·If
if(condition){
}//当条件为真时执行的代码块
如果条件为真,则执行代码,否则跳过
if(condition){
//当条件为真时执行
}else{
//当条件为假时执行
}
如果条件为真执行第一个代码块否则执行else代码块
if(condition1){
//当条件1为真时执行的代码块
}else if(condition2){
//当条件2为真是执行的代码块
}else if(condition3){
//当条件3为真是执行的代码块
}
根据顺序依次判断真假并执行代码。(ps:该代码只会执行第一个满足的代码块,不再进行后续)
·switch
switch{
case A:
//当表达式值等于A是执行的代码
break;
case B:
//当表达式值等于B时执行的代码
break;
default;
//当表达式与所有case都不匹配时执行的代码
break;
}
后续同理,可以有更多种case(情况)
·another switch
another switch 用法与switch类似,但是不需要break,且一个case中可包含多个expression。
*ps:switch语句不能用于判断范围或布尔表达式,每个case中的值必须是常量或字面量,不能是变量或表达式。
循环
·for
for(initialization;condition;update){
//循环体代码
}
initialization是循环的初始条件,condition是循环的条件,只有当条件都为ture时循环才会执行,而update是循环的更新操作,在每次循环迭代后执行。
·for-each
for(elementDataType elementVariable:collection){
//循环体代码
}
elementDataType是集合元素的数据类型,elementVariable是每次循环是用来表示当前元素的变量名,collection是要遍历的数组或集合。
·while
while(condition){
}
condition是一个布尔表达式用于判断循环是否继续执行,当condition为ture时才执行,当condition为false时循环终止。
ps:使用while语句时一定确保循环条件最终为false
·do-while
do{
}while(condition)
5.方法
方法分为静态方法和非静态方法
1.静态方法:可通过类名称来直接调用
2.非静态方法:调用必须先有实例,然后再通过实例来调用
3.静态方法只能引用静态变量或局部变量
6.类和对象
JAVA是一种面向对象编程的语言,这意味着学会面向对象编程是学习JAVA过程中最重要的部分。
面向对象编程,简单来说就是先创建一些我们需要的对象,然后通过一些我们创建的通用的方法来处理这些对象的数据。
创建我们需要的对象并存入数据的过程我们称之为封装。
那么对象是什么呢?对象可以是我们希望处理的数据,例如处理学生成绩时每个学生的成绩都可以称为对象;
而类则是我们用于创建对象的模型,它包含了数据成员和方法,它也一定程度上定义了对象,定义了对象的属性和方法。
7.数组
数组是我们常用对象的一种,它的本质是一个容器,用来存储一批同种类型的数据
(1)定义数组
数组有属性,最主要也最常用的是length,但是对于length需要注意的是数组创建完成后它就不可变了。
定义多维数组时,第一维数组必须初始化,其他的不必初始化,但是使用时要对其他数组的大小初始化才可以赋值。
静态初始化数组定义格式:
完整格式
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3.....};
int[] ages = new int []{12,24,36}
double[] scores = new double[]{89.9,99.5,59.5,88.0};
简化格式
数据类型[] 数组名 = {元素1,元素2,元素3,......};
int[] ages = {12,24,36};
多维数组格式
int[][] c = new int [2][3];
int[][] c = {{1,2,3},{2,3,4}}
ps:"数据类型[] 数组名"也可以写成“数据类型 数组名[]"。
什么类型的数只能存放什么类型的数据。
(2)数组的访问
数组的访问格式:数组名[索引]
System.out.println(a(0));
修改数组中的数据格式:数组名[索引] = 新内容;
访问数组的元素个数格式:
System.out.println(a.length);
ps:获取数组的最大索引格式:System.out.println(a.length - 1);
但并不绝对,索引数为0的不适用.
(3)数组的遍历
数组的遍历可以使用for循环
数组的遍历格式:for(数据类型 i = 0;i \< 最大索引;i++){
System.out.println(数组名[i]);
}
(4)可变长度参数表
可变长度参数表是使用某种特殊语法的形参表,使所定义的方法能接收任意个数的参数,并将参数自动存入数组以便在方法中进行处理。
它的参数可以是任何类型。