Java基础与拓展
注释
不写注释的人不配拥有母亲。
——不愿透露姓名的李姓前端
单行注释
//这是一行注释
//这是一行注释
//这是一行注释
IDEA快捷键:Ctrl+/
多行注释
/*这是一行注释
这是一行注释
这是一行注释
这是一行注释
*/
文档注释
/**
* @deprecated hello,word!
* @author Mr.Crow
*/
有趣的代码注释
/***
* ii. ;9ABH,
* SA391, .r9GG35&G
* &#ii13Gh; i3X31i;:,rB1
* iMs,:,i5895, .5G91:,:;:s1:8A
* 33::::,,;5G5, ,58Si,,:::,sHX;iH1
* Sr.,:;rs13BBX35hh11511h5Shhh5S3GAXS:.,,::,,1AG3i,GG
* .G51S511sr;;iiiishS8G89Shsrrsh59S;.,,,,,..5A85Si,h8
* :SB9s:,............................,,,.,,,SASh53h,1G.
* .r18S;..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,.1H315199,rX,
* ;S89s,..,,,,,,,,,,,,,,,,,,,,,,,....,,.......,,,;r1ShS8,;Xi
* i55s:.........,,,,,,,,,,,,,,,,.,,,......,.....,,....r9&5.:X1
* 59;.....,. .,,,,,,,,,,,... .............,..:1;.:&s
* s8,..;53S5S3s. .,,,,,,,.,.. i15S5h1:.........,,,..,,:99
* 93.:39s:rSGB@A; ..,,,,..... .SG3hhh9G&BGi..,,,,,,,,,,,,.,83
* G5.G8 9#@@@@@X. .,,,,,,..... iA9,.S&B###@@Mr...,,,,,,,,..,.;Xh
* Gs.X8 S@@@@@@@B:..,,,,,,,,,,. rA1 ,A@@@@@@@@@H:........,,,,,,.iX:
* ;9. ,8A#@@@@@@#5,.,,,,,,,,,... 9A. 8@@@@@@@@@@M; ....,,,,,,,,S8
* X3 iS8XAHH8s.,,,,,,,,,,...,..58hH@@@@@@@@@Hs ...,,,,,,,:Gs
* r8, ,,,...,,,,,,,,,,..... ,h8XABMMHX3r. .,,,,,,,.rX:
* :9, . .:,..,:;;;::,.,,,,,.. .,,. ..,,,,,,.59
* .Si ,:.i8HBMMMMMB&5,.... . .,,,,,.sMr
* SS :: h@@@@@@@@@@#; . ... . ..,,,,iM5
* 91 . ;:.,1&@@@@@@MXs. . .,,:,:&S
* hS .... .:;,,,i3MMS1;..,..... . . ... ..,:,.99
* ,8; ..... .,:,..,8Ms:;,,,... .,::.83
* s&: .... .sS553B@@HX3s;,. .,;13h. .:::&1
* SXr . ...;s3G99XA&X88Shss11155hi. ,;:h&,
* iH8: . .. ,;iiii;,::,,,,,. .;irHA
* ,8X5; . ....... ,;iihS8Gi
* 1831, .,;irrrrrs&@
* ;5A8r. .:;iiiiirrss1H
* :X@H3s....... .,:;iii;iiiiirsrh
* r#h:;,...,,.. .,,:;;;;;:::,... .:;;;;;;iiiirrss1
* ,M8 ..,....,.....,,::::::,,... . .,;;;iiiiiirss11h
* 8B;.,,,,,,,.,..... . .. .:;;;;iirrsss111h
* i@5,:::,,,,,,,,.... . . .:::;;;;;irrrss111111
* 9Bi,:,,,,...... ..r91;;;;;iirrsss1ss1111
*/
标识符&数据类型
Java中所有的组成部分都需要名字,包括类名、变量名、方法名,这些都被称为标识符。一些已经被Java定义的保留标识符称之为关键字,关键字不能用做标识符使用。
标识符
所有的标识符都应该以字母“A-Z或者a-z”,美元符“$'',或者下划线"_"开始。
首字符之后可以是字母“A-Z或者a-z”,美元符“$'',或者下划线"_"或数字的任何字符组合。
可以使用中文,但为了代码良好的可读性,不建议这样使用,也不建议使用拼音。
数据类型
JAVA是一门强类型语言,
所有的变量使用要严格符合规定,必须先声明(定义)才能使用。
JAVA的数据类型分为两大类,基本类型和引用类型,基本类型又细分为“四类八种”。
除开“四类八种”其他的都是对象,也就是引用类型,包括类、接口和数组。
-
基本类型
数据类型关键字
-
String
声明一个字符串变量。
String中的每一个char占2个字节
注意:在JAVA中string不是一个关键字。
它是一个类所以string应该写作String,这一点请跟其他语言区分
public class Demo1 {
public static void main(String[] args) {
//整数类型
int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 40L;
//long变量的值后面加一个大写的L用作区分。
//浮点类型(小数)
float num5 = 50.123F;
//float变量的值后面加一个大写的F用作区分。
double num6 = 3.141592653;
//字符类型
char gender = '男';
String name = "乌鸦の学习";
//String是一个类!不是关键字!
//布尔类型
boolean flag = true;
}
}
-
char
声明一个单个字符变量。
一个char,2个字节。
-
int
声明一个整型变量。
4个字节,范围:-2147483648至2147483647。
-
boolean
声明一个布尔类型变量。
1个字节,其值只有true和false两个,在计算机中表现为0和1
-
byte
声明一个字节变量。
1个字节,范围:-128至127
-
short
声明一个短整型变量。
2个字节,范围:-32768至32767
-
long
声明一个长整形变量。
8个字节,范围:-9223372036854775808至9223372036854775807
有点长,写错了别打我 -
float
声明一个单精度浮点类型变量。
4个字节
-
double
声明一个双精度浮点类型变量。
数据类型知识拓展
整型拓展
public class Demo2 {
public static void main(String[] args) {
int num1 = 10; //十进制
int num2 = 0b10; //二进制在值前加0b表示
int num3 = 010; //八进制在值前加0表示
int num4 = 0x10; //十六进制在值前加0x表示
System.out.println(num1);
//打印结果为10
System.out.println(num2);
//打印结果为2
System.out.println(num3);
//打印结果为8
System.out.println(num4);
//打印结果为16
}
}
进制:
-
二进制
在值前加0b表示。
-
八进制
八进制在值前加0表示。
-
十六进制
十六进制在值前加0x表示。
浮点类型拓展
public class Demo3 {
public static void main(String[] args) {
float num1 = 0.1f;
double num2 = 0.1;
System.out.println(num1 == num2);
//结果返回false
float num3 = 8880000000.8888f;
float num4 = num3 + 1;
System.out.println(num3 == num4);
//结果返回true
}
}
浮点类型的特性:
-
名词解释
浮点类型,点即小数点,浮点即小数点会浮动,即浮点数都是大约,接近但不等于。
-
特性:
-
有限性
小数是无限的,但是浮点类型是有限的。
-
离散性
在其范围内无法表示。
-
舍入误差
简单理解即为了表示这个数而四舍五入产生的误差。
-
-
金融类业务:
如果必须进行比较的情况,如金融类业务比较余额的时候使用BigDecimal即数学工具类。
-
强调:
-
综上所述。
-
请完全避免使用浮点类型的变量进行比较!
-
请完全避免使用浮点类型的变量进行比较!
-
请完全避免使用浮点类型的变量进行比较!
-
字符类型拓展
public class Demo4 {
public static void main(String[] args) {
char c1 = 'a';
char c2 = '男';
System.out.println(c1);
//打印结果为 a
System.out.println(c2);
//打印结果为 男
System.out.println((int) c1); //强制类型转换
//打印结果为97
System.out.println((int) c2); //强制类型转换
//打印结果为30007
System.out.println(c1 == 97);
//结果返回true
System.out.println(c2 == 30007);
//结果返回true
char c3 = '\u0061';
//61为97的十六进制
System.out.println(c3);
//打印结果为 a
char c4 = '\u7537';
//7537为30007的十六进制表示
System.out.println(c4);
//打印结果为 男
}
}
所有的字符在计算机中本质还是数字。
计算机通过编码表进行字符与数字之间的编解码。
-
编码表
即Unicode表,在计算机中范围表示为u0000至uFFFF,即65535。
当字符传入计算机中时,计算机通过Unicode表将用对应的16进制数字来表示。
-
字符类型的特性
-
字符类型可以转换为整数类型来表示,默认为10进制。
-
字符类型可以与整数类型向比较,如与Unicode表相等则结果为ture。
-
通过 \u 转义符可以通过16进制0000至FFFF来输出字符。
-
转义字符
即通过斜杠 \ 将之后的字符转义。
该表格引用至https://www.cnblogs.com/DreamDrive/p/4676534.html
博主:SummerChillCoder
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\ | 代表一个反斜线字符''' | 092 |
' | 代表一个单引号(撇号)字符 | 039 |
" | 代表一个双引号字符 | 034 |
\0 | 空字符(NULL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人