【Java初阶】--JavaSE基础语法

2年前 (2022) 程序员胖胖胖虎阿
175 0 0

 

活动地址:CSDN21天学习挑战赛

ced485cbb11e458d81a746890b32cf3f.gif

🎈🎈 作者 whispar
🎈🎈专栏 :Java由浅入深

✨放低姿态,空杯心态✨

7abc9c8906564477a6679bb15d368e37.gif


目录

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. 基本数据类型

  • 基本数据类型:四类八种 整型、浮点型、字符型以及布尔型

  • 整型、浮点型、字符型以及布尔型

    【Java初阶】--JavaSE基础语法


  • 整型

    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, 数据范围由大到小,需要强转,否则编译失败

注意事项:

  1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型

  2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是**可能精度丢失

  3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查

  4. 强制类型转换不一定能成功,不相干的类型不能互相转换

七、类型提升

/**
*类型提升
*参与运算的数据小于四个字节,进行整型提升,并使用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次方的时候可以用移位运算代替

               💖如果文章对你有帮助,请多多点赞、收藏、评论、关注支持!!💖        

ced485cbb11e458d81a746890b32cf3f.gif

版权声明:程序员胖胖胖虎阿 发表于 2022年10月12日 上午3:24。
转载请注明:【Java初阶】--JavaSE基础语法 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...