JAVA基础知识

注释

  1. 单行注释//

  2. 多行注释/**/

  3. 文档注释(JavaDoc)/**

多行注释可以嵌套单行注释

标识符和关键字

关键字

class 是来声明类的关键字。

true、false、null 是直接量。

goto和const是保留字,在Java中未被使用。

标识符

标识符是开发者为类、方法和变量所定义的名称。

  1. 见名知意。

  2. 以 字母、$、_ 开始。

  3. 区分大小写。

  4. 下划线对解释器由特殊意义,避免使用下划线开头的标识符。

数据类型

  1. 强类型语言 与 弱类型语言

    Java: 强类型 变量需要先定义再使用(安全性高 速度慢)

  2. 基本数据类型 与 引用数据类型

    基本数据类型:

    默认为int以及double,long float 需要加L以及F声明

    例:long num = 30L float = 3.11F

    String 不是关键字,是“类”

    输入大写 Int/Float 可以查看 值的范围

    引用数据类型:

  3. 拓展

    整数拓展

    //整数拓展: 进制 进制0b 十进制 八进制0 十六进制0x
    int i = 10;
    int i2 = 010; //八进制0
    int i3 = 0x10;//十六进制0x 0~9 A~F 16
    System.out.println(i); //10
    System.out.println(i2); //8
    System.out.println(i3); //17
    

    浮点数拓展

    float f=0.1f; //0.1
    double d=1.0/10; //0.1
    System.out.println( f==d ); //false
    float d1 = 23131312312312313f;
    float d2 = d1 + 1;
    System.out.println( d1==d2 ); //true
    

    [!CAUTION]

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

    float 有限 离散 舍入误差 大约 接近但不等于
    double

    [!NOTE]

    银行业务怎么表示? 钱
    数学工具类 BigDecimal

    字符拓展

    1. 字符本质还是数字

      char c1 = 'A';
      char c2 = '中';
      System.out.println(c1);//A
      System.out.println((int)c1);//强制转换 65
      System.out.println(c2);//中
      System.out.println((int)c2);//强制转换 20013
      //所有的字符本质还是数字
      //编码 Unicode 表:(97=a 65=A) 2字节 0~65536
      // U0000 UFFFF
      char c3='\u0061';
      System.out.println(c3);//a
      
    2. 对象 从内存分析

      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";//true
      System.out.println( sc==sd );
      

    布尔值拓展

    boolean flag = true;
    if(flag==true){} //新手
    if(flag){} //老手
    //代码要精简易 Less is More!
    
  4. 知识拓展

    32位电脑 最大装 4GB 内存条 仅可使用32位CPU

    64位电脑 最大装 128GB 内存条 可使用32/64位CPU

    两者区别在 寻址 能力不同

类型转换

由于JAVA是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

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

类型转换分为强制转换和自动转换

强制转换 高-低 (类型)变量名
自动转换 低-高

低 ------------------------------------------> 高

byte, short, char -> int -> long -> float -> double

  1. 强制类型转换

    int i = 128;	//128
    byte b = (byte)i;	//内存溢出-128
    
    System.out.println((int)23.7);	//23
    System.out.println((int)-45.89f);	//-45
    
    char c = 'a';
    int d = c+1;
    System.out.println(d);		//98
    System.out.println((char)d);	//b
    
  2. 自动类型转换

    int i = 128;	//128
    double b = i;	//128.0
    
  3. 注意

    [!CAUTION]

    1. 不能对布尔值进行转换
    2. 不能把对象类型转换为不相干的类型
    3. 在把高容量转换到低容量的时候,强制转换
    4. 转换的时候可能存在内存溢出,或者精度问题!

变量和常量

变量:可变值

  1. Java是强类型语言

    每个变量必须声明器类型(变量名、变量类型、作用域

  2. 定义

    数据类型 变量名 = 值;

    (可同时定义多个同类型变量)

    int x = 10;
    int x=10,y=20,z=30;//程序可读性差,不推荐
    
  3. 变量作用域

    1. 类变量:从属于类,用 static 标识

    2. 实例变量:从属于对象

      默认值:整数0 浮点数0.0 布尔值 false

      除基本类型,其余默认值为null

    3. 局部变量:在方法里

    public class text{
        static int a = 10;	//类变量
        String str = "hello";	//实例变量
        public void method(){
            int i = 0;	//局部变量
        }
    }
    
  4. 变量命名规范

    1. 所有变量、方法、类名:见名知意

    2. 类成员变量:首字母小写和驼峰原则:monthSalary

      除了第一个单词以外,后面的单词首字母大写 lastname -> lastName

    3. 局部变量:首字母小写和驼峰原则

    4. 常量:大写字母和下划线:MAX VALUE

    5. 类名:首字母大写和驼峰原则: Man,GoodMan

    6. 方法名:首字母小写和驼峰原则:run()

常量:不可变值

定义:在变量前加 “ final ” (常量名必须大写)

static final double t = 3.14;
//final static double t = 3.14;
//final为修饰符,不存在先后顺序

运算符

  • 算术运算符: +,-,,/,%,++,--

  • 赋值运算符 =

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

  • 逻辑运算符: &&,| ,!

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

  • 条件运算符 ? :

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

优先级:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

自增自减++--

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

逻辑运算符

与运算( && ): 两个变量都为真,结果才为true

或运算( || ): 两个变量有一个为真,则结果为true

非运算( ! ): 如果是真,则变为假,如果是假则变为真

//短路运算
int c=5;
boolean b = (c<4)&&(c++<4);
//结果 c=5 语句3中 c<4 直接返回 false, (c++)不执行

位运算

/*
  A = 0011 1100
  B = 0000 1101	
A&B = 0000 1100	与:11才为1
A/B = 0011 1101 或:有1则为1
A^B = 0011 0001 异或:相异则为1
  ~B= 1111 0010 非运算

2*8=16 2*2*2*2
位运算效率极高!!!
<< *2	>> /2

*/
System.out.println(2<<3)	//16
/*
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/

条件运算符(三元运算符)

//x ? y : z
//如果 x==true ,则结果为y,否则结果为z
int score =50;String type= score<60 ?"不及格":"及格";//必须掌握
// if
System.out.println(type); //不及格

注意

//字符串连接符 + , String 数字前后区分不同
System.out.println(""+10+20); //1020
System.out.println(10+20+""); //30

包机制

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

  • 包语句的语法格式为:

    package pkg1[. pkg2[. pkg3.]];

  • 一般利用公司域名倒置作为包名

  • 为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。

  • 使用"import"语句可完成此功能

    import pkg1[. pkg2[. pkg3.]].(classname|*);
    import com.baidu.base.*	//导入这个包下所有的类
    

JavaDoc

封装好的函数,就叫做API(Application Programming Interface),即应用程序编程接口。

java有自己的API帮助文档(网上搜索)

  • javadoc命令是用来生成自己API文档的
  • 参数信息
  • @author 作者名
  • @version 版本号
  • @since 指明需要最早使用的jdk版本
  • @param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况

分为类注释和方法注释(内容自动补齐)

生成javadoc文档(命令行/idea生成)

打开java文件所在位置命令窗口

输入命令 Javadoc -encoding UTF-8 charset UTF-8 文件.java

打开生成的index.html文件

posted on 2024-07-19 16:29  7007x  阅读(10)  评论(0编辑  收藏  举报