java的基础语法基本和C语言一致的.
标识符
- 标识符:是指在程序中,我们自己定义的内容,比如类的名字,方法的名字和变量的名字等等。
- 命名规则(硬性要求):即”字母,数字,下划线开头不能为数字“
- 标识符可以包含:英文字母26个(区分大小写),0-9数字,和_(下划线)
- 标识符不能以数字为开头
- 标识符不能是关键字
- 命名规则(推荐)
- 类命名规则:首字母大写,后每个单词首字母都大写(大驼峰式),例:HelloWorld。
- 变量命名规则:首字母小写,后每个单词首字母都大写(小驼峰式),例:userName。
- 方法命名规则:同变量。
数据类型
- 基本数据类型
- 整数型:byte,short,int,long
- 浮点型:float,double
- 字符型:char
- 布尔型:boolean
- 引用类型:字符串,数组,类,接口,Lambda
注意:
1.字符串不是基本类型,而是引用类型.
2.浮点型只是一个近似值,并不是精确值。
3.数据范围与字节数不一定相关,例如float数据范围比long的更广泛,但是float是4字节,long是8字节。
4.浮点数当中默认是double,如果一定要用float类型,需要在结尾中加上F。
整数默认类型为int要使用long类型结尾处需要加L。
变量
- 变量:程序运行期间,内容可以发生改变的量。
- 创建一个变量并且使用的格式:
- 数据类型 变量名称;//创建了一个变量
- 变量名称:数据值;//赋值,将右边的数据值,赋值交给左边的变量
- 一步到位的格式:数据类型变量名称=数据值;//在创建一个变量的同时,立刻放入指定的数据值
注意:
使用变量的时候,有一些注意事项:
1.如果创建多个变量,那么变量之间的名称不可以重复。
2.对于float和long类型来说,字母后级F和L不要丢掉。
3.没有进行赋值的变量,不能直接调用,那么右侧的数据值不能超过左侧类型的范围。
4.变量使用不能超过作用域的范围。
【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
可以通过一个语句来创建多个变量
数据类型转换
- 数据范围从小到大(自动转换)
public class Demo01_Data {
public static void main(String[] args) {
double a = 10;
int b = 10;
System.out.print(a+b);//20.0
}
}
- 数据范围从大到小(需要强制转换)
public class Demo01_Data {
public static void main(String[] args) {
double a = 10;
int b = 10;
int c = 0;
c = (int)a+b;
System.out.print(c);//20
}
}
注意:
1.强制类型不推荐使用因为有可能发精度损失、数据溢出。
2.byte/short/char这三种类型都可以发生数学运算,例如加法“+”
3.byte/short/char这三种类型在运算的时候,部会被首先提升成为int类型,然后再计算。
4.boolean不能转换。
ASCLL编码
这想必大家都知道了吧(c语言考试重点)。这里记住关键值就好。
- 48 0
- 65 A
- 97 a
运算符
算数运算符
“+ - * / %”
‘+’:
1.对于数值来说,那就是加法
2.对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。
3.对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。
“++,–”:
基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1
使用格式:写在变量名称之前,或者写在变量名称之后。例如:++num,也可以num++
使用
1.单独使用:不和其他任何操作混合,自己独立成为一个步骤。
2.混合使用:和其他操作混合,例如与赋值混合,或者与打印操作混合,等。
使用区别:
1.在单独使用的时候,前++和后++没有任何区别。也就是:++num;和num++;是完全一样的
2.在混合的时候,有【重大区别】
A.如果是【前++】,那么变量【立刻马上+1】,然后拿着结果进行使用。【先加后用】
B.如果是【后++】,那么首先使用变量本来的数值,【然后再让变量+1】。【先用后加】
注意: 只有变量才能使用自增、自减运算符。常量不可发生改变,所以不能用。
public class Demo01_data {
public static void main(String[] args) {
int x =10 ,y =20;
int c = ++x + y--;
System.out.printf("x= %d\n",x);//11
System.out.printf("y= %d\n",y);//19
System.out.printf("c= %d\n",c);//31
}
}
赋值
右向左赋值
= ,+=,-=,*=,/=,%=
比较
==,<,>,<=,>=
注意
1.比较结果一个是一个boolean型,成立是true,不成立是false。(不是c语言中1表示真)
2.如果多次判断不能连写。例如:错误 1<x<3
逻辑
&&,||,!
1.与 && 全为true,才为true,否则为false
2.或 || 至少一个为true,就是true,全是false才是false
3.非 ! 取反
与“&8”,或“||”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。
三元运算
X = A > B ? A : C
1.必须同时保证表达式A和表达式B符合左侧数据类型的要求。
2.三元运算符的结果必须被使用
Jshell
jdk在1.9之后推出jshell,可以像python的提示符界面一样一行一行的执行java语句,便于学习和写小程序。但我还是推荐用jdk1.8稳定并大量应用。
结构
** 无论多复杂的算法均可分解成:顺序,分支,判断。
顺序
public class Demo01_data {
public static void main(String[] args) {
int x =10 ,y =20;
int c = ++x + y--;
System.out.printf("x= %d\n",x);//11
System.out.printf("y= %d\n",y);//19
System.out.printf("c= %d\n",c);//31
}
}
选择结构
//单if
if(表达式){
语句体;
}
//if。。。else
if(表达式){
语句体1;
}else{
语句体2;
}
//if。。。else if。。。else
if(表达式){
语句体1;
}else if{
语句体2;
}else {
语句体n+1;
}
//swich
swich(表达式){
case 常量1 :
语句体1;
break;
case 常量2 :
语句体2;
break;
default:
语句体n;
break;
}
注意
1.多个case后面的数值不可以重复。
2.switch后面小括号当中只能是下列数据类型:
* 基本数据类型:byte/short/char/int
* 引用数据类型:String字符串、enum枚举
* switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。
循环结构
循环结构的基本组成部分,一般可以分成四部分:
1.初始化语句:在循环开始最初执行。
2.循环条件,满足则继续循环,不满足循环退出。
3.循环体:重复要做的事情内容,责于行语句成。
4.步进语句:每次循环之后都要进行的扫尾工作。
//for
for(初始化表达式;布尔表达式;步进表达式){
语句体;
}
//while
while(判断){
循环体;
}
初始化语句;
while(条件判断){
循环语句;
步进表达式;
}
//do .......while
do{
循环体
} while (条件判断);
区别
1.如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次。
2.for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用。
死循环
死循环不是一种错误,有时我们可以借助死循环,精巧的完成任务。
//死循环的标准格式:
while(true)
{
循环体;
}
嵌套循环:
int x = 0 ;
for(int i=0;i<10;i++){
for(int j=0;j<i;j++){
x = i*j;
}
}
控制
- break:
break关键字的用法有常见的两种:- 可以用在switch语句当中,一旦执行,整个switch语句立刻结束
- 还可以用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环。
- continue:
- 一种循环控制语句是continue;一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。