Java随笔4:Java基础语法

Java随笔4:Java基础语法

(一)注释

单行注释:只能注释一行文字 / 注释 /

多行注释:可以注释一段文字 /* 注释 */

文档注释:JavaDoc /** 注释 */

理解:

  • 注释并不会被执行,是写给写代码的人看的

  • 书写术士是一个非常好的习惯

  • 平时书写代码一定要注意规范

(二)标识符和关键字

1.关键字

在这里插入图片描述

2.标识符

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

3.标识符注意点

  1. 所有的标识符都应该以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始
  2. 首字符之后可以是字母(A-Z或者a-z)、美元符($)、或者下划线(_)或数字的如何字符组合
  3. 不能使用关键字作为变量名或方法名
  4. 标识符是大小写敏感的
  5. 可以使用中文命名,但是一般不建议这区使用,也不建议使用拼音,很Low

(三)数据类型

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

  2. 弱类型语言

  3. Java的数据类型分为两大类

    • 基本类型

              //八大基本数据类型:
              
              //1.整数
              int num1 = 10;   //最常用
              byte num2 = 20;
              short num3 = 30;
              long num4 = 30L;  //long类型要在数字后面加个L
               
              //2.小数:浮点数(尽量不用浮点数进行比较)
              float num5 = 50.1F;  //float类型要在数字后面加个F/f
              double num6 = 3.1415926;
              
              //3.字符
              char num7 = '好';  //(单个字符)
              //字符串:String不是关键字,是类
              //String num8 = "以后";(多个字符)
              
              //4.布尔值:是非
              boolean flag = true;
              //boolean flag = false;
      
    • 引用类型
      在这里插入图片描述

(四)类型转换

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

    从低容量到高容量:在这里插入图片描述

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

  • 强制类型转换:(类型)变量名 ( 高—>低)

  • 自动类型转换: ( 低—>高)

    public class Demo03 {
        public static void main(String[] args) {
            int i = 128;
            byte b1 = (byte) i;  //强制转换,但byte的最大值为127,内存溢出 
            double b2 = i;  //自动转换
        }
    }
    

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在吧高容量转换到低容量的时候,强制转换
  4. 强制转换时可能存在内存溢出的问题,或者精度问题!
System.out.println((int)23.7);//23,精度丢失
System.out.println((int)-45.89);//-45,精度丢失

常见问题:

当操作比较大的数的时候,注意溢出问题。引入JDK新特性,数字之间可以用下划线分割

public class Demo03 {
    public static void main(String[] args) {
        int money = 10_0000_0000;
        int years = 20; 
        int total = money*years; //-1474836480,计算的时候溢出了
        long total2 = money*years;//还是-1474836480,默认是int,转换之前已经存在问题了(先计算后转换)
        long total3 = money*((long)years);//20000000000,先把一个数转换为Long
        System.out.println(total);
        System.out.println(total2);
        System.out.println(total3);
    }
}

(五)变量、常量、作用域

1.变量

  1. 变量就是可以变化的量。

  2. Java是强类型语言,每个变量都必须声明其类型。

  3. Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。
    在这里插入图片描述

注意事项:

  1. 每个变量都有类型,类型可以是基本类型(八大基本类型),也可以是引用类型(String)。
  2. 变量名必须是合法的标识符。
  3. 变量声明是一条完整的语句,因此每一个声明都必须以英文分号结束。

2.变量的作用域

  1. 类变量 :static

  2. 实例变量:从属于对象:如果不自行初始化,这个类型的默认值为0/0.0。

    布尔值的默认值为false。

    除了基本类型,其余的默认值都为null。

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

public class Demo04 {//类中包含属性(变量)和方法
    //1.类变量   static
    static double salary = 2500;

    //2.实例变量
    String name;
    int age;

    //main方法
    public static void main(String[] args) {
        //3.局部变量
        int i = 10;
        System.out.println(i);//10

        //实例变量:变量类型  变量名字 = new Demo8();
        Demo04 demo04 = new Demo04();
        System.out.println(demo04.name);//null
        System.out.println(demo04.age);//0

        //类变量
        System.out.println(salary);//2500.0
    }
}

