2021-03-04

java基础语法

注释、标识符、关键字

注释

注释不会被执行

新建Empty project

Moudles–加号新建模块—同上

File—Project Structure–project----project SDK:1.8 project language level:8—apply–ok

src–new-class-HelloWorld

java注释有三种:

  • 单行//

  • 多行/* */

  • 文档/** */

    更改单行注释颜色:

    File–setting–editor–color scheme–java–commments–linecomments–勾选inherit valuesfrom

标识符

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

  • 标识符注意点

  • 所有的标识符都应该以A-Z、a-z、$、下划线开始

  • 首字符之后可以是A-Z、a-z、数字、$、下划线的任何字符组合,但不能使用关键字作为变量名或方法名。

  • 标识符是大小写敏感的

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

    例:

    package com.shifei.base;
    
        //合法标识符
    public class Domo01 {
        public static void main(String[] args) {
        String hello="asd";
        String Hello="asd";
        String $hello="asd";
        String _hello="asd";
        String h1ello="asd";
    }
    }
    

关键字

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

数据类型

强类型语言

所以变量都必须先定义后才能使用

基本数据类型:

整数

package com.shifei.base;
//2进制 8进制0 16进制0x
public class Domo02 {
    public static void main(String[] args) {
     int a=10 ;//常规2进制
    int a1=010;//8进制
    int a2=0x10;//16进制
    System.out.println(a);//10
    System.out.println(a1);//8
    System.out.println(a2);//16
}
}

浮点数

float double

package com.shifei.base;

    //浮点数float double 判断两者是否相等
public class Domo03 {
    public static void main(String[] args) {
        float a1=10f;
        float a2=10.2f;
        float a3=10.4f;

        double b1=10;
        double b2=10.2;
        double b3=10.4;

        System.out.println(a1==b1);//true
        System.out.println(a2==b2);//false
        System.out.println(a3==b3);//false
    }
}

特点:

1、在内存中占有的字节数不同:

单精度浮点数在机内存占4个字节,双精度浮点数在机内存占8个字节。

2、有效数字位数不同:

单精度浮点数有效数字8位,双精度浮点数有效数字16位。

3、数值取值范围:

单精度浮点数的表示范围: -3.40E+38~3.40E+38,双精度浮点数的表示范围: -1.79E+ 308~-1.79E+308。

4、在程中处理速度不同:

一般来说, CPU处理单精度浮点数的速度比处理双精度浮点数快,如果不声明,默认小数为double类型,所以如果要用float的话,必须进行强转。

float 有限 离散 舍入误差 大约数(接近但不等于)

double 最好完全用浮点数比较

银行业务怎么表示?

BigDecimal 数学工具类

字符

package com.shifei.base;

    //字符 强制转换
public class Domo04 {
    public static void main(String[] args) {
        char a1='a';
        char a2='你';
        System.out.println(a1);//a
        //强制转换 低转高需要强制转换
        System.out.println((int)a1);//97
        System.out.println(a2);//你
        //强制转换
        System.out.println((int)a2);//20320
    }
}

所有字符本质还是数字

Unicode 表:97=a 65=A

字符串
package com.shifei.base;

    //字符串
public class Domo05 {
    public static void main(String[] args) {
        String s1=new String("Hello world");
        String s2=new String("Hello world");
        System.out.println(s1==s2);//false
        String s3="Hello world";
        String s4="Hello world";
        System.out.println(s3==s4);//true

    }
}

转义字符

\t制表符

\n换行符

对象 从内存分析

布尔值

public class *****{
    public static void main(String[] args) {
        //布尔值
        boolean flag=true;
        if(flag)//与if(flag==true)相同 代码要精简
        {
    }
}

类型转换

  • java是强类型语言 所以进行运算时要类型转换

  • 运算中,不同数据类型先转化成同一类型,然后再运算

  • byte,short char----int—long—float----double小数优先级大于整数

    public class **** {
        public static void main(String[] args) {
            int i=128;
            //内存溢出 括号内强制钻换  (类型)变量名
            Byte b=(Byte) i;
            System.out.println(i);
            System.out.println(b);
        }
    }
    
    
    
      
    

**注:**Byte最大值127 i值为128

  package com.shifei.base;
  //类型转换
  public class Domo06 {
      public static void main(String[] args) {
          int i=128;
          byte b=(byte) i;
          System.out.println('i');//i
          System.out.println('b');//b
          System.out.println((int) 23.7);//23
        System.out.println((int)-45.89f);//-45
          char a='a';
        int c=a+1;
          System.out.println(c);//98
          System.out.println((char) c);//b
      }
  }

注:

