JAVA基础语法

源自视频课程的本人总结,推荐课程链接

注释

  1. 单行注释:“//”
  2. 多行注释:“/* */”
  3. 文档注释:“/** */”

标识符

  1. 关键字
    在这里插入图片描述
  2. Java中所有的类名、方法名和变量名都需要命名
  3. 标识符要求:
  • 以所有英文字母(A-Z或a-z)、美元符号($)或下划线(_)开头
  • 不能以关键字开头
  • 标识符对大小写是敏感的
  • 可以用中文命名,但不建议

数据类型

Java是强类型语言,要求所有的变量要定义才能使用。

基本数据类型(8个)

在这里插入图片描述
代码示例:

public class DataType {
    public static void main(String[] args) {
        //byte
        byte a = 10;
        //short
        short b = 1000;
        //int
        int c = 100000000;
        //long
        long d = 10L; //long类型后面通常加L
        //float
        float e = 0.000001F; // float类型后面必须加F,区别于double
        //double
        double f = 0.000001;
        //字符
        char name = 'a';
        //字符串
        String name1 = "sdalfas"; //字符只有一个字符,字符串可以有多个;字符位单引号,字符串为双引号

        //bool
        boolean g = true;
        System.out.println( g);
    }
}

拓展

  1. 整数的进制表示:二进制0b,十进制,八进制0,十六进制0x
public class Data1 {
    public static void main(String[] args) {
        int i = 10;
        int i1 = 010;  //八进制
        int i2 = 0x10; //十六进制
        int i3 = 0b10; //二进制

        System.out.println(i);   //10
        System.out.println(i1);  //8
        System.out.println(i2);  //16
        System.out.println(i3);  //2
    }
}
  1. 浮点数:float和double,最好完全避免浮点数比较
public class Data2 {
    public static void main(String[] args) {
        //1,2情况出现原因:float是有限离散的,存在舍入误差
        //最好完全避免使用浮点数进行比较

        //1.结果看到的一致,实际不一致
        float f = 0.1f;  //0.1
        double d = 1.0/10;  //0.1

        System.out.println(d==f);  //false
        System.out.println(d); //0,1
        System.out.println(f); //0.1

        //2.看到结果不一致,实际一致
        float c1 = 34287374f;
        float c2 = c1 + 1;

        System.out.println("==============================");
        System.out.println(c1==c2);  //true
        System.out.println(c1);  //3.4287376E7
        System.out.println(c2);  //3.4287376E7
    }
}
  1. 字符:所有字符本质都是数字
public class Data3 {
    public static void main(String[] args) {
        char a = 'a';
        char b = '中';

        System.out.println(a);
        System.out.println((int)a);  //强制转换 97
        System.out.println(b);
        System.out.println((int)b); // 20013

        //编码
        char c = '\u0061';
        System.out.println(c); // a
    }
}
  1. 转义字符的使用
public class Data4 {
    public static void main(String[] args) {
        String c1 = "Hello";
        String c2 = "World";

        System.out.println(c1+"\t"+c2);   // \t  tab制表符
        System.out.println("Hello\nWorld");  // \n换行
    }
}

类型转换

  1. 数据类型由低到高
    在这里插入图片描述
  2. 运算时,需转换为同一类型
  3. 强制类型转换:由高类型–>低类型 (类型)变量名
  4. 自动类型转换:低–>高
public class Demo01 {
    public static void main(String[] args) {
        int a = 66;
        char c = (char)a;  //强制类型转换:由高到低
        double b = a;  //自动类型转换

        System.out.printf("%d %f %c",a,b,c);  //以空格输出 66 66.00000 B

    }
}
  1. 注意: ①布尔类型不能进行转换;②转换时可能存在内存溢出,或者精度问题
public class Demo02 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;  //内存溢出

        System.out.printf("%d\n%d\n",i,b);  //128 -128

        System.out.println("============");
        //精度问题
        System.out.println((int)23.8);  //23
        System.out.println((int)-45.238f);   //-45
    }
}
  1. 大数计算,注意溢出导致计算错误问题
public class Demo04{
    public static void main(String[] args) {
        // 溢出问题
        // JDK7新特性,数字之间可以用下划线分割,不影响结果
        int money =  10_0000_0000;

        System.out.println(money);
        int year = 10;
        int total = year*money;

        System.out.println("=========");
        System.out.println(total);  //1410065408

        long total2 = year*money;  //结果未正确,原因,转换类型前已溢出
        System.out.println("=========");
        System.out.println(total2); //1410065408

        long total3 = (long)money*year;  //先把其中一个做类型转换
        System.out.println("=========");
        System.out.println(total3); //10000000000  正确
    }
}

变量与常量

  1. 格式:数据类型 变量名=值; //可以用逗号隔开来声明多个同类型变量(不推荐)
public class Demo05{
    public static void main(String[] args) {
        int a = 1;
        char c = 'A';
        String b = "sdhkj";
//        int a,=1,b=2,c=3;   (不推荐)

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}
  1. 变量名要是合法的标识符
  2. 变量作用域:类变量、实例变量和局部变量
public class Demo06{

    // 类变量:static
    static double salary = 25000;


    // 实例变量:从属于对象,可以先不初始化
    /*默认值:
    1.数值:0  0.0
    2.布尔值:false
    3.除了基本类型,其余的类型默认值都是null
    */
    String name;
    int age;

