JAVA基础学习(二)------语法

注释

1.单行注释

 //单行注释

2.多行注释

 /*多
   行
   注
   释*/

3.文档注释(/**开头 */结尾 表示一种描述)

/**
 * @Description Hello
 * @Author me
 */

标识符

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

  • 所有的标识符都应该以字母(A-Z或a-z),美元符($),下划线(_)开头
  • 首字母之后可以是字母(A-Z或a-z),美元符($),下划线(_)或数字的任何字符组合
  • 类似#,%这种特殊符号,不要出现在变量命名中
  • 不能用关键字作为变量名或方法名
  • 标识符大小写敏感
  • 可以使用中文名,但不建议

数据类型

强类型语言

​ 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用,安全性高,速度慢(例:java、c++)

弱类型语言

​ 不要求变量的使用要严格符合规定(例:VB、JS)

Java的数据类型(2类)
  • 基本类型(primitive type)(八大基本数据类型)

    1.数值类型(占字节):

    • 整数类型:
      byte(1):-128~127

      short(2):-32768~32767

      int(4):-2147483648~2147483647

      long(8):-9223372036854775808~9223372036854775807

    • 浮点类型:float(4),double(8)

    • 字符类型:char(2)

    2.boolean类型(占1位):true,false

    int num1 = 10;
    byte num2 = 127;
    short num3 = 30;
    long num4 = 3000000L;  //long类型要在数字后面加个L
    
    float num5 = 50.1F;   //float类型在数字后加F
    double num6 = 3.14159265358979;
    
    char name = 'A';
    //String 不是关键字,是类
    String namea = "张";
    
    //判断是非
    boolean flag1 = true;
    boolean flag2 = false;
    
  • 引用类型(reference type)

    接口数组

小概念
  • 位(bit):计算机内部数据存储的最小单位 例:10010011是八位二进制
  • 字节(byte):计算机中数据处理的基本单位,习惯上用B表示
  • 1B(byte)=8bit 1024B=1KB
  • 字符:计算机中使用的字母、数字、字和符号
数据类型扩展
  • 整数

    进制:二进制0b,十进制,八进制0,十六进制0x

    //整数拓展
    int i1 = 10;
    int i2 = 010;    //八进制 为8
    int i3 = 0x10;   //十六进制 为16
    
  • 浮点数

    银行业务怎么表示钱?

    用BigDecimal 数学工具类

    //浮点扩展
    float f = 0.1f;
    double d = 1.0/10;
    System.out.println(f==d);  //false
    System.out.println(f);
    System.out.println(d);
    
    float f1 = 21321321321321f;
    float f2 = f1 + 1;
    System.out.println(f1==f2);  //true
    

    float:表现字长有限、离散,存在舍入误差,结果为大约数、接近但不等于

    最好完全避免使用浮点数进行比较

  • 字符

    所有的字符本质上还是数字

    //字符拓展
    char c1 = 'a';
    char c2 = '中';
    
    System.out.println(c1);
    System.out.println((int)c1);  //强制转型 97
    
    System.out.println(c2);
    System.out.println((int)c2);  //强制转型 20013
    
    • 编码:Unicode表(占2个字节):例:97 = a 0~65535
    char c3 = '\u0061';      //Unicode编码表示方式
    System.out.println(c3);  //a
    
    • 转义字符:\t\n

    • String sa = new String("hello world");
      String sb = new String("hello world");
      System.out.println(sa==sb);  //false
      
      String sc = "hello world";
      String sd = "hello world";
      System.out.println(sc==sd);  //true
      //对象 从内存分析
      //==在对比变量时 是对比值 ;对比引用类型时 是对比地址值 ;new是创建一个新的地址 所以不同
      // String存在常量池中,两个标识符指向同一地址 所以相同
      
  • 布尔值

    boolean flag = true;
    if(flag){}  //代码要精简易读
    
