Java基础语法

一、标识符

1.1 概述

  • 在Java语言中,用来给类、方法、变量、常量、包等内容命名的字符序列

    • 用来取名字的一个字符串

1.2 标识符组成

  • 字母

  • 数字

  • 下划线_

  • 美元符$

1.3 命名规则

统一规则
  • 见名知意

    • 看到名字大概能猜到是什么作用

    name        xingMing    // 姓名
    age         nianLing    // 年龄
    address     diZhi       // 地址
    info        xinXi       // 信息
    balance     yuE         // 余额
  • 不能使用数字开头

    • 100num ×

  • 不能使用关键字和保留字

类名
  • class关键字后面的名字

    • HelloWorld、Demo01...

  • 所有单词首字母大写

    • 大驼峰命名法

方法【函数】名
  • 方法表示一个功能,一般是动词

    • main、getAge、setName、charge...

  • 第一个单词全部小写,后面使用单词首字母大写

    • 小驼峰命名法

变量名
  • 表示一个属性,一般是名词

    • name、age、address、money、myAccount、ageOfYou

  • 第一个单词全部小写,后面使用单词首字母大写

    • 小驼峰命名法

常量名
  • 固定不变的数据

    • 祖国、公司名、祖籍

    • COUNTRY、COMPANY_NAME、ORIGINAL_FAMILY_HOME

  • 单词中的所有字母大写,多个单词使用下划线连接

包名
  • 公司域名倒着书写

    • com.company.项目名.模块名

    • com.baidu.项目名.模块名

    • com.jd.项目名.模块名

1.4 标识符命名练习

  • 类名

    电脑、水杯、用户、人、学生、桌子

    Computer、WaterCup、User、Person、Student、Desk

  • 方法

    取钱、存钱、充电、玩游戏、学习、监听工作状态

    takeMoney、saveMoney、charge、playGame、study、mnitorWorkingStatus

  • 变量

    姓名、地址、个人信息、是否会员、用户状态、身份证号码

    name、address、info、isMember、userStatus、id

  • 常量

    祖国、公司名、祖籍

    COUNTRY、COMPANY_NAME、ORIGINAL_FAMILY_HOME

二、关键字

2.1 概述

  • 在Java中,被赋予了特殊含义的标识符

    • class、public、static、void、、、

  • 已经被Java语言占用,开发者不能再次使用

2.2 关键字大全

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

三、变量

3.1 概述

  • 变量是在内存中开辟的一片空间,用来存储对应类型的数据

3.2 变量入门案例

class Demo01 {
    public static void main(String[] args) {
​
        /*
            年龄
            整数 年龄 = 26;
​
            体重
            小数 体重 = 67.5;
​
            性别
            字符 性别 = '男';
​
            是否毕业
            布尔 是否毕业 = 真;
        */
        // 变量年龄,类型是整数,数据是26
        int age = 26;
​
        // 变量体重,类型是小数【浮点型】,数据是67.5
        double weight = 67.5;
​
        // 变量性别,类型是字符型【只有一个文字】
        char gender = '男';
    
        // 变量是否毕业,类型是布尔,数据是true/false
        boolean isGraduated = true;
​
        System.out.println("Hello World!");
    }
}

3.3 创建变量

先声明,后赋值
  • 先开辟空间,后面再去存入数据

int a;  // 开辟空间
// 十万行代码飘过...
a = 100;    // 存入数据
声明的同时赋值
  • 开辟空间的时候直接存入数据

int b = 200;
一次创建多个变量【使用较少】
  • 同时开辟多个相同类型的空间

int a,b,c;
​
int x=10,y=20,z=30;

四、数据类型

4.1 概述

  • 根据数据的种类和大小,把数据进行分类的操作

  • Java是强类型编程语言,每一条数据都有其对应的类型

4.2 分类

基本类型
  • 整数

  • 小数

  • 字符

  • 布尔

引用类型
  • 除了基本类型,剩下的全部是引用类型

    • String

    • System

    • Object

    • 数组

    • ... ...

4.3 整数类型

  • 不同大小的整数应该分配对应大小的空间

    • 节省空间

    • 方便管理

  • 如果一个整数没有声明类型,默认的类型是int

    • -2147483648 ~ 2147483647

类型名称大小范围
byte字节型1字节-128~127
short短整型2字节-32768~32767
int整型4字节-2^31 ~ 2^31-1
long长整型8字节-2^63 ~ 2^63-1
class Demo04 {
    public static void main(String[] args) {
        byte b = 100;
        System.out.println(b);
        short s = 32000;
        System.out.println(s);
​
        int i = 10000;
        System.out.println(i);
        
        // 过大的整数需要使用L标记
        long l = 12345678900L;
        System.out.println(l);
    }
}

4.4 小数类型【浮点型】

  • 小数也有长短之分,不同长度的小数占有的空间也不相同

类型名称大小
float单精度浮点型4字节
double双精度浮点型8字节
  • 小数类型默认是double

    • 因为小数的位数增加很容易:10.0 / 3 = 3.3333333.....

class Demo05 {
    public static void main(String[] args) {
        // 创建双精度小数
        double d = 3.1415926;
        System.out.println(d);
​
        // 创建单精度小数,小数默认的类型是double,float类型的变量需要使用F标记
        float f = 3.1415926F;
        System.out.println(f);
        // 小数有可能不准确
        System.out.println(10.0 / 3);
    }
}

4.5 布尔型

  • 程序中需要大量的逻辑、关系判定,这些判定的结果是真或者假

  • 编程语言中新增了布尔类型,用来表示上述结果

  • 布尔类型只有两个数据

    • true

    • false

类型名称大小范围
boolean布尔型true / false
class Demo06 {
    public static void main(String[] args) {
        // 创建boolean类型变量b
        boolean b = true;
        System.out.println(b);
​
        // 修改变量b中的数据
        b = false;
        System.out.println(b);
​
        // 创建boolean类型变量bb
        boolean bb = false;
        System.out.println(bb);
    }
}

4.6 字符型

  • 用来表示单个字符【必须是一个字符,不能多或者少】

类型名称大小范围
char字符型2字节0~65535
class Demo08 {
    public static void main(String[] args) {
        char c01 = 'A';
        System.out.println(c01);
​
        c01 = '张';
        System.out.println(c01);
​
        c01 = '&';
        System.out.println(c01);
        // 字符使用单引号包裹,必须是一个字符
        c01 = ' ';
        System.out.println(c01);
    }
}
​
        // 使用0~65535之间的数字赋值
        char c02 = 97;
        System.out.println(c02);
        c02 = 98;
        System.out.println(c02);
        c02 = 99;
        System.out.println(c02);
        c02 = 100;
        System.out.println(c02);
​
        // 使用十六进制数字赋值
        char c03 = '\u0061';
        System.out.println(c03);
​
        char c04 = 'A'; //c04=='A', 'A'==65
        System.out.println(c04);
        System.out.println(c04 + 1);    // 65 + 1 = 66
​
        System.out.println('杜' + 1 - 1);
​
        char c05 = 26460;
        System.out.println(c05);
        System.out.println((int)'杜');   // 强制类型转换

4.7 转义字符

  • 在Java语言中有些符号有特殊含义,有些字符需要被赋予特殊含义

  • 可以使用\X的方式进行转义

class Demo09{
    public static void main(String[] args) {
        /*
            '【单引号】在Java中石油特殊含义的,表示字符的开始或者结束
            如果需要使用单引号,可以使用'De方式进行转义
                转义:
                    如果没有特殊作用,添加特殊作用
                    如果有特殊作用,去除特殊作用
        */
        char c01 = ''';
        System.out.println(c01);
​
        String s = """;
        System.out.println(s);
​
        char c02 = '\';
        System.out.println(c01);
​
        System.out.println("HelloWorld");
        System.out.println("Hello   World");
        System.out.println("Hello\tWorld"); // \t表示按下一次制表符【约定】,t==tab
​
        System.out.println("Hello\nWorld"); // \n表示按下一次回车键,n==newLine
    }
}

4.8 类型转换

  • 在Java中,不同类型的数据是可以互相转换的

  • 要求类型必须兼容

自动转换
  • 小的数据放入大的空间

  • 天生安全

强制转换
  • 大的数据放入小的空间

  • 有风险

class Demo10{
    public static void main(String[] args) {
​
        // 创建1字节的空间,存储数字100
        byte b = 100;
        // 把1字节的数据放入4字节的空间,天生安全
        int i = b;
        
        // 创建4字节空间,存储数据10000
        int ii = 10000;
        // 把4字节的空间放入1字节,有风险
        /*
            如果int的数据比较小【-128~127】,能放得下
            如果int的数据比较大【超过127或者小于-128】,只能容纳一部分
        */
        byte bb = (byte)ii;
        
        System.out.println(bb);
    }
}

五、进制

5.1 概述

  • 进制也就是进位计数制,是人为定义的带进位的计数方法。

  • 135 为什么是一百三十五?

135 = 100 + 30 + 5
    = 1 * 10^2 + 3 * 10^1 + 5 * 10^0
    
3333 = 3000 + 300 + 30 + 3
     = 3 * 10^3 + 3 * 10^2 + 3 * 10^1 + 3 * 10^0

5.2 进制分类

  • 二进制

    0~1
  • 八进制

  • 十进制

  • 十六进制

    0~9
    a~f
    a=10
    b=11
    c=12
    d=13
    e=14
    f=15

5.3 二进制

  • 逢二进一的一种计数制度

  • 源自计算机元件的特征

    • 有电和无电

    • 有磁和无磁

六、运算符

6.1 概述

  • 在数据处理过程中参与运算的符号

    + - * / =
  • 算术运算符

  • 关系运算符

  • 赋值运算符

  • 逻辑运算符

  • 三元运算符

  • 位运算符

6.2 算术运算符

+   两个数据相加
-   两个数据相减
*   两个数据相乘
/   两个数据相除
%   两个数据整除之后的余数 10 % 3 = 1==》 10 / 3 = 3...1
++  自增一个数值
--  自减一个数值
class Demo11{
    public static void main(String[] args) {
        int a = 15;
        int b = 10;
        /*
            "a = "  是纯文字,固定的内容
            +       拼接,Java中拼接字符串使用这个符号
            a       变量a
        */
        System.out.println("a = " + a);
        System.out.println("a+b = " + a+b);     // 拼接字符串
        System.out.println("a+b = " + (a+b));   // 拼接加法运算的结果
        System.out.println("a-b = " + (a-b));
        System.out.println("a*b = " + (a*b));
        System.out.println("a/b = " + (a/b));   // 整数和整数运算的结果还是整数
        System.out.println("a%b = " + (a%b));   // 整除之后的余数:15 / 10 = 1...5
​
        a++;
        System.out.println("a = " + a);
        a++;
        System.out.println("a = " + a);
        a++;
        System.out.println("a = " + a);
        a++;
        System.out.println("a = " + a);
​
        int x = 10;
        int y = 10;
​
        int num01 = x++;    // x先把自己的数值赋值给num01,自己再完成自增【经常使用】
        int num02 = ++y;    // y想要把数值赋值给num02,需要先经过++的操作【几乎没有使用场景】
        // x和y都执行了一次自增,数值都会增加1
        System.out.println("x = " + x);
        System.out.println("y = " + y);
​
        System.out.println("num01 = " + num01);
        System.out.println("num02 = " + num02);
​
        // 张三说:""
    }
}

6.3 赋值运算符

=
+= 
-=
*=
/=
%=
class Demo12 {
    public static void main(String[] args) {
        int a = 20;
        int b = 15;
​
        a += b; // a = a + b, a = 20 + 15 = 35
        System.out.println("a = " + a);
        
        a -= b; // a = a - b = 35 - 15 = 20
        System.out.println("a = " + a);
​
        a *= b; // a = a * b = 20 * 15 = 300 
        System.out.println("a = " + a);
​
        a /= b; // a = a / b = 300 / 15 = 20
        System.out.println("a = " + a);
​
        a %= b; // a = a % b = 20 % 15 = 5
        System.out.println("a = " + a);
        
    }
}

6.4 关系运算符

  • 比较是否成立,返回布尔类型的结果

>
>=
<
<=
==
!=
class Demo13{
    public static void main(String[] args) {
        // 关系运算符得到的结果是布尔类型
        int a = 20;
        int b = 15;
        System.out.println("a>b ? " + (a>b));
        System.out.println("a>=b ? " + (a>=b));
        System.out.println("a<b ? " + (a<b));
        System.out.println("a<=b ? " + (a<=b));
        System.out.println("a==b ? " + (a==b));
        System.out.println("a!=b ? " + (a!=b));
    }
}

6.5逻辑运算符

  • 判定逻辑是否成立

你和你的同桌都是成年人?
​
你或者你的同桌成年啦?
package com.shine.operator;
​
public class Demo02 {
    public static void main(String[] args) {
        /**
         *  逻辑运算符
         *      &  逻辑与
         *      && 短路与
         *      进行逻辑判定,判定A条件和B条件是同时成立
         *      只要表达式中有任何一个false出现,结果就是false
         *      使用短路与&&能提升判定的效率
         *      A && B  
         *      true    &&  true    ==> true
         *      true    &&  false   ==> false
         *      false   &&  true    ==> false
         *      false   &&  false   ==> false
         *
         *      |  逻辑或
         *      || 短路或
         *      A || B
         *      进行逻辑判定,判定A条件或者B提交是否成立
         *      只有表达式中有任何一个true,结果就是true
         *      使用短路或能提升判定效率
         *      true    ||  true    ==> true
         *      true    ||  false   ==> true
         *      false   ||  true    ==> true
         *      false   ||  false   ==> false
         */
        
        /**
         *  你的你的同桌身高都超过180
         *  你的身高 > 180 并且 同桌身高 > 180
         */
        int yourHeight = 188;
        int hisHeight = 178;
        System.out.println((yourHeight > 180) && (hisHeight > 180));
        
        /**
         *  你或者你的同桌身高超过180
         *  你的身高 > 180 或者 同桌身高 > 180
         */
        System.out.println((yourHeight > 180) || (hisHeight > 180));
    }
}

6.6 三元运算符

  • 有三个元素参与的运算,得到一个结果

package com.shine.operator;
​
public class Demo04 {
    public static void main(String[] args) {
        /** 
         *  三元运算符
            布尔表达式:结果为布尔值的表达式【判定】
         *  布尔表达式 ? 结果01 : 结果02;
         *      布尔表达式结果为true,得到结果01
         *      布尔表达式结果为false,得到结果02
         */
        // 比较a和b哪个大?
        int a = 83;
        int b = 55;
        
        String result = a > b ? "a比较大":"b比较大";
        System.out.println(result);
        
        // 获取a和b中较大的数据
        int max = a>b ? a:b;
        System.out.println(max);
    }
}

6.7 位运算符

  • 使用二进制进行运算

package com.shine.operator;
​
public class Demo05 {
    public static void main(String[] args) {
        System.out.println(10 + 2);
        System.out.println(10 - 2);
        System.out.println(10 * 2);
        System.out.println(10 / 2);
        System.out.println(10 % 2);
        
        /**
         *    0000 1010
         *  & 0000 0010
         * -----------
         *    0000 0010 = 2
         */
        System.out.println(10 & 2);
        
        /**
         *    0000 1010
         *  | 0000 0010
         * -----------
         *    0000 1010 = 10
         */
        System.out.println(10 | 2);
        
        /**
         *  异或
         *    0000 1010
         *  ^ 0000 0010
         * -----------
         *    0000 1000 = 8
         */
        System.out.println(10 ^ 2);
        
        // 左移和右移
        System.out.println(10 >> 1);
        System.out.println(10 >> 2);
        System.out.println(10 << 1);
        System.out.println(10 << 2);
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值