活动地址:CSDN21天学习挑战赛
🎈🎈 作者 whispar
🎈🎈专栏 :Java由浅入深
✨放低姿态,空杯心态✨
目录
JavaSE基础语法
一、main()方法
二、标识符
三、常见关键字
四、注释规则
五、数据类型与变量
1 . 常量与变量
2. 基本数据类型
六、类型转换
七、类型提升
八、 常见运算符
一、main()方法
public class TestBegin {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个 类。类的内容必须包含在花括号里面。
类:类中带有一个或多个方法。方法必须在类的内部声明。
方法:在方法的花括号中编写方法应该执行的语句。
✅简述Java中的main()方法
main()方法是Java程序执行的入口,它是一个定义在类中的、公开的、静态的、无返回值的,参数为一个字符串数组的方法,它的参数args与执行参数一一对应。
在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同。
二、标识符
-
合法的标识符
字母、数字以及 下划线和 $ 符号等等。
注意:标识符不能以数字开头,也不能是关键字,且严格区分大小写。
-
一般规范:
类名:每个单词的首字母大写(大驼峰) 方法名:首字母小写,后面每个单词的首字母大写(小驼峰) 变量名:与方法名规则相同
三、常见关键字
具有特殊含义的标识符称为关键字
48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。
2个保留字:goto、const。
3个特殊直接量:true、false、null。
四、注释规则
单行注释:// 注释内容 Ctrl+/
多行注释:/* 内容 */ Ctrl +Shift+/
文档注释: /** 文档注释 */(常见于方法和类描述方法和类的作用) /** + Enter
五、数据类型与变量
1 . 常量与变量
常量:固定不变的量
字符串常量、整形常量、浮点数常量、字符常量、布尔常量true和false、空常量null
变量:经常改变的内容
int a = 10; // 定义整形变量a,a是变量名也称为标识符,该变量中放置的值为10
字符串、整形、浮点型、字符型以及布尔型,在Java中都称为数据类型
2. 基本数据类型
基本数据类型:四类八种 整型、浮点型、字符型以及布尔型
整型、浮点型、字符型以及布尔型
-
整型
public class TestBegin { public static void main(String[] args) { /** 整型变量 * 1. int不论在何种系统下都是4个字节 * 2.变量在使用之前必须要赋初值,否则编译报错 * 3. int的包装类型为 Integer */ int a = 10; System.out.println(a); System.out.println(Integer.MIN_VALUE); System.out.println(Integer.MAX_VALUE); /**长整型变量 *1. 长整型变量的初始值后加L或者l,推荐加L *2. 长整型 占8个字节: -2^63~2^63-1 *3. long的包装类型为Long */ long b = 30L; System.out.println(b); System.out.println(Long.MIN_VALUE); System.out.println(Long.MAX_VALUE); /**短整型变量 * 1. short 占2个字节 16bit -32768 ~ 32767 * 3. 使用时注意不要超过范围(一般使用比较少) * 4. short的包装类型为Short */ short c = 5; System.out.println(c); System.out.println(Short.MIN_VALUE); System.out.println(Short.MAX_VALUE); /**字节型变量 * 1. byte在任何系统下都占1个字节-128 ~ 127 * 2. 字节的包装类型为Byte */ byte d = 2; System.out.println(b); System.out.println(Byte.MIN_VALUE); System.out.println(Byte.MAX_VALUE); } }
-
浮点型
/**double
*双精度浮点数 8字节
*存储方式与整数不同
*/
double d = 5.26;
/**float
*单精度浮点数 4字节
*包装类Float
*/
float f =12.5f;
-
浮点数存在一定量的精度误差,因此浮点数是个近似值,并不是精确值
-
在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。如果想得到 小数, 需用 double 类型计算.
- 字符型
char ch1 ='h';
System.out.println(ch1);
char ch2 = 97;
System.out.println(ch2);
Java 中char使用 Unicode 编码表示字符. 因此一个字符占用两个字节即16位, 表示的字符种类更多, 包括中文,并兼容ASCLL 码
- 布尔型
-
boolean 类型的变量只有两种取值, true 表示真, false 表示假.
-
Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.
六、类型转换
隐式类型转换(编译器自动进行处理 )
float f = 3.14F;
double d = 5.12;
d = f; // 编译器会将f转换为double,然后进行赋值
f = d; // double表示数据范围大,直接将float交给double会有数据丢失,不安全
byte b1 = 100; // 编译通过,100没有超过byte的范围,编译器隐式将100转换为byte
byte b2 = 257; // 编译失败,257超过了byte的数据范围,有数据丢失
数据范围小的转为数据范围大的时会自动进行
强制类型转换(经过一定的格式处理 )
int a = 10;
long b = 100L;
b = a; // int-->long,数据范围由小到大,隐式转换
a = (int)b; // long-->int, 数据范围由大到小,需要强转,否则编译失败
float f = 3.14F;
double d = 5.12;
d = f; // float-->double,数据范围由小到大,隐式转换
f = (float)d; // double-->float, 数据范围由大到小,需要强转,否则编译失败
注意事项:
不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型
如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是**可能精度丢失
将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查
强制类型转换不一定能成功,不相干的类型不能互相转换
七、类型提升
/**
*类型提升
*参与运算的数据小于四个字节,进行整型提升,并使用int类型接收
*/
//计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short
//这种低于 4 个字节的类型, 会先提升成 int, 再参与计算
byte x =10;
byte y =20;
int c = a+b;
不同类型的数据混合运算, 范围小的会提升成范围大的.
对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算
-
字符串类型转换
String s1 = "hello";
String s2 = " world";
System.out.println(s1);
System.out.println(s2);
System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接
在有些情况下,需要将字符串和整形数字之间进行转换:
int num = 10;
// 方法1
String str1 = num + "";
// 方法2
String str2 = String.valueOf(num);
String str = "100";
int num = Integer.parseInt(str)
八、 常见运算符
✅逻辑运算符
逻辑与 &&
表达式1 && 表达式2,左右表达式必须是boolean类型的结果。 两个表达式都为真,结果才是真
逻辑或 || 左右表达式至少有一个位真,则结果为真
逻辑非 ! 真变假,假变真
✅位运算符
按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.
按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1
按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0
按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1
✅移位运算符
<<左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方. >>右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方. >>>无符号右移: 最右侧位不要了, 最左侧补 0
☁由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替
💖如果文章对你有帮助,请多多点赞、收藏、评论、关注支持!!💖