类型转换
  • 由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

  • 运算中不同类型数据转化为同一类型

    由低到高:byte、short、char < int < long < float <double

    低到高:强制类型转换

    int i = 127;
    byte b = (byte)i;  //(类型)变量名
    

    高到低:自动类型转换

    int i = 127;
    double d = i;
    
    char c = 'a';
    int d1 = c + 1;                //高到低
    System.out.println(d1);        //98  
    System.out.println((char)d1);  //b低到高
    
  • 注意点:

    1.不能对布尔值进行转换

    2.不能把对象类型转换为不相干的类型

    3.在把高容量转换到低容量时,强制转换

    4.转换时可能存在内存溢出,或精度问题

    //溢出问题
    int i1 = 128;
    byte b1 = (byte)i; //-128
    
    //精度问题
    System.out.println((int)23.7);    //23
    System.out.println((int)-45.62f); //45
    
  • 操作比较大的数的时候,注意溢出问题

    DK7新特性,数字之间可以用下划线_分割

    int money = 10_0000_0000;           //1000000000
    int years = 20;
    
    int total = money * years;
    System.out.println(total);           //-1474836480,计算的时候溢出了
    
    long total2 = money * years;         //默认是int,转换之前已经存在问题了 int转long 要强制转换
    System.out.println(total2);
    
    long total3 = money * (long)years;   //先把一个数转换为long
    System.out.println(total3);
    

变量

  • java时一种强类型语言,每个变量都必须声明其类型

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

    数据类型 变量名 = 值;

  • 注意点:

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

    public class Type {
        //类变量 static
        static double salary = 2500;
    
        //属性:变量
        //实例变量:从属于对象,如果不进行初始化,值为这个类型的默认值 0 0.0
        //布尔值:默认是false
        //除了基本类型,其余的默认值都是null
        String name;   //默认为null
        int age;       //默认为0
    
        //作用域高
        static {}
    
        //main方法
        public static void main(String[] args) {
            //局部变量:必须声明和初始化
            int i = 10;
            System.out.println(i);
            Ttpe demo01 = new Type();
            System.out.println(demo01.name);   //null
    		System.out.println(demo01.age);    //0
            //类变量 static
            System.out.println(salary);
        }
    
        //其他方法
        public void add() {}
    }
    
    

常量

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

常量名一般使用大写字符

final 常量名 = 值;

public class Demo06 {
    //static和final是修饰符 不存在先后顺序
    static final double PI = 3.14;
    
    public static void main(String[] args) {
        System.out.println(PI);
    }
}

变量的命名规范

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

运算符

  • 算数运算符:+-*/%++--

  • 赋值运算符:=

  • 关系运算符:><>=<===!=instanceof

  • 逻辑运算符:&&||!(非)

  • 位运算符(了解即可):&|^,~>><<>>>

  • 条件运算符:? :

  • 扩展赋值运算符:+=-=*=/=(例:a+=b 是 a=a+b)

两个数之间运算就是二元运算符

  • 几个数做运算 如果有Long类型,运算结果也为Long型 如果有double类型,运算结果为double 如果没有,运算结果为int

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

关系运算符返回的结果为布尔值

  • 自增自减运算:

    b=++a 先自增,再给b赋值

    b=a++ 先给b赋值,再自增

  • 使用一些工具类来操作

    //幂运算 2^3   2 * 2 * 2 = 8 
    double pow = Math.pow(2,3);
    System.out.println(pow);     
    
位运算符

A = 0011 1100 B = 0000 1101

A & B = 0000 1100 按位与运算

A | B = 0011 1101 按位或运算

A ^ B = 0011 0001 按位异或运算:相同为0,不同为1

~B = 1111 0010 全部取反运算

<< 左移一位 (*2) >> 右移一位 (/2)

怎么算最快:2 * 8 = 16 ----- 2 * 2 * 2 * 2

System.out.println(2 << 3);       //16
字符串连接符
//字符串连接符  +  
System.out.println(a + b);            //30
System.out.println("" + a + b);       //1020
System.out.println(a + b + "");       //30
三元运算符(? :)

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

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

包机制

  • 包语句的语法格式为:

    package pkg1[.pkg2[.pkg3...]];
    
  • 一般利用公司域名倒置作为包名;

    包里的名字尽量不要重复

  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能

    import package1[.package2...].(classname|*);
    
  • import放在package下面

  • *是通配符 可以导入这个包下所有的类

JavaDoc

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

  • 参数信息

    • @author 作者名
    • @version 版本号
    • @since 指明需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
  • 加在类上就是类注释,加在方法上就是方法注释

    package base;
    /**
     * @author z
     * @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 -encoding UTF-8 -charset UTF-8 文件名.java

    index.html即为生成文档

用IDEA生成JavaDoc文档
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 生成后自动打开文件,之后可去对应文件夹找到生成的文件


3号:传入JavaDoc的参数

​ -encoding UTF-8 -charset UTF-8 -windowtitle “文档HTML页面标签的标题” -link http://docs.Oracle.com/javase/7/docs/api

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值