    public static void main(String[] args) {
        // 局部变量:必须声明和初始化值
        int i = 0;    //i为局部变量
        System.out.println(i);

        //实例变量的引用(快捷键:new Demo06(); Alt+回车)
        //格式:变量类型 变量名 = new 类
        Demo06 demo06 = new Demo06();
        System.out.println(demo06.name);  //null(默认值)
        System.out.println(demo06.age);  //0

        //类变量引用
        System.out.println(salary);  //25000.0
    }
}
  1. 常量:初始化后不能再改变的值;常量名通常大写
public class Demo07{
    //修饰符不分前后顺序,static和final可互换
    //final 数据类型 变量名=值;
    static final double IP = 3.14;

    public static void main(String[] args) {
        System.out.println(IP);
    }
}
  1. 变量的命名规范:
    • 所有变量、方法、类名都要见名知意
    • 类成员变量、局部变量和方法名遵循首字母小写和驼峰原则;eg.monthAverageSalary
    • 常量大写字母和下划线;MAX_VALUE
    • 类名首字母大写和驼峰原则;(新建class时的名即为类名)

运算符

  1. Java所支持的运算符:
    在这里插入图片描述
    示例1:二元算数运算符
package operator;   //包

public class Demo01 {
    public static void main(String[] args) {
        //算术运算符
        double IP = 3.14;
        Long a = 10347829L;
        int b = 20;
        short c = 10;
        byte d = 8;

        System.out.println(IP+a+b+c+d);  //Double 数据类型的高低
        System.out.println(a+b+c+d);  //Long
        System.out.println(b+c+d);  //int
        System.out.println(c+d);  //18

        //取余,模运算
        System.out.println(c%b);  //10
    }
}

示例2:二元关系运算符

package operator;

public class Demo02 {
    public static void main(String[] args) {
        // 关系运算符,结果返回布尔值,true false
        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
    }
}

示例3:自增自减和Math工具

package operator;

public class Demo03{
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int c = 3;

        b = a++;   //赋值之后,自加1 b=a=1
        // a = a + 1   执行完此句后 a=2
        // a = a + 1   执行完此句后 a=3
        c = ++a;   //赋值之前,自加1  c=a=3

        System.out.println(a);  //3
        System.out.println(b);  //1
        System.out.println(c);  //3

        // 幂运算等很多运算,使用工具操作
        double pow = Math.pow(2, 3);  //2^3=8 
        System.out.println(pow);  //8.0
    }
}

示例4:逻辑运算符-与(&&)、或(||)、非(!)

package operator;

public class Demo04{
    public static void main(String[] args) {
        // 与(and)、或(or)、非(取反)
        boolean a = true;
        boolean b = false;

        System.out.println("a&&b:"+ (a&&b));  //两个变量都为真,则结果为真true
        System.out.println("a||b:"+ (a||b));  //两个变量其中一个为真,则结果为真true
        System.out.println("!(a&&b):"+ !(a&&b));  //真则假,假则真

        //短路运算,“与”中存在
        int c = 5;
        System.out.println(b&&(c++<4));  // 与运算中前一个b已为假,因此不做与后的判断,即为短路
        System.out.println(c);  //5 c未c++
    }
}

示例5:位运算-“与”(&)、“或”(|)、“异或”(^)、“非”(~)、“左移”(<<相当于*2)、“右移”(>>相当于/2)

package operator;

public class Demo05{
    public static void main(String[] args) {
        /*
        A = 0011 0001
        B = 0000 1101
        =========================
        A&B = 0000 0001  “与”:0&0=0,1&1=1,0&1=0
        A|B = 0011 1101  ”或“:有1就为1,0|0=0,1|1=1,1|0=1
        A^B = 1100 0011  "异或“:相同为0,不同为1
        ~B = 1111 0010   “非”:取反
         */

        //位运算效率
        //计算2*8=16
        System.out.println(2<<3);  //16
    }
}

示例6:

package operator;

public class Demo06{
    public static void main(String[] args) {
        // +=、-=、*=、/=
        int a = 10;
        int b = 20;

        a += b;  //a = a+1

        System.out.println(a); //30

        //字符串连接,"+"之前出现String类型时,“+”之后自动变为字符串
        System.out.println(""+a+b);  //3020
        System.out.println(a+b+"");   //50
    }
}

示例7:三元运算符,条件运算符—> x?y:z(如果x==true,则结果为y,否则为z)

package operator;

public class Demo07{
    public static void main(String[] args) {
        int score = 59;
        String type = (score > 60) ?"及格":"不及格";
        System.out.println(type);
    }
}

包机制

包机制可以理解为文件夹,命名时可以以公司域名导致:com.Zhang.xxx

JavaDoc(文档注释)

在这里插入图片描述
示例:

package operator;

/** 类注释
 * @author zhongguo
 * @version 1.0
 * @since 1.8
 */
public class Doc{
     String name;

    /** 方法注释
     * 
     * @param name
     * @return
     * @throws Exception
     */
     
     public String test(String name) throws Exception{
         return name;
     }
}

生成JavaDoc文档

  • 命令行生成:javadoc 参数 Java文件
  1. 找到待生成JavaDoc文档的文件位置
    在这里插入图片描述
  2. 通过cmd命令进入
    在这里插入图片描述
  3. 生成javadoc文档命令
    在这里插入图片描述
  4. 查看生成的index.html文件
    在这里插入图片描述
  • IDEA生成javadoc文档(百度)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值