zoukankan      html  css  js  c++  java
  • 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编码的字符,字符串常量在存储在常量池中,代表一个地址值;
      字符常量只占一个字节,字符串常量占若干个字节

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

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

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

  • 相关阅读:
    腾讯2017暑期实习编程题3
    腾讯2017暑期实习编程题2
    腾讯2017暑期实习编程题1
    力扣算法题—098验证二叉搜索树
    题目1451:不容易系列之一
    题目1362:左旋转字符串(Move!Move!!Move!!!)
    HDU 2564 词组缩写
    HDU 2561 二小整数
    HDU 2034 人见人爱A-B
    HDU 1875 畅通工程再续
  • 原文地址:https://www.cnblogs.com/zhf123/p/13900609.html
Copyright © 2011-2022 走看看