Java语言基础学习笔记

jdk相关概念

  • javac.exe - 编译器,主要用于将高级Java源代码翻译成字节码文件。
  • java.exe - 解释器,主要用于启动JVM对字节码文件进行解释并执行

jdk、jre、jvm之间的关系

 

 使用文本编辑器编写Java程序流程

  • 新建文本文档,将文件扩展名由xxx.txt修改为xxx.java;
  • 使用记事本/Notepad++的方式打开文件,编写Java代码后进行保存;
  • 启动dos窗口,并切换到.java文件所在的路径中;
  • 使用javac xxx.java进行编译,生成xxx.class的字节码文件;
  • 使用java xxx 进行解释执行,打印最终结果;

常用的快捷键

ctrl + s 保存    ctrl + c 复制     ctrl + v 粘贴    ctrl + a 全选    ctrl + x 剪切

ctrl + z 撤销    ctrl + f 搜索    ctrl + shift 切换输入法,使用shift进行中英文切换

windows + d 回到桌面    windows + e 打开计算机    windows + l 锁屏

windows + r 打开运行,输入cmd后回车就会启动dos窗口

windows + tab 切换任务  alt + tab 切换任务

ctrl + alt + delete 启动任务管理器

 注释

  • 注释用于进行代码说明,是给程序员看的文字说明,编译器会忽略注释。
  • 基本分类

//    单行注释,从// 开始,到本行结束,都是注释。

/* */     多行注释,从/* 开始,到*/结束,中间所有都是注释。

/** */   多行/文档注释,从/**开始,到*/结束,是一种支持提取的注释。

  • 多行注释不允许嵌套使用!

环境变量的基本概念

  通常情况下可执行文件只能在该文件所在的路径中使用,为了使得该可执行文件可以在任意路径中使用,则需要将该文件所在的路径信息配置到环境变量Path中。

跨平台原理

  Java字节码可以通过JVM翻译为具体平台能够执行的机器指令。由于Sun定义了JVM规范,而且不同的操作系统大多提供了JVM实现,才使得相同的一个字节码文件可以在不同的系统上运行,从而使Java赢得了“一次编译,到处使用”的美名。

变量的基本概念

  • 当需要在程序中记录单个数据内容时,则声明一个变量即可,而声明变量的本质就是在内存中申请一个存储单元,由于在该存储单元中的数据内容可以发生改变,因此得名为“变量”。
  • 由于存放的数据内容大小不一样,导致所需存储单元的大小不一样,在Java语言中使用数据类型加以描述,为了便于下次访问还需要给该变量指定一个名字,用于记录该变量对应的存储单元。

标识符的命名规则

  • 由数字、字母、下划线以及$等组成,其中数字不能开头。
  • 不能使用Java语言的关键字所谓关键字就是Java语言用于表示特殊含义的单词。
  • 区分大小写,长度没有限制但不宜过长。
  • 尽量做到见名知意,支持中文但不推荐使用
  • 标识符可以给类/变量/属性/方法/包 起名字

数据类型的分类

  • 在Java语言中数据类型主要分为两大类:
  • (1)基本数据类型(记住

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

  • (2)引用数据类型(了解)
    数组、类、接口、枚举、标注

 

进制之间的转换

  • 正十进制转换为二进制的方式

    a. 除2取余法,使用十进制整数不断地除以2取出余数,直到商为0时将余数逆序排序。

    b. 拆分法,将十进制整数拆分为若干个二进制权重的和,有该权重下面写1,否则写0

  • 正二进制转换为十进制的方式
    a.加权法,使用二进制中的每个数字乘以当前位的权重再累加起来。
  • 负十进制转换为二进制的方式

    a.先将十进制的绝对值转换为二进制,然后进行按位取反再加1。

  • 负数的需要补码:按位取反,再加1 。
  • 负二进制转换为十进制的方式

    a.先减1再按位取反,合并为十进制整数后添加负号

单个字节表示的整数范围(重中之重

 

  • 在计算机中单个字节表示八位二进制位,其中最高位(最左边)代表符号位,使用0代表非负数,使用1代表负数,具体表示的整数范围如下:
  • 非负数表示范围:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7-1
  • 负数表示范围:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -2^0
  • 单个字节表示的整数范围是:-2^7 ~ 2^7-1,也就是-128 ~ 127.

 

字符类型

  •  Java语言中用于描述单个字符的数据类型:char类型。如:'a'、'中'等。
  • 其中char类型在内存空间中占2个字节并且没有符号位,表示的范围是:0 ~ 65535,由于现实生活中很少有数据能够被单个字符描述,因此以后的开发中更多的使用由多个字符串起来组成的字符串,使用String类型加以描述,如:“hello”、“奇点”等。
  • 要求掌握的ASCII有:'0' - 48 'A' - 65 'a' - 97 空格 - 32 换行符 - 10

字符串连接符与加法运算符之间的区分

  • 只要+两边的操作数中有一个操作数是字符串类型,则该+就被当做字符串连接符处理,否则当做加法运算符处理
/*
    字符串连接符与加法运算符之间的区分
*/
public class ArthemicTest{
    public static void main(String[] args){
        // 只要+两边的操作数中有一个操作数是字符串类型,则该+就被当做字符串连接符处理,否则当做加法运算符处理
        int hour = 1;
        int min = 1;
        int second = 6;
        System.out.println(hour + min + second);            // 8
        System.out.println(hour + min + second + "");        // 8
        System.out.println(hour + min + "" + second);        // 26
        System.out.println(hour + "" + min + second);        // 116
        System.out.println("" + hour + min + second);        // 116
    }
}

 +=赋值运算符,自动强制类型转换

/*
    赋值运算符的使用
 */
public class AssignTest {
    
    public static void main(String[] args) {
        // 5.笔试考点1
        byte b1 = 10;
        System.out.println("b1 = " + b1); // b1 = 10
        //b1 = b1 + 2; // 错误: 不兼容的类型: 从int转换到byte可能会有损失         byte + int 相加结果还是int类型
        //b1 = b1 + (byte)2; // 错误: 不兼容的类型: 从int转换到byte可能会有损失   byte + byte 相加结果还是int类型  编译器优化
        //b1 = (byte)(b1 + 2); // 强制类型转换,将int类型转换为byte
        b1 += 2; // 真正等价于b1 = (byte)(b1 + 2);
        System.out.println("b1 = " + b1); // b1 = 12
    }
}

数组工具类的常用方法

 错题集

面试锦囊

字符常量和字符串常量的区别

  字符常量由单引号引起,字符串常量由双引号引起;
  字符常量存储的是一个unicode编码的字符,字符串常量在存储在常量池中,代表一个地址值;
  字符常量只占一个字节,字符串常量占若干个字节

成员变量与局部变量的区别有那些?

  成员变量定义在类中,局部变量定义在方法内、方法参数、代码块中;
  成员变量有访问修饰符,局部变量没有访问修饰符
  成员变量在创建对象后在堆中存储,局部变量随着方法被调用,在栈帧中存储,方法调用完后,销毁

  成员变量有默认初始值,局部变量必须初始化

posted @ 2020-10-30 09:52  君莫笑我十年游  阅读(132)  评论(0编辑  收藏  举报