3.常量

  1. 常量:初始化之后不能再改变值!值不会变动。

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

    (final 变量名 = 值;)

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

public class Demo05 {
    //修饰符,不存在先后顺序
    static final double PI = 3.12;

    public static void main(String[] args) {
        System.out.println(PI);//3.14
    }
}

4.变量的命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则:monthSalary(除了第一个单词以外,后面的单词首字母大写)
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线:MAX_VALUE
  5. 类名:首字母大写和驼峰原则:Man,GoodMan
  6. 方法名:首字母小写驼峰原则:run(),runRun()

(六)基本运算符

Java语言支持如下运算符:

  1. 算术运算符:+,-,*,/,%(取余/求摸),++(自增),–(自减)

    public class Demo01 {
        public static void main(String[] args) {
            int a= 10;
            byte b = 20;
            short c = 30;
            long d = 30230L;
            double e = 20;
            System.out.println(a+b+c+d);//30290 long
            System.out.println(a+b+c);//60 int
            System.out.println(a+b);//30 int
            System.out.println(a+c);//40 int
            System.out.println(a+b+c+d+e);//30310.0 double
            //运算结果的数据类型为参与运算的变量中最高优先级的数据类型
        }
    }
    
  2. 赋值运算符:=

  3. 关系运算符:>,<,>=,<=,==,!=instanceof(关系运算符返回的结果为true或false)

  4. 逻辑运算符:&&(与),||(或),!(非)

    • &&(与):两个变量都为真,结果才为true(有假为假,全真为真)
    • ||(或):两个变量有一个为真,则结果才为true(有真为真,全假为假)
    • !(非/取反):如果是真则变为假,如果是假则变为真(非真即假,非假即真)
  5. 位运算符:&(与),|(或),^(亦或),~(取反),>>(右移),<<(左移),>>>(了解!!!)

    /*
    A = 0011 1100
    B = 0000 1101
    
    A&B = 0000 1100  //有0为0,全1为1
    A|B = 0011 1101  //有1为1,全0为0
    A^B = 0011 0001  //相同为0,不同为1
    ~B = 1111 0010   //取反
    */
    
  6. 条件运算符:?:

    例:(x ? y : z)如果x==true,则结果为y,否则结果为z

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

    例:(a+=b—>a = a+b)

重点:

  • b = a++; //执行完这行代码后,先给b赋值,a再自增
  • c = ++a; //执行完这行代码后,a先自增,再给b赋值

扩展:

  1. 幂运算:很多算法可以借助一些工具类来操作实现,如Math(数学类)—>Math.pow(2,3) (2的3次方)

  2. *面试题(位运算符):如何快速计算2*8?—>使用位运算的右移>>(/2)和左移<<( 2),效率极高!!!

  3. 面试题(字符串连接符):(String类)""+a+b="ab"

     int a = 10;
     int b = 20;
     
     System.out.println(""+a+b);//结果为1020
     System.out.println(a+b+"");//结果为30
    
  4. 运算符优先级:在这里插入图片描述

(七)包机制

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

  2. 包语句的语法格式为:
    在这里插入图片描述

  3. 一般利用公司域名倒置作为包名:www.baidu.com(公司域名)—>com.baidu.www(包名)

  4. 为了能够使用某一个包的成员,我们需要在Java程序在明确导入该包(注意包名不要重复)。使用“import”语句可以完成此功能:
    在这里插入图片描述
    ​ 即:如import com.pan.base.name,或导入这个包下所有的类import com.pan.base.*

(八)JavaDoc生成文档

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

    • 在cmd命令行中输入javadoc 参数 Java文件(参数可为-encoding UTF-8 -charset UTF-8使输出的中文或其他更清晰)
    • API文档:(jdk帮助文档)https://docs.oracle.com/javase/8/docs/api/
  2. 参数信息:

    /**
     *@author 作者名
     *@version 版本号
     *@since 指明需要最早使用的jdk版本
     *@param 参数名
     *@return 返回值情况
     *@throws 异常抛出情况
     */
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值