阿嘉的Java日志 [第二章:基础语法]

187 阅读1分钟

[内容时间:2021.08.08]

标识符

1,标识符是啥

在Java源程序中凡是程序员有权利自己命名的单词都是标识符。

标识符在EditPlus编辑器当中以黑色字体高亮显示。

标识符可以标识什么元素呢

  • 类名

  • 方法名

  • 变量名

  • 接口名

  • 常量名

……

2,标识符的命名规则(不符要求会报错)

只能由数字,字母,下划线_,美元符号$组成.

不能以数字开头

严格区分大小写

关键字不能做标识符

3,标识符的命名规范!

最好见名知意

public class UserService
{
    public void login(String username,String password) {   
    }
}

遵守驼峰命名方式

SystemService

UserService

CustomerService

  • 类名,接口名:首字母大写,后面每个单词首字母大写
  • 变量名,方法名:首字母小写,后面每个单词首字母大写
  • 常量名:全部大写

关键字

每个敲一百遍(滑稽jpg.)

编码方式,字符编码

java语言的源代码采用Unicode编码方式,所以"标识符"可以使用中文。

现在在企业里面实际开发中,一般使用UTF-8 编码方式比较多。【统一编码方式】

数据类型

数据类型大小比较

byte < short < int < long < float < double

< char < ( char 和 short 等价 )

还有很多类型可以在SE类库字节码,SE类库源码里面找。

char类型

char类型的变量字面值能用转义字符。

//比如
char i = '\n';
char j = '\t';
char k = '\';

JDK中自带的native2ascii.exx命令,可以将文字转换成Unicode编码。

怎么使用?①在命令行输入native2ascii ②回车 然后光标闪烁,输入文字,回车 ③得出文字对应的Unicode编码。

转义字符能将“编码”自动解码后输出,比如

//具体用法
char a = '\u4e2d';
println(a);   //结果为“中”

//但是“中”字的Unicode编码是4e2d。 \u表示转义。表示后面的那一堆是Unicode编码。

Boolean类型

boolean类型在实际的开发中非常重要。经常使用在条件控制语句当中。

运算符

01赋值运算符

基本赋值运算符“=”

扩展赋值运算符“+=,-=,*=,/=,%=”

这两类运算符的区别是。

//例如byte类型
byte i = 10;
i = i + 5;  // 到这里编译会报错,因为计算机的编译机跟运算机是分开的
            // i是byte类型,5是int类型,类型不兼容,语法错误
i += 5 ;    // 这步能编译通过。
/*
    扩展类运算符包括了强制转换。
    比如i += 5 ;
    等价于 i = (byte)(i+5);
    能编译通过,但是大容量转小容量有可能会损失精度
*/

02关系运算符

关系运算符是 > , < , == , != , >= , <=

关系运算符的结果一定是布尔类型(ture / false)

03逻辑运算符

逻辑与 & , 逻辑或 | , 短路与 && , 短路或 || , 非 !

逻辑与& 短路与&& 的区别

int x = 10;
int y = 8;
System.out.println(x<y & ++x<y);     //逻辑与
System.out.println(x);              //x的运行结果为11
==========================================================

System.out.println(x<y && ++x<y);    //短路与
System.out.println(x);              //x的运行结果为10
//由此可见&&之前的运算结果如果为0,则后面的语句不执行。

/*
    总结:
        第一个表达式执行结果为false,发生短路与&&(也就是不执行后面语句)(因为与运算第一个结果为false,无论后        面什么结果都不能进行下去,所以后面语句不用执行,短路掉)       
        
        第一个表达式执行结果为ture,发生短路或 ||(也就是不执行后面语句)(因为或运算第一个结果为ture,无论后面        什么结果都可以进行下去,所以后面语句不用执行,短路掉)        
*/

控制语句

选择结构:

  • if 、if…else
  • switch

循环结构

  • for
  • while
  • do…while

控制循环结构

  • break
  • continue

if if…else 语句

写出买伞问题

switch语句

写出有简单计算器功能的小程序

JDK6以及之前的版本,switch只支持int类型,JDK7之后可以使用byte short char String,其中byte short char转化成int

for语句

写出99乘法表

判断1~10000 的质数,要求每八个换一行

while语句

有一种情况,当while语句为死循环时(括号里直接写字面值: ture ),后面有语句时则编译机报错。

while(ture){                        //ture的位置可以写 1 吗?
    System.out.println("死循环");
} 
System.out.println("Hellow WDNMD");     //提示错误:无法访问的语句
                                     //编译器检测到永远无法访问到此语句,所以编译器报错

有另一种情况,当while还是死循环时 (括号里写boolean表达式),后面有语句时,编译机不会报错

int i = 20;
int j = 10;
while(i>j){
    Syste.out.println("呵呵");
}
System.out.println("Hellow WDNMD");
/*
关系运算符在运行期才会得出结果,程序没有运行是不会运算这个关系的。
程序编译机只知道他是ture还是false却不知道他的结果是一个真,因为它没运行。
*/
/*
    变量(i,j)是在程序运行阶段才开辟的
    若while(20>10){
        //java语句;
        //java语句;
    }
    则会报错,因为20>10相当于ture
*/

方法

方法执行内存分析(重要)

方法重载(重要)

递归

方法递归