Java基础01

Java基础

注释

什么是注释?

  • ,平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构复杂起来的时候,我们就需要用到注释了
  • 注释不会被编译执行,它是写给编写代码的人看的
  • 在编码过程中必须养成良好的习惯,要写注释

Java中的三种注释

  • 单行注释 //这里写注释
  • 多行注释 / * 这里写注释 */
  • 文档注释 /** 这里写注释 */
  • 示例:
/**
 * 这是文档注释
 * @author lichenghua
 * 程序猿入门必备helloworld
 */
public class HelloWorld {
    /*
    这是多行注释
    主方法是程序执行的入口
     */
    public static void main(String[] args) {
        // 输出Hello,World!
        System.out.println("Hello,World!");
    }
}

标识符和关键字

标识符

什么是标识符?

  • Java中的所有组成部分都需要名字.类名,变量名和方法名都被称为标识符

标识符的命名规则

  • 所有的标识符只能用字母,数字,下划线和美元符号组成,并且只能以字母,美元符号和下划线开头

  • Java中的关键字不能用作标识符

  • 标识符对大小写敏感

  • 合法标识符举例:name,$age,_sex, _jerry1

  • public class Demo01 {
        public static void main(String[] args) {
            // 声明两个变量tom和jerry,也就是标识符
            String tom = "汤姆";
            String jerry = "杰瑞";
            System.out.println(tom+"和"+jerry);
        }
    }
    
  • 非法标识符举例:123dog,-salary,#tom,@qq

  • 也可以使用中文命名标识符,但是不建议使用

关键字

Java中的关键字

abstract assert boolean break byte
case catch char class const
continue deafult do double else
enum extends finally float final
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数据类型

什么是字节?

  • 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数
  • 字节(byte):是计算机中数据处理的基本单位,一般用B来表示
  • 1字节=8位
  • 字符:'是指计算机中使用的数字,字母,字和符号
  • 1bit标识1位
  • 1B表示1字节,1B=8bit
  • 1024B=1kB
  • 1024kB=1M
  • 1024M=1G
  • 1024G=1TB

数据类型

强类型语言

  • 要求变量的使用要严格符合规定,所有的变量都必须先定义后使用,Java属于强类型语言

Java的数据类型分类

基本类型
  • boolean 布尔型

  • char 字符型

  • byte 字节型

  • short 短整型

  • int 整形

  • long 长整型

  • float 单精度浮点型

  • double 双精度浮点型

  • 类型名称 内存占位 取值范围 对应的引用类型
    boolean 1字节(8位) true/false Boolean
    byte 1字节(8位) -128~127 Byte
    char 2字节(16位) 一个字符 Character
    short 2字节(16位) -32768~32767 Short
    int 4字节(32位) -2147483648~2147483647 Integer
    float 4字节(32位) -2147483648~2147483647 Float
    long 8字节(64位) -21亿左右~21亿左右 Long
    double 8字节(64位) -21亿左右~21亿左右 Double
public class Demo02 {
    public static void main(String[] args) {
        //整数部分
        byte num1 = 10;
        int num2 = 20;//最常用
        short num3 = 30;
        long num4 = 40L;//long类型需要在后面加L
        // 小数部分
        float num5 = 3.14F;//float类型需要在后面加F
        double num6 = 3.1415926;
        // 字符型
        char c = '中';
        //布尔类型
        boolean b = true;
    }
}
引用类型
  • 接口
  • 数组
面试拓展
  • 浮点数是有限,离散,舍入误差,大约,接近但不等于的,用于比较会出现问题,所以要尽量避免使用浮点数进行比较.银行业务用数学工具类BigDecimal.

  • float f1 = 0.1F;
    double f2 = 1.0/10;
    System.out.println(f1==f2);//此处的比较结果是false
    
    float f3 = 123456789012345F;
    float f4 = f3+1;
    System.out.println(f3==f4);//此处的比较结果是true
    
  • 任何字符的底层本质都是数字

  • String类型的变量以及String类型的实例变量的比较问题

  • boolean b = true;
    String s1 = new String("你好");
    String s2 = new String("你好");
    System.out.println(s1==s2);//此处的比较结果是false
    System.out.println(s1.equals(s2));//此处的比较结果是true
    String s3 = "hello";
    String s4 = "hello";
    System.out.println(s3==s4);//此处的比较结果是true
    System.out.println(s3.equals(s4));//此处的比较结果是true
    

