首页 > 编程语言 > 详细

4.Java基础语法

时间:2021-03-14 00:18:44      阅读:26      评论:0      收藏:0      [点我收藏+]

四、Java基础语法

1.注释

  • Java中的注释有三种:
    • 单行注释
    • 多行注释
    • 文档注释
public class Hello {
    public static void main(String[] args) {
        //单行注释
        //输出一个hello,world
        System.out.println("Hello,world!");
        /*
        多行注释
         */
        //JavaDoc:文档注释 /**  */
        /**
         * @Autor billwang
         * @Description HelloWorld
         */
    }
}

2.标识符和关键字

  • 关键字

技术分享图片

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

  • 标识符注意点

    • 所有的标识符都应该以字符(A-Z或者a-z),美元($)、或者下划线(_)开始
    • 首字符之后可以是(A-Z或者a-z),美元($)、或者下划线(_)或者数字的任何字符组合
    • 不能使用关键字作为变量名和方法名
    • 标识符是大小写敏感的
    • 合法标识符举例:age、$salary、_value、_1_value
    • 非法标识符举例:123abc、-salary、#abc
    • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

3.数据类型详解

  • 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
  • 弱类型语言
  • Java的数据类型分为两大类
    • 基本类型(primitive type)
      • 数值类型
        • 整数类型:byte占1个字符、short占2个字符、int占4个字符、long占8个字符
        • 浮点类型:float占4个字符、double占8个字符
        • 字符类型char占2个字节
      • boolean类型:占1位其值只有true和false两个
    • 引用类型(reference type)
      • 接口
      • 数组
public class Demo02 {
    public static void main(String[] args) {
        //八大基本数据类型
        //整数
        int num1 = 10;//最常用
        byte num2 = 20;
        short num3 = 30;
        long num4 = 4000L;//Long类型后面加个L

        //小数
        float num5 = 5.2F;
        double num6 = 3.1415;

        //字符
        char name = ‘国‘;
        String name2 = "中国";

        //布尔值:是非
        boolean flag = true;
        //boolean flag = false;
    }
}

4.数据类型扩展及面试题讲解

public class Demo03 {
    public static void main(String[] args) {
        //整数拓展: 进制:二进制0b、十进制、八进制0、十六进制0x
        int i = 10;
        int i2 = 010;//八进制0
        int i3 = 0x10;//十六进制 0-9 A-F 16
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("================================");
        //============================================
        //浮点数拓展?银行业务怎么表示?钱
        //BigDecimal 数学工具类
        //============================================
        //float 有限 离散  舍入误差  大约 接近但不等于
        //double
        //最好完全使用浮点数进行比较
        float f = 0.1f;//0.1
        double d = 1.0 / 10;//0.1
        System.out.println(f == d);//false

        float d1 = 2312121212121212f;
        float d2 = 2312121212121212f;
        System.out.println(d1 == d2);//true

        //============================================
        //字符拓展?
        //===================================
        char c1 = ‘a‘;
        char c2 = ‘中‘;
        System.out.println(c1);
        System.out.println((int) c1);//强制转换
        System.out.println(c2);
        System.out.println((int) c2);//强制转换
        //所有的字符本质还是数字
        //编码 Unicode 表:97 = a 65 = A ,2字节 0-65536  Excel最长有2 16
        //U0000-UFFFF
        char c3 = ‘\u0061‘;
        System.out.println(c3);//a
        //转义字符
        //\t 制表符
        // \n 换行
        System.out.println("hello\nworld");

        //对象 从内存分析
        System.out.println("====================");
        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa == sb);//false
        System.out.println("====================");
        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc == sd);//true

        //布尔值拓展
        boolean flag = true;
        if (flag == true) { }//新手
        if (flag) { }//老手
        //less is More! 代码要精简易读
    }
}

5.类型转换

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

  • 低 -------------------------------高

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

  • 运算中,不同数据类型先转换为同一类型,然后进行运算

  • 强制类型转换

  • 自动类型转换

public class Demo05 {
    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;//默认是int,转换之前已经存在问题了
        System.out.println(total2);//仍然为-1474836480

        long total3 = money*((long)years);//先把一个数转换为Long
        System.out.println(total3);
        //L l区别,一般写大写L表示Long类型,不写小写l,因为会误认为是数字‘1’
    }
}

6.变量、常量、作用域

  • 变量:可以变化的量!

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

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

     tyep varName [=value] [{,varName[=value]}];
    //数据类型 变量名 = 值;可以使用都好隔开来声明多个同类型变量。
    
  • 注意事项:

    • 每个变量都是类型,类型可以是基本类型,也可以是引用类型。
    • 每个变量名必须是合法的标识符。
    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
  • 变量作用域

    • 类变量
    • 实例变量
    • 局部变量
public class Demo07 {
    //类变量 static
    static double salary = 2500;