  • 不能对布尔值进行转换

  • 不能把数据类型转换成不相干类型

  • 转换时,可能会有内存溢出或精度问题

  • 高到低转换需要强制转换 低到高自动转换

    package com.shifei.base;
    //数据类型 int char
    public class Domo07 {
    public static void main(String[] args) {
    System.out.println((int) 23.7);
    System.out.println((int)-45.89f);
    char a=‘a’;
    int c=a+1;
    System.out.println©;
    System.out.println((char) c);
    }
    }
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sn7XbRBw-1614817751755)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210213160546731.png)]

错误案例:

public class ***** {
    public static void main(String[] args) {
        int money=10_0000_0000;
        int year=20;
        int total=money*year;
        System.out.println(total);//操作时,数大的时候溢出问题
    }
}
public class Dome7 {
    public static void main(String[] args) {
        int money=10_000_000_000;
        int year=20;
        long total2=money*year;
        //结果相同 默认是int 转换前就已经转换完成了
        System.out.println(total2);
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wqcz5j36-1614817751759)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210213162619625.png)]

package com.shifei.base;

    //类型转换 long
public class Domo08 {
    public static void main(String[] args) {
        int money = 10_0000_0000, year = 20;
        //先把数字转换为long
        long total = (long) money * year;
        System.out.println(total);
    }
}

输出结果正确

变量

其要素包括变量名、变量类型和作用域

public class *****{
    public static void main(String[] args) {
        int money=10_0000_0000, year=20;//数据类型 变量名=值;可以使用逗号隔开声明多个同类型变量java但最好别这么做,确保程序可读性。

注:

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

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

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

常量

  1. 一种特殊变量,他的值被设定后,程序将不会被改变

  2. 常量名一般使用大写字符

    final double PI=3.14

package com.shifei.base;

    //常量
public class Domo09 {
        //变量类型前的都是i修饰符,修饰符不分先后顺序
        static final double PI=3.14;
        public static void main(String[] args){

            System.out.println((PI));//3.14
        }
    }

作用域

类变量、实例变量、局部变量

public class ***** {
    static int a=0;//局部变量
    String int name;//实例变量
    public static void main(String[] args) {
        int i=0;//局部变量
        
    }
}
package com.shifei.base;

    //作用域 类变量、实例变量、局部变量
public class Domo10 {
        static double salary=2500;//类变量static
        String name;
        boolean much;
        int age;
        int i=10;
        public static void main(String[] args)//main 方法
        {       int i=10;
            System.out.println(i);//10
            //实例变量
            // 变量类型 变量名字=new base.Dome8()
            Domo10 domo10 = new Domo10();
            //局部变量:必须声明和初始化值
            System.out.println(domo10.age);//0
            System.out.println(domo10.name);//null
            System.out.println(domo10.much);//false
            System.out.println(salary);//2500.0
    }
}
类变量:static
实例变量

从属于对象,如不进行初始化。会使用该类型的默认初始值。

			**布尔值默认值为false**

			**除了基本类型,其余默认值为null**

局部变量:必须声明和初始化值

变量命名规范

  1. 变量 方法 类名(辨名知义)

  2. 类成员变量、局部变量、方法名,首字母小写,并且之后的每个单词首字母都得大写

    lastName run()

  3. 常量:字母大写和下划线 MAX_

  4. 类名:每个单词首字母大写 GoodMan

运算符

  1. 算术:+、-、*、/、%、++、–
  2. 赋值:= 例如:a=b(b赋值于a)
  3. 关系:>、<、>=、<=、==、!=instance ofq
  4. 逻辑:&&与、||或、!非

了解:

  • 位:&、|、/、\、》、《

  • 条件:?、:

  • 扩展:+=、-=、*=、/=

算术运算符

%:取余,模运算

package com.shifei.operator;

  //二元运算符 算术运算符
public class Domo00 {
  public static void main(String[] args) {
      int a=10;
      int b=20;
      int c=30;
      int d=41;
      System.out.println(a+b);//30
      System.out.println(a-b);//-10
      System.out.println(a*b);//200
      System.out.println(a/b);//0
      System.out.println(a/(double)b);//0.5
      System.out.println(d%b);//41/20=2......1
  }
}
package com.shifei.operator;
    //运算时,数据类型分优先级
public class Domo01 {
    public static void main(String[] args) {
        long a=123123123123123l;
        int b=123;
        short c=10;
        byte d=8;
        double f=10.123545;
        //long存在的时候,输出结果为long
        System.out.println(a+b+c+d);
        //没有long,输出结果为int
        System.out.println(b+c+d);
        //没有long,输出结果为int
        System.out.println(c+d);
        //有double存在时,输出结果为double
        System.out.println(c+d+f);
    }
}

输出结果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cAvtxTXe-1614817751763)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210215034357899.png)]

