cuiter  

Java基础语法

注释


// 单行注释
/*
 多行注释
 多行注释
 多行注释
 */
/**
 * 文档注释
 * 文档注释
 * 文档注释
 */

标识符


标识符规则:

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

关键字:

1 2 3 4 5
abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while

数据类型


Java是强类型语言,所有变量都必须先定义后才能使用,编译慢但是安全

Java两大数据类型:

  1. 基本类型(数值类型&boolean类型,共8个)
    数值类型

    • 整数类型
      • byte占1个字节:-128-127
      • short占2个字节:-32768-32767
      • int占4个字节:-2147483648-2147483647
      • long占8个字节:-9223372036854775808L-9223372036854775807L
    • 浮点类型
      • float占4个字节
      • double占8个字节
    • 字符类型
      • char占2个字节(String不是基本类型,是类类型)

    boolean类型:占1位,值只有true和false

    // byte
    System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
    System.out.println("包装类:java.lang.Byte");
    System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
    System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
    System.out.println();
    
    // short
    System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
    System.out.println("包装类:java.lang.Short");
    System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
    System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
    System.out.println();
    
    // int
    System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
    System.out.println("包装类:java.lang.Integer");
    System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
    System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
    System.out.println();
    
    // long
    System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
    System.out.println("包装类:java.lang.Long");
    System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
    System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
    System.out.println();
    
    // float
    System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
    System.out.println("包装类:java.lang.Float");
    System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
    System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
    System.out.println();
    
    // double
    System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
    System.out.println("包装类:java.lang.Double");
    System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
    System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
    System.out.println();
    
    // char
    System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
    System.out.println("包装类:java.lang.Character");
    // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
    System.out.println("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE);
    // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
    System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE);
    
  2. 引用类型

    • 类、接口、数组

数据类型扩展

  • 整数扩展

    二进制:0b(0b3)
    八进制:0(010)
    十进制:(10)
    十六进制:0x(0x10)
    
  • 浮点数扩展

    //银行业务表示钱?BigDecimal 大数据类型(数据工具类中的)
    //float double 有限 离散 舍入误差 大约 接近但不等于
    //最好不要用浮点数进行比较
    float f = 0.1f; //0.1
    double d = 0.1; //0.1
    System.out.println(f == d);//false
    
    float f1 = 21221221563525425f;//随便输入一个很大的数
    float f2 = f1 + 1;
    System.out.println(f1 == f2);//true
    

类型转换


  1. 强制转换
  2. 自动转换

注意点:

  • 不能对布尔值进行转换
  • 不能将对象类型转换为不相干的类型
  • 在把高容量的类型转换为低容量类型时,强制转换
  • 转换时可能存在内存溢出,或者精度问题
System.out.println((int)22.6)  //22
System.out.println((int)-22.45f)  //-22
System.out.println((int)'a')  //97
System.out.println((char)97)  //a
    
//数字之间可以用下划线分割
System.out.println(10_0000)//100000

//数据操作后较大,溢出
int money = 10_0000_0000;
int years = 20;
int total = money * years;  //-1474836480  计算溢出
long total2 = money * years; //-1474836480  计算溢出,转换前就出现问题
long total3 = money * ((long)years)  //先把一个数转换为long
//表示long类型的数时,尽量用大写L,程序规范

变量&常量


  • 类变量
  • 局部变量
  • 实例变量

实列变量:从属于对象,如果不自行初始化,整型字符型、浮点型的默认值0、0.0,布尔值默认false,除了基本类型,其余默认都是null

static int allClick = 0;  //类变量  static(静态)
static final int max = MAX_VALUE;  //静态常量  final(常量)
String str = "hello world"; //实例变量

public void method(){
	int i = 0;  //局部变量
}

变量命名规范

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

运算符


  • 算术运算符:+,-,*,/,%,++,--
  • 赋值运算符:=,+=, -=, *=, /=
  • 关系运算符:>,<,>= ,<=,== ,!= ,instanceof
  • 逻辑运算符:&&(与),||(或), !(非)
  • 位运算符:&,|,^,~, >>,<<
  • 条件运算符 :? :
  • () > 算数运算符 > 关系运算符 > 逻辑运算符 > 条件运算符 > 赋值运算符
// ++ -- 自增,自减
int a = 3;

int b = a++;//b=3 先给b赋值,进行自增
int c = ++a;//c=5 先自增,后赋值

//Math工具类实现幂运算
double pow = Math.pow(3, 2);//pow=9

//短路运算例子--逻辑运算
int c = 5;
boolean d = (c<4)&&(c++<4) //如果执行了后面的  那么之后输出的c就为6了
    
//位运算
/*
 a = 0011
 b = 1010
 a & b = 0010  //全1为1  位与运算
 a | b = 1011  //全0为0  位或运算
 a ^ b = 1001  //异为1,同为0  异或运算
 ~b = 0101     //取反
 <<  左移  相当于  *2
 >>  右移  相当于  /2
 */
//实际运用  2*8怎么算的最快
System.out.println(2<<3)
    
//字符串连接符 + ,String
System.out.println(""+10+20);  //1020   字符串在前,后面数字不能计算,当作字符串连接上
System.out.println(10+20+"");  //30     字符串在后,前面数字该怎么算就怎么算

包机制


  • 用于区别类名的命名空间
  • 一般用公司域名倒置作为包名
  • 包名空间必须放在最上面

JavaDoc--文档注释

用来生成自己的API文档,加在类上面或者方法上面

/**
 * 参数信息
 *
 * @author:作者
 * @version:版本号
 * @since:指明需要最早使用的jdk的版本
 * @param:参数ming
 * @return: 返回值情况
 * @throws:异常抛出情况
 */

//利用cmd 生成javadoc文档的方法:
/*
 javadoc -encoding UTF-8 -charset UTF-8 文件类名
 */

可参考阅读


编码规范——《Java开发手册》——阿里巴巴

JDK8核心帮助文档

posted on 2021-01-31 10:15  jiaotong  阅读(52)  评论(0编辑  收藏  举报