JAVA基础语法

一、空项目的设置

step1:创建一个新的项目,打开“IntelliJ IDEA 2020.1 x64”

step2:选择创建空项目而不是java文件,命名为java SE后,得到以下结果

在这里插入图片描述
在这里插入图片描述
step3:新建一个模块:file ->new ->Module
step4:找到项目结构,配置环境
项目结构打开方式:

在这里插入图片描述在这里插入图片描述

配置的环境结果:

二、基础语法

2.1 注释

行注释“//”

多行注释“/* */”

文档注释“/** */”

hello world
//hello woeld!
/*
hello,world
hello,world
*/
 //文档注释
 /**
 * @Description hello,world
 * @Author zhangsan
 */

2.2标识符

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

| 不能使用关键字来对类名、变量名、方法进行命名

public class Demo01 {
    public static void main(String[] args) {
//        <!--1.所有的标识符都应该以字母,美元符($)或下划线(_)开始-->
        String Ahello="qinjiang";
        String _hello="hello";
        String $hello="hello";
        String 123hello="hello";//报错
//<!--2.首字符之后可以是任意字符-->
        String _1="hello";
//<!--3.不能使用关键字作为变量名或方法名-->
        String public="hello";//报错
//<!--4.标识符是大小写敏感的-->
        String Man="hello";
        String man="world";
        //这两个标识符所代表的意思是不一样的,一个是hello,另一个是world
//<!--5.可以使用中文命名,但是一般不建议这样使用,也不建议使用拼音-->
        String fengxve="hello";
        String 风雪="hello";
        //Demo01可以被替换成 leibieming 或者 类别名
        
    }
}

关键字:

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

2.3数据类型

强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。安全性较高,速度较慢

弱类型语言:安全性较低,速度快

java的数据类型可以分为两类:基本类型和引用类型(类、接口、数组)

public class Demo02 {
    public static void main(String[] args) {
        //八大基本数据类型
//        整数型
        //查看整数型的长度
//        Integer//查看int的数据类型内部参数
//        Byte//查看byte的数据类型内部参数
        int num1=10;//最常用
        byte num2=20;
        short num3=30;
        long num4=30L;//Long类型要在数字后面加个L
//        小数:浮点数
        float num5=50.1F;//float类型要在数字后面加个F
        double num6=50.1;
//        字符
        char num='A';
        String name="wo ai wo jia";//string 不是基本数据类型,而是类。
//        布尔值:是非
        boolean flag=true;
//        boolean flah=false;
    }
}

拓展

整数类型

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

=============================================
输出结果:
2
10
8
16

浮点数

public class Demo03 {
    public static void main(String[] args) {
        //        浮点数
//        float 有限 离散 舍入误差  大约  接近但不等于
//        double
//        最好完全使用浮点数进行比较
        float a=0.1f;
        double b=0.1;
        System.out.println(a==b);

        float c=1234598529634f;
        float d=c+1;
        System.out.println(c==d);
    }
}
=============================================
输出结果:
false
true

字符

public class Demo03 {
    public static void main(String[] args) {
        //        字符拓展
//        所有字符的本质还是数字 a=97 A=65
        char c1='a';
        char c2='中';
        System.out.println(c1);
        System.out.println((int)c1);//强制转换
        System.out.println(c2);
        System.out.println((int)c2);//强制转换
        char c3='\u0061';
        System.out.println(c3);
    }
}
=============================================
输出结果:
a
9720013
a

转义字符

public class Demo03 {
    public static void main(String[] args) {
        //转义字符
        System.out.println("hello\nworld");
    }
}
=============================================
输出结果:
hello
world

布尔值

public class Demo03 {
    public static void main(String[] args) {
        //布尔数据类型
        boolean flag=true;
        if(flag==true){}//新手
        if(flag){}//老手
        //Less is More.    代码要精简易读。
    }
}
=============================================
输出结果:

2.4类型转换

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

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

运算中,不同类型的数据先转化为同一类型,然后进行运算。

强制类型转换

格式:=(类型)变量名

级别从高到低

自动类型转换

格式:=变量名

级别从高到低

public class Demo04 {
    public static void main(String[] args) {
        int i =128;
//        byte b=i;报错
        double b=i;//d=128.0
        System.out.println(b);
//        <!--1、不能对布尔值进行转换-->
//        由于布尔值只有两个一个是1,一个是0
//        <!--2、不能把对象类型转换为不相干的类型-->
//
//        <!--3、再把高容量转换到低容量的时候,强制转换-->
//
        System.out.println("=============================================");
        System.out.println((int)23.7);//23
        System.out.println((int)-45.89f);//45
        System.out.println("=============================================");
        char c='a';
        int d=c+1;
        System.out.println(c);//a
        System.out.println(d);//98

    }
}
//输出结果
128.0
=============================================
23
-45
=============================================
a
98
public class Demo05 {
    public static void main(String[] args) {
        //操作比较法的数据的时候要注意溢出问题
        //JDK7的新特性,数字之间可以用下划线分割
        int money=10_0000_0000;
        int year=20;
        int total=money*year;
        long total2=money*year;
        long total3=money*(long)year;

        System.out.println("total:"+total);
        System.out.println("total2:"+total2);
        System.out.println("total3:"+total3);

    }
}
//输出结果
total:-1474836480
total2:-1474836480
total3:20000000000

