知者何南 发表于 2023-2-4 20:07:12

java基础:java基础语法

注释


[*]单行注释:对某一行进行注释,使用“/注释内容/”标识
[*]多行注释:可以书写多行,使用“/*注释内容*//”表示
[*]文档注释:这个内容对IDEA是有意义的,/**注释内容*/
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172421495-1689035267.png
public class Hello {
    //单行注释
    //注释后会被编译器忽略,不会作为语句编译
    //每个单行注释只能写一行

    /*
    多行注释
    这个注释可以写多行
   */


    public static void main(String[] args){
      /**
         * @Description 这里是文档注释,这段会被IDEA识别
         * @author Muling
         */
      System.out.println("Hello,World!");//这句输出Hello,World!
    }
}
标识符和关键字


[*]关键字
java定义的一些保留字,用于区分语法,不能用于标识符
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172652581-631863069.png
[*]标识符
标识符是所有组成部分的名称,如变量名、方法名、类名等等
数据类型

Java里的数据类型

JAVA是一种强类型语言,所有变量需要先声明后使用。
Java数据类型分为两个部分:基本类型和引用类型,这里主要说明基本类型。
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172704832-563699395.jpg
基本数据类型如下:
                    数据类型      占用空间(byte)      表示范围                    整型      byte      1      -128~127                  short      2      -32768~32767              int      4      -2147483648~2147483647              long      8   -9223372036854775808~9223372036854775807                    浮点型      float      4              double      8                    字符型      char      2                    布尔型      boolean      1 bit    //整型
int num = 10_000_000//数字中间可以使用_分隔(便于阅读)
byte num2 = 20;
short num3 = 30;
long num4 = 40L;//Long型后要加“L”
//浮点型
float num5 = 3.1F;//Float型后加“F”
double num6 = 3.1;
//字符
char c = 'a';
//布尔
boolean flag = true;
boolean flag = false;进制


[*]十进制
[*]二进制:0b
[*]八进制:0
[*]十六进制:0x
浮点数精度问题

浮点数有精度问题,如果需要精确计算,可以使用BigDecimal类。
字符

字符值

char型存储的数为Unicode值
如“a”为97,“A”为65,“好”为22909
值的范围为0~65535
转义字符

https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172439777-1063112501.jpg
类型转换

Java是强类型语言,不同类型间运算的时候需要进行类型转换,换为同一类型后再计算。一般是从小向大进行转换,大向小转换会出现溢出。

[*]布尔类型不能进行转换!
[*]需要注意内存溢出和精度问题!
[*]浮点型向整型转换会进行向下取整(向0靠近)
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172514365-1084099582.png
强制类型转换

大到小转换需要使用强制类型转换

float a = 1.3F;
int b = (int)a;自由类型转换

小到大的转换是自由类型转换(自动转换)
变量、常量、作用域

变量

可以变化的量,变量使用前需要声明。
变量声明:
type varName[=value][,varName[=value]]
作用域


[*]类变量:加了static关键字修饰,可以直接在类内使用
[*]实例变量:需要调用类使用,不初始化的基本数据类型默认值为0,其余为null
[*]局部变量:在方法内部使用,使用前需要初始化
public class Hello {
    //类变量:加了static修饰
    static double salary = 5000;
    //实例变量:从属于对象,不初始化的基本数据类型默认值为0,其余为null
    String name;
    public static void main(String[] args){
      //局部变量,必须声明和初始化
       char c = '好';
       Hello hello = new Hello();
       //System.out.println(name); //会报错
       System.out.println(hello.name);
       System.out.println(salary);//类变量直接可用
    }
}
常量

与变量基本相同,需要使用final修饰,不可修改。
命名原则

https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172529671-1335425359.png
类名首字母大写,其他小写,使用驼峰写法,常量全大写,下划线分隔
运算

运算符

https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172548573-1535096245.png

Math类

内含非常多的数学运算方法,幂运算、绝对值等需要调用
包机制

包可以理解为文件夹,为了更好地组织类,用于区分类的命名空间
常用公司域名倒置作为包名,如com.baidu.www
包语句格式:
package pkg1[.pkg2[.pkg3...]]用文件夹的路径理解就是该文件属于pkg1\pkg2\pkg3...\文件名
导入类的格式为:
import pkg1[.pkg2[.pkg3...]].classname

[*]支持通配符,如*,表示一个包内的所有类
JavaDoc

可对类、方法进行说明
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172600413-1396827374.png
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172606883-928202783.png
在命令行使用javadoc -encoding UTF-8 -charset UTF-8 文件名
生成说明文档,打开index.html可以查看
也可以直接在IDEA 工具->生成javadoc
Scanner

包:java.util.Scanner,用于IO
基本语法:
Scanner s = new Scanner(System.in)使用Scanner类的next()与nextLine()获取输入的字符串,读取前使用hasNext()与hasNextLine()判断是否有输入
public static void main(String[] args){
   //创建一个扫描器
      Scanner scanner = new Scanner(System.in);
      System.out.println("使用next接收");
      if(scanner.hasNext()) {
            //判断是否有输入
            String in = scanner.next();//接收
            System.out.println(in);
      }
      scanner.close();//关闭扫描器
    }

[*]next()获取输入:输入从有效字符开始,空白符号之前的所有有效字符部分
[*]nextLine():获得换行符前所有内容
判断


[*]hasNext():是否有字符串
[*]hasNextLine():是否有字符串(与nextLine对应)
[*]hasNextInt():是否有整数
[*]hasNextByte():是否还有Byte
[*]hasNextFloat():是否还有Float
[*]...
输入


[*]next()
[*]nextLine()
[*]nextInt()
[*]nextFloat()
[*]...

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: java基础:java基础语法