Java基础02

本文详细介绍了Java的基础知识,包括三种类型的注释,标识符的定义和规则,数据类型的分类及其大小,以及强类型语言的特点。还探讨了Java中的字符编码,如ASCII和Unicode,并展示了如何进行类型转换,包括自动转换和强制转换。此外,讲解了变量的声明、作用域和常量的使用,以及各种运算符的运用。最后,提到了JavaDoc的生成方法。
摘要由CSDN通过智能技术生成

Java基础

一. 注释

  • 单行注释
  • 多行注释
  • 文档注释
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
      
        //输出 ----单行注释
        /*
        多行注释
         */

        //文档注释
        /**
         * @Author
         */
    }
}

二. 标识符

定义

类名、变量名、方法名都被称为标识符

注意点

  1. 所有标识符都以字母、美元符、下划线开始
  2. 不能使用关键字作为变量名、或方法名
  3. 大小写敏感

三.数据类型

  • 强类型语言:要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用(安全性高、速度慢)
  • 弱类型语言

数据类型

  • 基本类型(primitive type)
    • 数值类型
      • 整数类型
        • byte 占1个字节 范围:-128-127
        • Short 占2个字节 范围:-32768-32767
        • Int 占4个字节 范围:-214783648-214783647
        • Long 占8个字节
      • 浮点类型
        • float 占4个字节
        • double 占8个字节
      • 字符类型
        • Char 占2个字节
    • Boolean 类型 占1位
  • 引用类型(reference type)
    • 接口
    • 数组

什么是字节

  • 位(bit):是计算机中 内部数据储存的最小单位,11001100是一个八位的二进制数
  • 字节(byte):是计算机中 数据处理的基本单位,习惯上用大写B来表示
  • 1B(字节) = 8 bit(位)
  • 字符:是指计算机中使用的字母、数字、字和符号
- 1bit = 1位
- 1byte= 8b
- 1024B = 1KB
- 1024KB = 1M
- 1024M = 1G

拓展

public class Demo01 {
    public static void main(String[] args) {
        //整数拓展: 进制  二进制0b  十进制 八进制0 十六进制0x
        int i = 10;
        int i2 = 010;       //8进制
        int i3 = 0x10;      //16进制  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;
        double d = 1.0/10;
        System.out.println(f==d);
        System.out.println(f);
        System.out.println(d);

        float d1 = 23131312312312313f;
        float d2 = d1 + 1;
        System.out.println(d1==d2);
        System.out.println("-------");

        //字符拓展:
        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字节 65536   Excel   2^16=65536
        //U0000 - UFFFF
        char c3 = '\u0061';
        System.out.println(c3);

        //转义字符
        //\t    制表符
        //\n    换行
        System.out.println("Hello\tWorld");
        System.out.println("-------");

        //对象 - 内存分析
        String sa = new String("hi");
        String sb = new String("hi");
        System.out.println(sa == sb);

        String sc = "hi";
        String sd = "hi";
        System.out.println(sc == sd);

        //布尔值拓展
        boolean flag = true;
        if(flag == true){ }
        if(flag){}
    }
}

结果:
10
8
16
-------
false
0.1
0.1
true
-------
a
9720013
a
Hello	World
-------
false
true
  • char 在Java 中是和 Unicode编码 形成一一对应的映射来存储的,而采取的编码方式则为 UTF-16
ASCII码

在计算机种中,1 字节对应 8 位二进制数,而每位二进制数有 0、1 两种状态,因此 1 字节可以组合出 256 种状态。如果这 256 中状态每一个都对应一个符号,就能通过 1 字节的数据表示 256 个字符。美国人于是就制定了一套编码(其实就是个字典),描述英语中的字符和这 8 位二进制数的对应关系,这被称为 ASCII 码。

ASCII 码一共定义了 128 个字符,例如大写的字母 A 是 65(这是十进制数,对应二进制是0100 0001)。这 128 个字符只使用了 8 位二进制数中的后面 7 位,最前面的一位统一规定为 0。

四.类型转换

转换说明

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
    低----------------------------------->高
    byte, short,char - >int ->long ->float - > double (小数优先级大于整数)
  • 运行中,不同类型的数据显转换为同一类型,在进行运算
  • 强制类型转换
  • 自动类型转换