2.5变量

变量:主要是指代表的是一块内存空间,但是没有确定放的数值是什么

在java中,由于java是一种强类型语言,因此每个变量都必须声明其类型。

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

type varName [=value] [{,varName[=value]}];
//数据类型 变量名 =值,变量名=值;可以使用都好来声明多个同类型的变量

注意事项:

1.每个变量都有类型,类型可以是基本类型,也可以是引用类型;

2.变量名必须是合法的标识;

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


public class Demo06 {
    public static void main(String[] args) {
//   为了增强程序的可读性,因此对于程序中变量的输入最好是一行一个变量和它的初始值
    int a=10;
    int b=20;
    int c=30;
    String name="tomorrow";
    char h='a';
    double d=3.1415;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(name);
        System.out.println(h);
        System.out.println(d);
    }
}
//输出结果
10
20
30
tomorrow
a
3.1415

变量的作用域

主要可以分为三种变量

类变量:主要是写在类下面的变量;static开头

实例变量:从属于对象;如果不自行初始化,这个类型默认值为0,0.0,null(除了基本类型外),false(布尔值默认)

局部变量:是写在类下的方法里面的;必须声明和初始化值

public class Variable{
    static int allClicks=0;//类变量
    String str="hello world";// 实例变量
    public void method(){
        int i=0;//局部变量
    }
}

public class Demo07 {
    //实例变量:从属于对象;如果不自行初始化,这个类型默认值为0,0.0,null(除了基本类型外),false(布尔值默认)
    String name;//实例变量
    int age;//实例变量

    //类变量 static
    static double salary=2500;

    //main方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int i=10;//局部变量
        System.out.println(i);
//========================================================================
        //实例变量的输出
        Demo07 demo07=new Demo07();
        System.out.println(demo07.name);//输出实例变量的默认值
        System.out.println(demo07.age);//输出实例变量的默认值

    }

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

    }

}
//输出结果:
10
null
0

常量

常量:初始化后不能再改变值,不会变动的值。

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

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

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

变量的命名规范

  1. 所有变量、方法、类名,见名知意
  2. 类成员变量:首字母小写和驼峰原则;
  3. 局部变量:首字母小写和驼峰原则;
  4. 常量:大写字母和下划线,如PI MAX_NUM
  5. 类名:首字母大写和驼峰原则;
  6. 方法名:首字母小写和驼峰原则;
  7. 驼峰原则:主要是指比如这个格式lastName

2.6运算符

java支持如下运算符:

| 算术运算符:+ ,- ,* ,/, %(取模),++,–

|赋值运算符:=

|关系运算符:> ,< ,>= , <= , == , != ,instance of

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

|位运算符:& , |,^,~,>>,<<

|条件运算符:?:

|扩展运算符:+=,-=,*=,/=

java运算符的优先级顺序:

  1. java语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。
  2. 一般而言,单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。
  3. Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先执行。表 1 列出了所有的运算符的优先级以及结合性。

在这里插入图片描述


package operator;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
//算术运算符
public class Demo01 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);
        System.out.println("================================================================");
        long a1 = 10;
        int b1 = 20;
        short c1 = 30;
        byte d1 = 40;
        System.out.println(a1+b1+c1+d1);//long
        System.out.println(b1+c1+d1);//int
        System.out.println(c1+d1);//int
//若有高容量的数据类型存在在算术运算中,则输出的类型自动转换成高容量的数据类型。
        
//关系运算符   System.out.println("================================================================");
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
        //===================================================================================================================
        System.out.println("================================================================");
//        自增  自减
        int num=1;
        int num1=num++;//++在后面,代表的意思是先对num1进行赋值,然后再进行自增
//        等同于下面两行代码
//        num1=num;
//        num=num+1;
        System.out.println("num:"+num);//2
        
        int num2=++num;//++在前面,代表的意思是先对num进行自增,然后再对num2进行赋值
//        等同于下面两行代码
//        num=num+1; 
//        num2=num;
        System.out.println("num:"+num);//3
        System.out.println("num1:"+num1);//1
        System.out.println("num2:"+num2);//3
    }
}
//输出结果
30
-10
200
0
================================================================
100
90
70
================================================================
false
true
false
true
================================================================
num:2
num:3
num1:1
num2:3
package operator;

