Java基础知识 --狂神说笔记Day1

Java基础知识 --狂神说笔记Day1

  1. 相关知识及环境配置
  • 特性和优势

    1. 简单
    2. 面向对象
    3. 可移植性
    4. 高性能
    5. 分布式
    6. 动态性
    7. 多线程
    8. 安全性
    9. 健壮性
  • Java三个版本

    • JavaSE:标准版(桌面程序、控制台开发)
    • JavaME:嵌入式开发(手机、家电)
    • JavaEE:企业级开发(web端、服务器开发)
  • JDK JRE JVM

    • JDK: Java Development Kit
    • JRE:Java Runtime Environment
    • JVM:Java Virtual Machine

    JDK\JRE\JVM

  • 卸载JDK

    1. 删除java安装目录
    2. 删除系统变量里的JAVA_HOME
    3. 删除系统变量path下关于Java的目录
    4. java -version检查是否删除
  • 编译型和解释型

  • IDEA使用

    • psvm:public static void main(String[] args)
    • sout:System.out.println("");
    • 快速补全分号:ctrl+shift+enter
  1. java基础语法

    • 注释

      • 单行注释://

      • 多行注释:/* */

      • 文档注释:JavaDoc

        /**

        *@Description:

        *@

        */

    • 标识符和关键字

      • 关键字

      • 标识符规则

        • 以 字母、$、_ 开始
        • 首字母后可以是 字母、$、_ 的任意组合
        • 不能使用关键字作为变量名或方法名
        • 大小写敏感
      • 数据类型

        • Java是强类型语言:要求变量的使用要严格符合规定,所有变量必须先定义后使用
        • Java数据类型分为两类:
          1. 基本数据类型
            1. 数值类型
              1. 整数类型
                1. byte 1个字节 -128~127
                2. short 2个字节 -32768~32767
                3. int 4个字节 -2147483648~2147483647
                4. long 8个字节(在数字后面加个L)
              2. 浮点类型
                1. float 4个字节(数字后面加个F)
                2. double 8个字节
              3. 字符类型:char 2个字节
            2. Boolean类型:1位 true/false
          2. 引用数据类型
            1. 接口
            2. 数组
      • 数据类型拓展(面试)

        • 进制

          • 二进制:0b开头
          • 十进制:无
          • 八进制:0开头
          • 十六进制:0x开头
        • 浮点数拓展

          • float是有限的,离散的、存在舍入误差 接近但不等于 不要用浮点数比较
          • 银行业务用BigDecimal
        • 字符拓展

          • 所有的字符本质还是数字 编码 Unicode 2字节:65536种编码

          • String a = new String("hello word");

            String b = new String("hello word");

            System.out.println(a==b);

            输出false;

          • String c = "hello word";

            String d = "hello word";

            System.out.println(c==d);

            输出true

            从内存角度分析

      • 类型转换

        • 低--→高

          byte、short、char→int→long→float→double

        • 强制类型转换 高→低

          (类型)变量名

        • 自动类型转换

        • 注意点:

          1. 不能对bool值进行转换
          2. 不能把对象类型转换为不相干类型
          3. 在把高容量转换到低容量的时候,强制类型转换
          4. 转换的时候可能存在内存溢出或精度问题
          5. 操作比较大的数字的时候,主义溢出问题
      • 变量、常量、作用域

      • 运算符

        • 位运算
          • A&B:每位进行与运算,有一位为0结果为0
          • A|B:每位进行或运算,有一位为1结果为1
          • A^B:异或
          • ~B:取反
      • 包机制 为了更好地组织类,用于区别类名的命名空间

        • package pkg1[.pgk2[.pkg3...]]
        • import 导入该包
      • JavaDoc:生成API文档

        • @author 作者名
        • @version 版本号
        • @since 指明需要最早使用的jdk版本
        • @param 参数名
        • @return 返回值情况
        • @throw 异常抛出情况

        生成文档命令:

        ​ javadoc -encoding UTF-8 -charset UTF-8 Java文件名.java

        使用IDEA生成JavaDoc文档:

        ​ tools→Generate JavaDoc→选择Output directory

        ​ 设置语言和编码集 -encoding utf-8 -charset utf-8

      • 增强for循环(遍历数组、集合)

        for(声明语句:表达式){

        //代码

        }

        声明语句:声明新的局部变量。该变量的类型必须与数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等

        表达式:要访问的数组名,或者是返回值为数组的方法

      • for循环打印*号三角形:

        for(int i=1; i<=5; i++){

        ​ for(int j=5; j>=i; i--){

        ​ System.out.print(" "); //打印每行的空格

        ​ }

        ​ for(int j=1; j<=i; j++){

        ​ System.out.print("*"); //打印每行的左半部分星号

        ​ }

        ​ for(int j=1; j<i; j++){

        ​ System.out.print("*"); //打印每行的右半部分星号,j<i 每行需要少打印一次

        ​ }

        ​ System.out.println();

        }

      • 方法:语句的集合,它们在一起执行一个功能

        • 方法是解决一类问题的步骤的有序集合
        • 方法包含于类或对象中
        • 方法在程序中被创建,在其他地方被引用
        • 设计原则:一个方法只完成一个功能
      • 方法重载规则

        • 方法名称必须相同
        • 参数列表必须不同(个数、类型、参数排列顺序 不同)
        • 仅仅返回类型不同不足以成为方法的重载
        • 实现理论:方法名称相同时,编译器会根据调用方法的参数个数、类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
      • 命令行传参(传参数给main函数)

      • 可变参数

        • 在方法声明中,在指定参数类型后加 ... (可以传入多个同类型的变量,以数组形式传入)

        • 一个方法只能指定一个可变参数,必须是方法的最后一个参数。

        • 例: public void printMax(double... numbers)

          此时传入的numbers就会是一个数组

posted @ 2022-01-12 23:52  t0p1Crayon  阅读(34)  评论(0编辑  收藏  举报