/*
类型转换
 */
public class Demo02 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;   //byte8位127,128会导致内存溢出
        //强制转换(类型)变量名   高- 低
        System.out.println(i);
        System.out.println(b);

        /*
        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型 转换为 不想干的类型
        3.高容量 转换为 低容量,强制转换
        4.转换的时候可能存在内存溢出,或者精度问题!
         */
        //精度问题
        System.out.println("------------------");
        System.out.println((int)23.7);
        System.out.println((int)-45.89f);

        //自动转换  低 - 高
        System.out.println("------------------");
        char c = 'a';
        int d = c +1;
        System.out.println(d);
        System.out.println((char)d);
    }
}

结果集:
128
-128
------------------
23
-45
------------------
98
b

常见问题

计算时若知道会出现内存溢出,则先进行转换,再进行计算

private static void usualproblem() {
        System.out.println("===============常见问题=================");

        //操作比较大的数时,注意溢出问题
        //JDK7新特性:数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int sum = money * years;
        System.out.println(sum);    //计算溢出了
        long sum2 = money * years;
        System.out.println(sum2);   //默认是int,转换long前已经有问题了

        long sum3 = money *((long)years);   //先把一个数转换为long
        System.out.println(sum3);
        //L l   大小写敏感
    }

结果集:
  ===============常见问题=================
-1474836480
-1474836480
20000000000

五.变量、常量

变量定义

  • 定义:可以变化的量
  • Java是一种强类型语言,每个变量必须先声明其类型
  • Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型、作用域
    ​ Type verName = value,verName=value;
    //数据类型 变量 = 值;可以使用逗号隔开声明多个同类型变量

注意事项

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

作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Demo03 {
    //类变量
    static double salary = 10;
    //实例变量:从属于对象;如果不初始化,默认值 0、0.0  布尔值默认是false
    //除了基本类型,其余默认值都是null
    String name;
    int age;

    //主方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化
        int i =10;
        System.out.println(i);

        //变量类型 变量名 = new 变量类型();
        Demo03 demo03 = new Demo03();
        System.out.println(demo03.name);
        System.out.println(salary);
    }
}

结果:
10
null
10.0

常量定义

  • 常量(Constant):初始化后不能再改变的值!不会变动的值
  • 所谓常量可以理解为一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变
	final 常量名 =final double PI = 3.14
  • 常量名一般使用大写字符

变量命名规范

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

六.基本运算符

  • 算数运算符:+,-,*,/,%,–,++
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=,instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<
  • 条件运算符:?:
  • 扩展赋值运算符:+=,-=,*=,/=

算数运算

  • 数据类型存在 低和高,一般结果为高的数据类型,short和byte结果为int

    //如果存在数据类型为long,则结果类型为long;如果short和byte 则结果类型是int
    //数据类型存在 低和高,一般结果是高的数据类型
    long a =123123123123123L;
    int b = 123;
    short c =123;
    byte d = 1;
    System.out.println(a+b+c+d);
    System.out.println(b+c+d);
    System.out.println(c+d);    //int类型
    
    结果:
    123123123123370
    247
    124
    

自增自减

private static void autoAdd_Minus() {
    System.out.println("======自增自减=======");
    int a = 3;
    int b = a++;    //先给b赋值,再自增
    //a++   a=a+1
    System.out.println("a:"+a);

    int c = ++a;    //先自增,再给c赋值
    System.out.println("a:"+a);
    System.out.println("b:"+b);
    System.out.println("c:"+c);

    //幂运算   2^3
    System.out.println(Math.pow(2,3));
}

结果集:
a:4
a:5
b:3
c:5
8.0

位运算

private static void bitWise() {
   /*
   A = 0011 1100
   B = 0000 1101

   A&B
   A|B
   A^B
   ~B   取反
    */
    System.out.println("十进制2的二进制左移动3位:"+(2<<3));
}

结果:
  16

七.JavaDoc

  • idea自动生成:Tools -> Generate JavaDoc
  • cmd命令行(进入Java文件所在目录):
    javadoc -encoding UTF-8 -charset UTF-8 *.java
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值