public class Dmeo02 {
    public static void main(String[] args) {
        //逻辑运算符
        //与(and)&&  或(or) ||   非(取反) !
        boolean a=true;
        boolean b=false;
        System.out.println("a&&b:"+(a&&b));//a与b同时为真才为真
        System.out.println("a||b:"+(a||b));//a与b同时为假才为假
        System.out.println("!(a&&b):"+!(a&&b));//如果是真,则为假,反之则为真
//===============================================================================
        //短路运算:在计算a&&b,若a为假,则不需要对b进行判断即可断定a&&b为假,也就是说计算机在执行命令的时候没有执行到b
        int c=5;
        boolean d=(c<4)&&(c++<4);
        System.out.println(d);
        System.out.println(c);//若c返回值为5则表明c++<4没有进行运算 
        
    }
}
//输出结果
a&&b:false
a||b:true
!(a&&b):true
============================================================
false
5
package operator;

public class Demo03 {
    public static void main(String[] args) {
        //位运算
        /*
        * A=0011 1100
        * B=0000 1101
        * --------------
        * A&B = 0000 1100(只有A和B中相对应的每一位均为1时,结果才为1)
        * A|B = 0011 1101(只有A和B中相对应的每一位均为0时,结果才为0)
        * A^B =0011 0001(只有A和B中相对应的每一位不相同时为1,相同为0)
        * ~B =1111 0010
        * */

        //<<左移  >>右移
        /*2*8=16
        0000 0000 0
        0000 0001 1
        0000 0010 2
        0000 0100 4
        0000 1000 8
        0001 000016
         */
        //快速计算2*2*2*2
        System.out.println(2<<3);//2左移三位
    }
}
//输出结果
16
package operator;

public class Demo04 {
    public static void main(String[] args) {
        //扩展运算符:+=,-=,*=,/=
        int a=10;
        int b=20;
        a+=b;//a=a+b
        System.out.println("a1:"+a);//30
        a-=b;//a=a-b
        System.out.println("a2:"+a);//-10
        a*=b;//a=a*b
        System.out.println("a3:"+a);//200
        a/=b;//a=a/b
        System.out.println("a4:"+a);//0
        //字符串连接符 +
        //若在输出过程中,先写字符串,那么连接后的自然转换为字符串
        //若在输出过程中,后写字符串,那么先进行计算再与字符串相连接
        System.out.println(""+a+b);
        System.out.println(a+b+"");
    }
}
//输出结果
1020
30
package operator;

public class Demo05 {
    public static void main(String[] args) {
        //三元运算符
        //x? y:z
        //若x==true,则结果为y,否则结果为z

        int score=50;
        String type=score<60?"不及格":"及格";
        System.out.println("type:"+type);
        int score1=80;
        String type1=score1<60?"不及格":"及格";
        System.out.println("type1:"+type1);
    }
}
//输出结果
type:不及格
type1:及格

2.7包机制

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

包语句的语法格式:

package pkg1[.pkg2[.pkg3……]];

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

为了能够使用某一包的成员,需要在java程序中明确导入该包。使用”import“语句可以完成此功能

import package1[.package2[.package3……]].(classname或者*);

|*代表导入package1[.package2[.package3……]]中的所有类

2.8 java Doc

javadoc命令是用来生成自己API文档的.

可以通过互联网搜索”java帮助文档“中Java SE 文档 - API 和文档 | Oracle 中国选择合适的jdk版本可以查看其API文档。

参数信息

  1. @author 作者名

  2. @version 版本号

  3. @since 指明需要最早使用的jdk版本;

  4. @param 参数名

  5. @return 返回值情况

  6. @throws 异常抛出情况

    package com.wen.base;
    /**
     * @author wangjing
     * @version 1.0
     * @since 1.8
     */
    public class Doc {
    
        String name;
    
        /**
         * @author wangjing
         * @param name
         * @return
         * @throws Exception
         */
        public  String test(String name){
            return name;
        }
    
    }
    

    生成JavaDoc文档的方法:

    1、命令行

    进入Doc.java文件所在地址打开cmd,输入javadoc -encoding UTF-8 -charset UTF-8 生成JavaDoc文件的名字,比如,Doc.java

    javadoc -encoding UTF-8 -charset UTF-8 生成JavaDoc文件的名字
    可以是
    javadoc -encoding UTF-8 -charset UTF-8 Doc.java
    

    生成后,进入Doc.java文件所在地址,打开index.html文件,可得到Doc.java的JavaDoc文档

    2、通过idea生成JavaDoc文档

    打开idea中“tools"中的

    在这里插入图片描述

    参考[(129条消息) 使用IDEA生成JavaDoc文档(2种方法)_晰烟的博客-CSDN博客_idea javadoc](

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值