ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java语言基础学习笔记

2021-05-25 17:54:37  阅读:176  来源: 互联网

标签:Java 语言 ctrl int 笔记 b1 byte 字节


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

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

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

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

标签:Java,语言,ctrl,int,笔记,b1,byte,字节
来源: https://blog.51cto.com/u_14568060/2812117

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有