类型转换

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

    低------------------------------------------>高
    byte-->short,char-->int-->long-->float-->double
    
  • 运算中,不同类型的数据需要先转换为同一类型,然后才能进行运算

  • 强制类型转换 高-->低,例如int i=10;byte b=(byte)i;

  • 自动类型转换 低-->高,不需要做任何事情,计算机自动完成

  • 类型转换需要注意以下事项:

    1.不能对布尔值进行转换
    int i = 10;
    boolean flag = i;//不允许
    2.不能把对象类型转换为不相干的类型
    3.在把高容量转换到低容量时,进行强制转换
    int i = 100;
    short s = (short)i;
    4.转换的时候可能存在内存溢出或者精度问题
    int i = 200;
    byte b = (byte)i;//内存溢出,得到不正确的随机数
    //精度问题
    System.out.println((int)25.7);//输出25
    System.out.println((int)-25.75F);//输出-25
    
    

变量

  • 变量是什么:变量就是可以变化的量
  • Java是一种强类型语言,每个变量都必须声明其类型
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
  • 注意事项:
    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
    • 变量名必须是合法的标识符
    • 变量声明是一条完整的语句,因此每一次声明都必须以分号结束

变量作用域

  • 类变量 类变量就是从属于类的变量,一般为静态变量,使用static修饰,其作用域是整个类的范围

  • 实例变量 实例变量是从属于对象的变量,它的作用域和生命周期跟实例的相同,随着实例的创建而创建,实例的消亡而消亡.实例变量可以初始化也可以不初始化,没有赋值时一般为变量类型的默认值.布尔类型的默认值是false,基本数据类型以外的类型的默认值是null

  • 局部变量 即其作用域作用于局部的变量,一般位于局部的方法中,使用时必须声明和初始化值

  • public class Variable{
        static int i = 10;//类变量
        String name = "lichenghua";//实例变量
        public static void main(String[] args){
            int a = 5;//局部变量
        }
    }
    

常量

  • 常量(Constant):初始化(initialize)后不能再修改它的值,一般使用final修饰

  • 常量是一种特殊的变量,它的值一旦被设定,在程序运行过程中不允许被修改

  • 常量名一般使用大写字符

  • //声明规则
    final 常量名 = 值;
    final int MAX_AGE = 100;
    

变量的命名规范

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

运算符

  • Java语言支持以下运算符:

    • 算术运算符:+(加)、-(减)、*(乘)、/(除)、%(模运算,即取余数)、++(自增)、--(自减)

    • 赋值运算符:=

    • 关系运算符:>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)、!=(不等于)、instanceof(用于比较两个对象是否是同一类型)

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

    • 位运算符:&(与)、|(或)、^(异或)、~(非)、>>(按位除2)、<<(按位乘2)

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

    • 扩展赋值运算符:+=(相加后赋值)、-=(相减后赋值)、*=(相乘后赋值)、/=(相除后赋值)

  • 位运算符面试题:

    • 2*8 = 16 怎样执行速度最快?
      答:按位运算 2<<3
      
  • 字符串与整形变量的拼接优先级问题:

    • //谁在前按谁的类型运算执行,加括号除外
      System.out.println(10+20+"abc"); //输出30abc
      System.out.println("abc"+10+20); //输出abc1020
      System.out.println("abc"+(10+20)); //输出abc30
      

包机制

  • 为了更好的组织类,Java提供了包机制,用于却别类名的命名空间
  • 一般使用公司域名倒置作为包名
  • 使用import导入其他包

命令生成一个类的Javadoc文档

  • javadoc -encoding UTF-8 -charset UTF-8 类名
posted @ 2021-03-30 11:56  代码狗李大爷  阅读(43)  评论(0)    收藏  举报