    //属性:变量

    //实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0
    //布尔值:默认值是false
    //除了基本类型,其余的默认值都是null;
    String name;
    int age;
    
    //main方法
    public static void main(String[] args) {

        //局部变量:必须声明和初始化值
        int i = 10;
        System.out.println(i);
        //变量类型 变量名字 = new Demo07();
        Demo07 demo07 = new Demo07();
        System.out.println(demo07.age);
        System.out.println(demo07.name);

        System.out.println(salary);

    }

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

    }
}
  • 常量:初始化后不能再改变值!不会变动的值。
  • 所谓常量可以理解成一种特殊的变量,他的值被设定后,再程序运行过程中不允许被改变。
  • 常量名一般用大写
final 常量名=值;
final double PI = 3.14;
public class Demo08 {
    //修饰符,不存在先后顺序
    static final double PI = 3.14;

    public static void main(String[] args) {
        System.out.println(PI);
    }
}
  • 变量名的命名规范
    • 所有变量、方法、类名:见名知意
    • 类成员变量:首字母小写和驼峰原则:baseMonthSalary
    • 局部变量:首字母小写和驼峰原则
    • 常量:大写字母和下划线:MAX_VALUE
    • 类名:首字母大写和驼峰原则:Man,GoodMan
    • 方法名:首字母小写和驼峰原则:run(),runRun()

7.基本运算符

  • Java语言支持如下运算符:优先级()
    • 算数运算符:+,-,*,/,%(取余),++,--
    • 赋值运算符=
    • 关系运算符:>,<,>=,<=,==,!=,instanceof
    • 逻辑运算符:&&,||,!
    • 位运算符:&,|,^,~,>>,<<,>>>(了解)
    • 条件运算符 ?:
    • 扩展赋值运算符:+=,-=,*=,/=
package operator;

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //Ctrl + D:复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);

    }
}
package operator;

public class Demo02 {
    public static void main(String[] args) {
        long a = 1212121212313L;
        int b = 123;
        short c = 10;
        byte d = 8;
        System.out.println(a+b+c);//Long
        System.out.println(b+c+d);//int
        System.out.println(c+d);//int
    }
}
package operator;

public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果:  正确,错误 布尔值
        int a = 10;
        int b = 20;
        int c = 21;
        //取余,模运算
        System.out.println(c%a);//  21/10 = 2...1

        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}

8.自增自减运算符、初识Math类

package operator;

public class Demo04 {
    public static void main(String[] args) {
        //++  -- 自增,自减 一元运算符
        int a = 3;
        int b = a++;//先执行完这行代码,即先给b赋值,再自增
        //b = a;a = a + 1;
        System.out.println(a);
        int c = ++a;//先自增,再执行这个代码,即a自增之后再赋值给c
        //a = a + 1;c = a
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        
        // 幂运算 2^3  2*2*2 = 8
        double pow = Math.pow(3,2);
        System.out.println(pow);
    }
}

9.逻辑运算符、位运算符

package operator;

public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101

        A&B = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001
        ~B  = 1111 0010
        //2*8 怎么计算最快,利用位运算来做:2<<3
        2*8 = 16  2*2*2*2
        效率极高!!!
        <<  *2
        >>  /2

        0000 0000   0
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0000 1000   8
        0001 0000   16

         */
        System.out.println(2<<3);
    }
}
package operator;

public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        a+=b;//a = a + b
        a-=b;//a = a - b
        System.out.println(a);
        //字符串连接符    +  ,String
        System.out.println(""+a+b);
        System.out.println(a+b+"");
    }
}

10.三元运算符及小结

package operator;

public class Demo08 {
    public static void main(String[] args) {
        //x ? y : z
        //如果x==true,则结果为y,否则结果为z

        int score = 80;
        String type = score < 60 ? "不及格" : "及格";//必须掌握
        //if
        System.out.println(type);
    }
}

11.包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
  • 包语句的语法格式为:
package pkg1[.pkg2[.pkg3]...];
  • 一般利用公司域名倒置作为包名;com.baidu.www
  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可以完成此功能
import package1[.package2...].(classname|*);//*通配符,导入所有东西

12.JavaDoc生成文档

  • Javadoc命令时用来生成自己API文档的
  • 参数信息
    • @author作者名
    • @version版本号
    • @since指明需要最早使用的jdk版本
    • @param参数名
    • @return返回值情况
    • @throws异常抛出情况
package com.bill.base;
//类注释
/**
 * @author bill
 * @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 参数 Java文件
    /*
    使用IDEA产生JavaDoc文档! 打开 idea,点击 Tools->      Generate JavaDoc,这样会打开生成 javadoc 文档的配置     页面。  面向百度编程!
    */
}

4.Java基础语法

原文:https://www.cnblogs.com/wcwblog/p/14530581.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!