Java 基础语法

Java 基础语法

注释

//单行注释
//多行注释
/*多行注释
多行注释
*/
//文档注释
/**
*
* ░░░░░░░░░░░░░░░░░░░░░░░░▄░░
* ░░░░░░░░░▐█░░░░░░░░░░░▄▀▒▌░
* ░░░░░░░░▐▀▒█░░░░░░░░▄▀▒▒▒▐
* ░░░░░░░▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐
* ░░░░░▄▄▀▒░▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐
* ░░░▄▀▒▒▒░░░▒▒▒░░░▒▒▒▀██▀▒▌
* ░░▐▒▒▒▄▄▒▒▒▒░░░▒▒▒▒▒▒▒▀▄▒▒
* ░░▌░░▌█▀▒▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐
* ░▐░░░▒▒▒▒▒▒▒▒▌██▀▒▒░░░▒▒▒▀▄
* ░▌░▒▄██▄▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒
* ▀▒▀▐▄█▄█▌▄░▀▒▒░░░░░░░░░░▒▒▒
* 就这样看着你们这群单身狗,一句话也不说(doge
*/

其他有趣的注释https://blog.csdn.net/ydk888888/article/details/81563608

标识符和关键字

标识符

定义:Java 中标识符是为方法、变量或其他用户定义项所定义的名称。

标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下:

  • 标识符由数字(09)和字母(AZ 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
  • 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。

注:Java区分大小写, 标识符不能与关键字重复,尽量别用中文或拼音

image-20210124155039647

关键字

定义:关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。

  • 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
  • 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
  • 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
  • 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
  • 保留字:true、false、null、goto、const。

参考http://c.biancheng.net/view/5613.html

数据类型

基本类型

//八大数据类型
//整型
int num1 = 10;
byte num2 = 2;
short num3 = 30;
long num4 = 22L;//Long类型要加L
//小数,浮点数
float num5 = 10.1f;//float类型要加f
double num6 = 3.141592653589793238462643;
//字符
char name ='中';//只能是一个字母、数字、字和符号
//字符串
String namea = "小王"; //String不是关键字,是一个类
//布尔值
boolean flag = true;
boolean flag1 = false;

引用数据类型

类型转换

由高到低:byte,short,char,int,long,float,double

  • 强制转换

    由低到高

  • 自动转换

    由高到低

  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 由高到低可能存在内存溢出,或精度问题

  4. JDK7以上数字直接可以用下划线分割。例:

     long money = 10_0000_0000
    

自动转换

整数拓展

进制 二进制0b 八进制0 十进制 十六进制0x

int i = 0b10;
int i2 = 10;
int i3 = 010;
int i4 = 0x10;
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);

浮点数拓展

银行业务如何表示?

如果使用float和double?

float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f);
System.out.println(d);
System.out.println(f==d);//false

float f1 = 1212135456121555f;
float f2 = f1+1;
System.out.println(f1==f2);//true

debug结果

浮点数是有限的,离散的。存在四舍五入误差。尽量不要用浮点数计算钱数

字符拓展

char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);

输出结果

所有字符的本质是数字

#Unicode编码表:(97 = a 65=A) 范围0 ~ 65536(U0000 ~ UFFFF)

转义字符

转义符 意义
\r 回车
\n 换行
\t 水平制表(跳到下一个TAB位置)
\v 垂直制表
\\ 反斜线\
\' 单引号
\" 双引号

参考https://blog.csdn.net/weixin_44560940/article/details/95488167

布尔值拓展

if (flag==true){}
if (flag){}//和上面意思一样
原文地址:https://www.cnblogs.com/LZC1402548603/p/14323082.html