关系运算符

package com.shifei.operator;

    //关系运算符>、<、
public class Domo02 {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
    }
}

关系运算符一般与if语句连用

一元运算符 自增、自减、++、–

package com.shifei.operator;

    //自增、自减、++、--
public class Domo03 {
    public static void main(String[] args) {
        int a=3;
        int b=a++;
        /* ++a相当于a+1
        a先给b赋值,然后a再自增*/
        int c=++a;
        /* a先自增再给c赋值*/
        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//5
    }
}

幂运算

package com.shifei.operator;

    //幂运算
public class Domo04 {
    public static void main(String[] args) {
        double pow= Math.pow(2,3);
        System.out.println(pow);//8.0
    }
}

逻辑运算

package com.shifei.operator;

    //逻辑运算 &&与(and)||或(or)非(取反)
public class Domo05 {
    public static void main(String[] args) {
        boolean a=true;
        boolean b=false;
        //逻辑与 只有两者都为真,才为真
        System.out.println("a && b:"+(b&&a));
        //逻辑或 只要一个为真,就为真
        System.out.println("a || b:"+(a||b));
        //逻辑非 取反为真则为假
        System.out.println("! (a && b):"+!(a&&b));
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5mp4uGlW-1614817751765)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210215035419352.png)]

短路运算

package com.shifei.operator;

    //短路运算
public class Domo06 {
    public static void main(String[] args) {
        int c=5;
        boolean d=((c<4)&&(c++<4));//短路运算 从前开始运算,&&c<4为假则不用继续后面运算
        System.out.println(d);//false
        System.out.println(c);//5
    }
}

位运算

&与|或~非^取反

A&B 如果都为1则为为1

A|B 如果一者为1则就为1

A^B 如果2者相同则为0ggggggggggggggggggg

~B 如为0则为1,反之

A=00111100 B=00001101

A&&B=00001100

A ||B=00111101

A^B=00110001

~B=11110010

<<左1 >>右1

package com.shifei.operator;

    //位运算
public class Domo07 {
    public static void main(String[] args) {
        System.out.println(16>>3);//2
        System.out.println(2<<3);//16
        /* 00000001 1
        0000 0010 2
        0000 0011 3
        0000 0100 4
        0000 0101 5
        0000 0110 6
        0000 0111 7
        0000 1000 8  2的三次方
        0001 0000 16 */
    }
}
package com.shifei.operator;

    //字符串连接符+
public class Domo08 {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        System.out.println(a+=b);//a=a+b
        System.out.println(b-=a);//b=b-a
        System.out.println(""+a+b);
        /*字符串连接符+,string字符串类型
        只要有一方出现string类型,会把其他操作都转换为字符串,再进行连接
         */
        System.out.println(a+b+"");//先运算
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c7XQeK45-1614817751766)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210214005553280.png)]

三元运算 条件运算符

package com.shifei.operator;

    //条件运算符 三元
public class Domo09 {
    public static void main(String[] args) {
        // x?y:z 如果x==true则结果为y否则为
        int score=80;
        String type=score < 60 ? "不及格":"及格";
        System.out.println(type);//及格
    }
}

优先级

img

package com.shifei.operator;

    //优先级先||后&&
public class Domo10 {
    public static void main(String[] args) {
        int a=10;
        int b=15;
        int c=20;
        System.out.println((a<b)||(a==0)&&(c==a));//true
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-syaASEm5-1614817751769)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210214013329387.png)]

先()、*、/、%、+、-、关系运算、==、!=、位运算(&与、^取反、|或)、&&、||、条件、赋值

包机制

建包

New----packbage-------名字-------托送文件至包------Refactor------Do Refactor

一般用公司域名倒置作为包名

导入包

import package1.package2. 文件名;

import package1.package2. *;导入这个包下所有的类

《阿里巴巴Java开发手册》

JavaDoc

jdk帮助文档—核心API文档-----8-

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

参数信息

/*
@author
@version 1.0
@since 1.8
@param
@return
@throws exception
 */

使用IDEA生产JavaDoc文档

  1. 右击文档----show in Explor-----导航栏中进入cmd-----javadoc -encoding-UTF-8 -charest UFT-8----文件夹中选择index.intel
  2. 软件工具栏中Tools----Generate JavaDoc----路径-------Local:zh-CN -encoding-UTF-8 -charest UFT-8----文件夹中选择index.intel
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值