Java基础语法

Java基础语法

基础阶段

1、注释、标识符、关键字

注释

  1. 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。

  2. 注释并不会被执行,是给我们写代码的人看的

  3. 书写注释是一个非常好的习惯

  • Java中的注释有三种:

    1. 单行注释

    2. 多行注释

    3. 文档注释

      public class HelloWorld {
          public static void main(String[] args) {
              // 单行注释,以//开头
              // 输出一个Hello,World!
              System.out.println("Hello,world!");
      
              // 多行注释,以/*开头,*/结尾 可以用作注释一整段内容
              /*
              Hello,World
              Hello,World
              Hello,World
              Hello,World
              Hello,World
               */
      
              // 文档注释,以/**开头,*/结尾,可以加能识别的参数
              /**
               * @Author zhangchaoyi
               */
          }
      }
    

标识符

  • 关键字

  • Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符

标识符注意点

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符号($),或者下划线(_)开始

  • 首字符之后可以是字母(A-Z或者a-z),美元符号($),或者下划线(_)或数字的任何字符组成

  • 不能使用关键字作为变量名或方法名。

  • 标识符是大小写敏感

  • 合法标识符举例:age、$salary、_value、__1_value

  • 非法标识符举例:123abc、-salary、#abc

      public static void main(String[] args){
          String name = "张三";
          System.out.println("Hello,World!");
      }
    
  • 可以使用中文命名,但是一般不建议这么去使用,也不建议使用拼音,很Low。

2、数据类型

  • 强类型语言

    • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
  • 弱类型语言

  • Java的数据类型分为两大类

    • 基本数据类型(primitive type)

      • 数值类型:

        • 整数类型:byte1个字节、short2个字节、int4个字节、long8个字节

        • 浮点类型:float4个字节、double8个字节

        • 字符类型:char2个字节

      • 布尔类型:boolean类型(占1位其值只有true和false两个)

    • 引用数据类型(reference type)

      • 接口

      • 属组

      public class Demo02 {
          public static void main(String[] args) {
              // 整数
              byte num1 = 10;
              short num2 = 20;
              int num3 = 30;
              long num4 = 40L;//定义long需要在变量值后面加上L(不区分大小写,尽量使用大写)
      
              //小数,浮点数
              float num5 = 10.1F;//定义float需要在变量值后面加上F()
              double num6 = 3.1415926585;
          }
      }
      

数据类型拓展
```java
public class Demo03 {
public static void main(String[] args) {
// 整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 0b10;
int i1 = 10;
int i2 = 010;
int i3 = 0x10;
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);

        System.out.println("================================");

        //浮点数扩展  提问?银行业务怎么做?
        //BigDecimal    数学工具类

        //float     有限 离散 舍入误差  大约  接近但不等于
        //double
        //最好完全不使用浮点数进行比较
        //最好完全不使用浮点数进行比较
        //最好完全不使用浮点数进行比较
        float f = 0.1f;
        double d = 1.0/10;
        System.out.println(f==d);   //false

        float f1 = 2312312123f;
        double d1 = f1+1;
        System.out.println(f1==d1); //true

        System.out.println("================================");

        //字符拓展
        char c1 = 'A';
        char c2 = '中';
        char c3 = '\u0061';
        System.out.println(c1);
        System.out.println((int)c1);//强制转换
        System.out.println(c2);
        System.out.println((int)c2);//强制转换
        System.out.println(c3); // 输出a

        //所有的字符本质还是数字
        //编码 Unicode有一张表,表中数字对应字符(a=97,A=65) 2字节    显示0-65536

        //转义字符
        // \t    制表符
        // \n   换行符
        System.out.println("Hello\tWorld");
        System.out.println("Hello\nWorld");

        System.out.println("================================");
        //思考?以下两种代码输出结果一直吗?
        String A = new String("HelloWorld");
        String B = new String("HelloWorld");
        String C = "HelloWorld";
        String D = "HelloWorld";
        System.out.println(A==B);
        System.out.println(C==D);

        System.out.println("================================");

        //布尔值扩展
        boolean flag = true;
        if (flag==true){}   //新手
        if (flag){}         //老手
        //以上两种写法结果是一样的
        //Less is More! 代码要精简易读!
    }
}

什么是字节

  • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。

  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示

  • 1B(byte,字节)= 8bit(位)

  • 字符:是指计算机中使用的字母、数字、字和符号

  • 1bit表示1位,

  • 1Byte表示一个字节 1B=8b

  • 1024B=1KB

  • 1024KB=1MB

  • 1024MB=1GB

思考:电脑的32位和64位的区别是什么呢?

3、类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

低---------------------------------------------------->高

byte,short,char->int->long->float->double

  • 运算中,不同类型的数据先转化位同一类型,再进行运算。

  • 强制类型转换

  • 自动类型转换

    public class Demo04 {
        public static void main(String[] args) {
            int i = 127;
            byte b = (byte)i;
            double d = i;
    
            //强制类型转换 格式:数据类型 变量名 = (数据类型)变量名  高---低
            //自动类型转换 低---高
    
            System.out.println(i);
            System.out.println(b);
            System.out.println(d);
    
            /*
            注意点:
                1.不能对布尔值进行转换
                2.不能把对象类型转换为不相干的类型,
                3.在把高容量转换到低容量的时候,强制转换,低到高时不需要任何操作,自动转换
                4.转换的时候可能会存在内存溢出,或者精度问题
             */
    
            System.out.println("==============================");
            System.out.println((int)23.7);  //输出结果为23,精度丢失
            System.out.println((int)45.89f);//输出结果为45,精度丢失
    
            System.out.println("==============================");
            char c = 'a';
            int i1 = c+1;
            System.out.println(i1);         //输出98
            System.out.println((char)i1);   //输出 b
        }
    }
    
    
    

关于内存溢出的问题

public class Demo06 {
    public static void main(String[] args) {
        //操作比较大的数的时候,注意溢出问题
        //JDK7以上新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years;
        System.out.println(total);  //-1474836480,计算的时候溢出了
        long total2 = money*years;
        System.out.println(total2); //输出结果如上,默认为int,转换之前已经出了问题

        long total3 = money*(long)years;//先把一个数转换为long,计算出的结果就会用long接收
        System.out.println(total3); //20000000000
    }
}

4、变量、常量

  • 变量是什么:就是可以变化的量!

  • Java是一种强类型语言,每个变量都必须声明其类型。

  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

    type varName [=value] [{,varName[=value]}];
    //数据类型 变量名=值;可以使用逗号隔开来声明多个多类型变量

  • 注意事项:

    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。

    • 变量名必须是合法的标识符。

    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量作用域

  • 类变量

  • 实例变量

  • 局部变量

    public class Variable{
        public static void main(String[] args){
            static int allClicks=0;    //类变量
            String str = "Hello World";//实例变量
    
            public void method(){
                int i = 0;   //局部变量 
            }
    
        }
    }
    
    

常量(final)

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

    //final 常量名 = 值;
    final double PI = 3.14;

  • 常量名一般使用大写字符。

变量的命名规范

  • 所有变量、方法、类名:见明知意

  • 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一单词小写,后续单词首字母大写

  • 局部变量:首字母小写和驼峰规则

  • 常量:大写字母和下划线:MAX_VALUE

  • 类名:首字母大写和驼峰原则:Man,GoodMan

  • 方法名:首字母小写和驼峰原则:run(),runRun()

5、运算符

Java语言支持如下运算符:

  • 算术运算符:+,-,*,/,%,++,--

  • 赋值运算符:=

  • 关系运算符:>,<,>=,<=,==,!=instanceof

  • 逻辑运算符:&&,||,!

  • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)

  • 条件运算符:? :

  • 扩展赋值运算符:+=,-=,*=,/=

6、包机制、JavaDoc

包机制

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

  • 包语句的语法格式为:

    • package pkg1[. pkg2[. pkg3…]]
      
  • 一般利用公司域名倒置作为包名;

  • 为了能够使用某一个包的成员,我们需要再Java程序中明确导入该包。使用“import”语句可完成此功能

    • import package1[.package2…].(calssname|*)
      

JavaDoc

  • JavaDoc命令是用来生成自己API文档的

  • 文档注释参数信息

    • @author 作者名

    • @version 版本号

    • @since 指明需要最早使用的jdk版本

    • @param 参数名

    • @return 返回值情况

    • @throws 异常抛出情况

posted on 2024-01-21 21:12  叁玥三  阅读(3)  评论(0编辑  收藏  举报

导航