java基础(二):java基础语法

注释

  • 单行注释:对某一行进行注释,使用“/注释内容/”标识

  • 多行注释:可以书写多行,使用“/*注释内容*//”表示

  • 文档注释:这个内容对IDEA是有意义的,/**注释内容*/

    public class Hello {
        //单行注释
        //注释后会被编译器忽略,不会作为语句编译
        //每个单行注释只能写一行
    
        /*
        多行注释
        这个注释可以写多行
         */
    
    
        public static void main(String[] args){
            /**
             * @Description 这里是文档注释,这段会被IDEA识别
             * @author Muling
             */
            System.out.println("Hello,World!");//这句输出Hello,World!
        }
    }
    

标识符和关键字

  1. 关键字

    java定义的一些保留字,用于区分语法,不能用于标识符

  2. 标识符

    标识符是所有组成部分的名称,如变量名、方法名、类名等等

数据类型

Java里的数据类型

JAVA是一种强类型语言,所有变量需要先声明后使用。

Java数据类型分为两个部分:基本类型和引用类型,这里主要说明基本类型。

基本数据类型如下:

数据类型 占用空间(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

转义字符

类型转换

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

  • 布尔类型不能进行转换!
  • 需要注意内存溢出和精度问题!
  • 浮点型向整型转换会进行向下取整(向0靠近)

强制类型转换

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

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修饰,不可修改。

命名原则

类名首字母大写,其他小写,使用驼峰写法,常量全大写,下划线分隔

运算

运算符

Math类

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

包机制

包可以理解为文件夹,为了更好地组织类,用于区分类的命名空间

常用公司域名倒置作为包名,如com.baidu.www

包语句格式:

package pkg1[.pkg2[.pkg3...]]

用文件夹的路径理解就是该文件属于pkg1\pkg2\pkg3...\文件名

导入类的格式为:

import pkg1[.pkg2[.pkg3...]].classname
  • 支持通配符,如*,表示一个包内的所有类

JavaDoc

可对类、方法进行说明

在命令行使用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()
  • ...
posted @ 2023-02-04 17:29  Muling_m  阅读(79)  评论(0编辑  收藏  举报