目录
- Java 的基础语法
-
-
- 注释
-
- 标识符
-
-
- 标识符命名规则
- 默认遵守的规范
-
- Java中的关键字
- 常量
- 变量
- 数据类型
-
-
- 计算数据类型的大小
-
- 类型转换
-
-
- 隐式类型转换
- 强制类型转换
- 类型提升
-
- 字符串类型
活动地址:CSDN21天学习挑战赛
Java 的基础语法
因为有C语言的基础,之前在C语言学到过的知识都会简单的略过,重点介绍C语言和Java不同的地方
注释
Java中的注释有三种:
- 单行注释 //
- 多行注释 /* 内容 */
- 文档注释 /** 内容 */
使用方法:
单行注释
// 这是用来解释注释的应用方法的
多行注释
/*
这是用来解释注释的应用方法的
*/
文档注释
/**
这是用来解释注释的应用方法的
*/
用的最多的就是单行注释了,文档注释可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档
标识符
标识符是程序员自己定义的类名、常量、变量名等,还可以定义接口名,方法名
标识符命名规则
标识符命名规则要符合语法规定,否则会报错
- 标识符可以用
字母(包括中文)、数字、下划线、美元符号
组成,除此之外不能包括其他符号 - 标识符不能以数字开头
- Java 的关键字也不能做标识符
- 严格的区分大小写字母,有些情况下大写 A 和小写 a 是不一样
默认遵守的规范
- 起的名字最好是看到就知道它的作用是什么
- 起名字时遵守
驼峰命名
方式,例如:每个单词的首字母大写
Java中的关键字
下面就是关键字列表:
byte | char | short | int | long |
---|---|---|---|---|
float | double | boolean | enum | const |
if | else | for | while | do while |
break | continue | case | define | extends |
protected | abstract | assert | catch | class |
final | finally | goto | implements | import |
instanceof | interface | native | new | package |
private | public | return | strictfp | static |
super | switch | synchronized | this | throw |
throws | transient | try | void | volatile |
常量
固定不变的量就被称之为常量
例如:
字符串常量:由1个以上用 “ ”
括起来的,比如“123”,“abc”,“hello”,“你好”
整形常量:整形的数字,比如:123
浮点常量:有小数的数字 比如:1.3,0.26
字符常量:由 ' '
括起来的字符 比如:‘A’、‘B’
布尔常量:只要二种true(真) 和 false(假)
变量
Java 中的变量和C 语言略有不同
在Java中使用变量需要注意的点:
- Java 中定义变量
必须赋初始值
,否则会报错 - 在赋初始值时,初始值不能超过数据类型的范围,否则会溢出,也会报错
- C语言的
字符
是使用ASCII码
表示字符,而 Java 中使用Unicode码
表示字符,不过Java的Unicode码
也包含了ASCII码
- Java 中
不是用0表示假非0表示真
,而是使用布尔类型(bollean)的true 表示真,false 表示假
数据类型
数据类型是用来声明变量,根据不同的类型分配不同的空间
基本数据类型可以划分为 四 大类 和 八 小种
四大类:
- 整形(没有小数)
byte、short、int、long - 浮点型
float、double - 布尔型(
boolen
)
只有两个值true和false,true表示真,false表示假 - 字符型
char
八小种:
数据类型 | 字节大小 |
---|---|
字节型(byte) | 1字节 |
字符型(char) | 2字节 |
短整形(short) | 2字节 |
整形(int) | 4字节 |
长整形(long) | 4字节 |
单精度浮点型(float) | 4字节 |
双精度浮点型(double) | 8字节 |
布尔型(boolan) | 没有规定 |
- Java 是没有分平台的,所以大小都按照上面来
- Java 是没有无符号类型的,所以都是有符号类型
- 这里和C语言不同的地方,需要注意的是
char
类型是2
个字节, - float 的数据类型在定义时,要在后面加上
f
,否则会默认为double
类型
long的数据类型同样在定义时,要在后面加上L
,否则会默认为int
类型
例如:
public static void main(String[] args) {
float a = 63.8f;
long b = 6L;
System.out.println(a);
System.out.println(b);
}
计算数据类型的大小
public class JavaEight {
public static void main(String[] args) {
// 计算 int 的最大值和最小值
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
// 计算 char 的最大值和最小值
System.out.println(Character.MAX_VALUE);
System.out.println(Character.MIN_RADIX);
}
}
- 其他的类型都是
类型名.MAX_VALUE
的格式,首字符是大写的 - 只有
int
和char
的不同,类型名分别是Integer
和Character
类型转换
Java中也存在强制类型转换(显式)、隐式类型转换(隐式)等,不存在C语言的截断
隐式类型转换
隐式类型转换是自动进行转换的,代码不需要经过任何处理,在代码编译时,编译器会自动进行处理
隐式类型转换都是数值较小的向数据范围大的转换
例如:
public static void main(String[] args) {
int a = 100;
long b = 6;
b = a;
System.out.println(b);
}
强制类型转换
强制类型转换是指 数据类型较大数值强行存放到数据类型较小的空间中
例如:
public static void main1(String[] args) {
int a = 10;
long b = 100;
a = b; // 这种是不行的,编译器会报错
a = (int)b; //正确的方法
}
其他的数据类型同上都是类似的
注意事项:
- 数据范围小的向数据范围大的强制类型转换,会造成精度丢失
- 强制类型转换有可能会失败,不相干的类型不能互相转换
类型提升
在不同的数据类型进行运算时,数据类型小的会被提升到数据类型大的
例如:
int 和 long 之间的运算,int 类型会先被提升到long 类型
public static void main(String[] args) {
int a = 10;
long b = 20;
//int c = a+b; 这是错误的示范
long c = a+b; //正确的写法
}
}
byte 和 byte 的运算
public static void main(String[] args) {
byte a = 1;
byte b = 3;
//byte c = a+b; 这是错误的示范
int c = a+b; //正确的写法
}
- byte 和 byte 虽然都是相同的类型,但是会出现编译器报错,原因是 a 和 b 是 byte 类型,但是进行运算时会同时进行类型提升成 int 类型,最后的结果是 int 类型,所以用 byte 接收就会出错
总结:
- 不同类型的混合运算会提升到最大的数据类型
- 对于 short 和 byte 比 4 个字节小的类型,都会先提升到 int 类型再计算
字符串类型
在Java 中字符串是有类型的,是使用 String 类定义字符串的
public static void main(String[] args) {
int a = 10;
int b = 20;
String n = "hello";
System.out.println("a:" + a + "b:"+b);
System.out.println("a:" + a +b);
System.out.println(a+b+"hello");
}
结果:
- 在Java中字符串不是以‘\0’ 为结束标志的
Java的字符串可以和整数进行相加的,得出的结果是以拼接的形式打印
当字符串和整数在一起使用 + 时,就是拼接到一起的意思 - 第一个结果:
从左边遇到的第一个是字符串,那后面就是以拼接的形式打印
结果: a :10 b:20
第二个结果:
后面的 a + b 并不是相加,由于第一个是字符串,所以后面就是以拼接的形式打印
结果: a :1020
第三个结果:
左边第一遇到的不是字符串,按正常计算
结果:30hello
还有就是字符串可以和字符串进行拼接
String a = "hello ";
String b = "world";
System.out.println(a+b);
结果: