flora222

Java基础知识

Java语法基础

2026.01.09

注释


Java注释一共分为三种:

  1. 单行注释

    //就是如此啦
    //单行注释只能注释一行文字
    
  2. 多行注释

    /*
    啦啦啦啦啦啦啦
    库里库里库里库里
    多行注释可以注释一段文字
    
    */
    
  3. 文档注释

    /**
    @Author  flora2
    */
    

敲代码的时候一定一定一定要加注释!

万一自己哪一天就看不懂自己代码了呢()

标识符


常见关键字:

image-20260109212056071

起变量名的时候就不要再用这些词了口牙!!!

标识符 只能 以字母,下划线_,以及美元单位$开头!!

开头之后可以是任何字符,但是特殊符号尽量不要用

标识符是大小写敏感的,并且不建议使用中文或者拼音起变量名

数据类型


Java是一种强类型语言,变量必须先定义后使用

例如:

public class demo01 {
    static void main(String[] args) {
        String a;
        System.out.println(a);
    }
}
//a变量没有被定义,java会报错,无法进行输出

Java数据类型分为两大类

  1. 基本类型 常用

    public class demo01 {
        static void main(String[] args) {
            int num1=10;
            byte num2=122;
            short num3=14;
            long num4=30L;
            //long类型要在赋的值后面加一个L以表示这是long类型变量
            float num5=4.12F;
            //float类型要在赋的值后面加一个F以表示这是float类型变量
            double num6=13.14;
            char name='a';
            //char是一个字符!不是字符串!
            boolean flag=true;
            //boolean flag=false;
            //布尔值只用来表示是或非
        }
    }
    
  2. 引用类型

除了基本数据类型之外的都是引用类型。

拓展()

public class demo02 {
    static void main(String[] args) {
        //整数拓展: 进制    二进制0b  十进制  八进制0  十六进制0x
        int num1=10;
        int num2=010; //表示八进制
        int num3=0x10; //表示十六进制
        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);

        //浮点数扩展: 浮点能表示的值是有限的,是离散的,有舍入误差
        float n1=0.1f;
        double n2=1.0/10;
        System.out.println(n1==n2);//false
        float n3=123456789f;
        float n4=n3+1;
        System.out.println(n3==n4);//true
        //尽量避免使用浮点数进行比较

        //字符拓展
        char c1='a';
        char c2='中';
        System.out.println((int)c1);
        //强制类型转换
        System.out.println((int)c2);
        //所有的字符本质还是数字

        //转义符
        //例如  \t制表符
        System.out.println("Hello\tWorld");//Hello  World
        
    }
}

类型转换


public class demo03 {
    static void main(String[] args) {
        int i=10;
        byte b=(byte)i;//在目标变量前面加一个括号,括号内写要强制转换的类型
        //注意转换类型不要数据溢出
        //强制转换是由高到低类型的转换
        //类型由低到高转换是自动转换:
        int a=1;
        double c=a;
        /*
        * 注意点:
        *1.不能对布尔值进行转换
        *2.不能把对象类型转换为不相干的类型
        *3.把高容量转换为低容量的时候是强制转换
        *4.转换的时候可能存在内存溢出或精度问题
        * byte,short,char->int->long->float->double
        * */
    }
}

public class demo04 {
    static void main(String[] args) {
        //操作比较大的数时注意浮点问题
        //数字之间可以使用下划线分割
        int money=10_0000_0000;
        System.out.println(money);
        int year=20;
        int total=money*year;
        System.out.println(total);//-1474836480,计算的时候溢出了
        long total1=money*((long)year);//先把一个数转换为long
        System.out.println(total1);//20000000000
        
    }
}

变量


public class demo05 {
       //实例变量:从属于对象,相当于c的全局变量,自动初始化
       //布尔值全局变量默认是false
       //除了基本类型变量,其余默认值都是null
    String name;
    int age;
    
       //类变量  static
    static double salary=2000;
   
    //main方法
    static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int a=10;
        System.out.println(a);

        //变量类型  变量名字(引用全局变量)
        demo05 demo05=new demo05();
        System.out.println(demo05.age);

        //类变量  关键词static
        //建议以后定义全局变量的时候都用static,方便!!
        System.out.println(salary);
    }

    //其他方法
    public void add(){

    }
}
public class demo06 {
    //所谓常量,就是定义后无法再被修改值的量,关键词final,变量名建议使用大写字母
    //变量名前面的都是修饰符,修饰符不存在先后顺序
    static final double PI=3.14;

    static void main(String[] args) {
        System.out.println(PI);
    }
}

变量命名规范:

image-20260110000816006

基本运算符及其运算


package operater;

public class demo01 {
    static void main(String[] args) {
        //二元运算
        int a=10;
        int b=13;
        System.out.println(a+b);
        //跟c语言一样,可以在输出语句内直接进行运算
        System.out.println(a/(double)b);
        //跟c语言一样,取整数部分;想要小数可以把其中一个变量强制转换成double类型
    }
}

package operater;

public class Demo02 {
    static void main(String[] args) {
        long a=12345678L;
        int b=10;
        short c=12;
        byte d=1;
        System.out.println(a+b+c+d);//long
        System.out.println(b+c+d);//int
        System.out.println(c+d);//int
        //运算中有long类型结果就是long类型,否则就是int类型
    }
}

package operater;

public class Demo03 {
    static void main(String[] args) {
        //关系运算符返回的结果:true or false
        int a=10;
        int b=10;
        System.out.println(a>b);//false
        System.out.println(a<b);//false
        System.out.println(a==b);//true
        System.out.println(a!=b);//false

        //自增自减运算符++,--,一元运算符,同c语言
        int a1=3;
        int b1=a1++;//先把a的值赋值给b,再进行a++
        int c1=++a1;//先进行a++;再把值赋给c
        System.out.println(a1);
        System.out.println(b1);
        System.out.println(c1);

        //幂运算
        double pow=Math.pow(2,3);//相当于c语言中的调用函数库
        System.out.println(pow);
    }
}

package operater;

public class Demo04 {
    static void main(String[] args) {
        //与 或 非(取反)
        boolean a=true;
        boolean b=false;
        System.out.println("a&&b "+(a&&b));//false
        System.out.println("a||b "+(a||b));//true
        System.out.println("!(a%%b) "+!(a&&b));//true
        //注意这里的输出形式,和c语言有小差别

        int c=5;
        boolean d=(c<4)&&(c++<4);
        System.out.println(d);//false
        System.out.println(c);//5
        //在进行逻辑与运算的时候,两个都为真才返回true,如果第一个条件就是假,那么将不再执行后面的语句
    }
}
package operater;

public class demo05 {
    static void main(String[] args) {
        /*位运算
        * A=0011 1100
        * B=0000 1101
        * 这里!你的!计算机导论!里面教的
        * A&B=0000 1100(两位都是1,则结果为1,否则为0;)
        * A|B=0011 1101(至少有一个1则结果为1,否则为0;)
        * A^B=0011 0001(相同则为0,不同则为1;)
        * ~B=1111 0010(取反)
        *
        * 位运算应用:2*8=16
        * 左移:<<  相当于*2
        * 右移:>>  相当于/2
        * 0000 0000   0
        * 0000 0001   1
        * 0000 0010   2
        * 0000 0011   3
        * 0000 0100   4
        * 0000 1000   8
        * 0001 0000   16
        * 有些时候位运算效率更高!!!
        * */
        System.out.println(2<<3);//16
    }
}

package operater;

public class Demo6 {
    static void main(String[] args) {
        int a=10;
        int b=20;
        a+=b;//a=a+b
        System.out.println(a);
        //字符串连接符  +  ,String类型

        //因为“”在前面,虽然是空的,但毕竟是字符串类型,所以会把另外两个变量也转换为字符串类型
        System.out.println(""+a+b);//3020

        //如果“”在后面,那么前面的变量运算依旧会被执行,不会转换类型
        System.out.println(a+b+"");//50

        
        //三元运算符  x?y:z  必须掌握
        //如果 x==true,则返回y,否则返回z
        int score=60;
        String type= (score>=60)?"不挂科":"挂科";
        System.out.println(type);//不挂科
    }
}

包机制


包的本质就是文件夹

为了更好地组织类,Java提供了包机制,用于区别类名的命名空间

一般来说,包的命名方式是公司域名倒置()

例:域名www.baidu.com

​ 包名:com.baidu.www

就像这样啦:

package  com.flora.base

必须在代码首行,不可以去掉

有的时候要使用某一个包的成员,我们需要在Java程序中明确导入该包,使用import语句即可实现

//比如我们要引入一个Java自带的包内的成员Date
package com.flora.base;
import java.util.Date;
    
//当你需要导入一个包内的所有类的时候,可以用*代替
import com.flora.base.*;

注意 :import语句必须在包语句的下面,否则将会报错

JavaDoc


点我看oracle官网api文档

javadoc注释中支持html

命令行生成javadoc:(管理员权限)

用命令行可以生成java文档

在命令行输入命令: javadoc -encoding UTF-8 -charset UTF-8 文件名.java

其中javadoc和后面的java文件是生成java文档的关键命令,中间是为了中文字符不报错的命令,可有可无

IDEA生成javadoc

在主菜单中找到 ‘工具’ 一项

选择 '创建javadoc'

作用域一定要确保是对应的java文件路径

如果显示找不到java源代码,请确认src文件是否是源代码根目录

posted on 2026-01-10 20:40  Flora2  阅读(7)  评论(2)    收藏  举报

导航