尚硅谷_Java 学习笔记day2

本文是尚硅谷Java学习笔记的第二天内容,主要讲解了Java中的关键字、保留字、标识符的命名规则和规范,以及变量的概念、分类和作用,包括基本数据类型和引用数据类型。此外,还介绍了二进制及其在不同进制间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day 2

关键字与保留字

关键字(keywords)
  • ##### 定义:被 Java 语言赋予了特殊含义,用于专门用途的字符串(单词)

  • ##### 特点:关键字中所有字母都为小写

  1. 用于定义数据类型的关键字:

    class\interface\enum\byte\short\int\long\float\double\char\boolean\void

  2. 用于定义流程控制的关键字:

    if\else\switch\case\default\while\do\for\break\continue\return

  3. 用于定义访问权限修饰符的关键字:

    private\protected\public

  4. 用于定义类、函数、变量修饰符的关键字:
    extends\final\static\synchronized

  5. 用于定义建立实例及引用实例,判断实例的关键字:
    new\this\super\instanceof

  6. 用于异常处理的关键字:
    try\catch\finally\throw\throws

  7. 用于包的关键字:

    package\import

  8. 其他修饰符关键字:

    native\strictfp\transient\volatile\assert

  9. 用于定义数据类型值的字面值:

    true\false\null

保留字(reserved words)
  • Java 现有版本尚未使用,但以后版本可能会作为关键字使用,自己命名标识符时要避免使用这些保留字

goto\const

标识符

  • #### Java 对各种变量方法、和 要素命名时使用的字符序列称为标识符(类名、变量名、方法名、接口名、包名)
标识符命名规则:
  • 26 个英文字母大小写0 ~ 9_$组成
  • 数字不可开头
  • 不可以使用关键字和保留字,但可以包含
  • 严格区分大小写,长度无限制
  • 不能包含空格
标识符命名规范:
  • **包名:**多单词组成时所有字母小写
  • **类名、接口名:**多单词组成时所有单词首字母大写
  • **变量名、方法名:**多单词组成时第一个单词首字母小写
  • **常量名:**所有字母都大写,多单词组成时每个单词用下划线连接

注意1:在起名字时,为了提高阅读性,要尽量有意义

注意2:Java 采用 unicode 字符集,因此标识符也可以使用汉字声明,但不建议使用

变量

概念:
  • 内存中的一个存储区域

  • 该区域的数据可以在统一类型范围内不断变化

  • 变量是程序中最基本的存储单元,包含变量类型、变量名

    和存储的值

作用:

用于在内存中保存数据

说明:
  • Java 中每个变量必须先声明、后使用
  • 使用变量名来访问这块区域的数据
  • 变量的作用域:其定义所在的一对{}
  • 变量只有在其作用域内才有效
  • 同一个作用域内,不能定义重名的变量
分类:
基本数据类型分类:
1. 整型:byte\short\int\long
  • Java 各类证书类型有固定的表数范围和字段长度,不受具体 OS 的影响,以保证 Java 程序的可移植性
  • Java 的整数常量默认为 int 型,声明 long 型常量需要在后面加IL
  • Java 程序中变量通常声明为 int 型,除非不足以表示较大的数才使用 long
类型占用空间表数范围
byte1 字节 = 8 bit 位-128 ~ 127
short2 字节-215 ~ 215 - 1
int4 字节-231 ~ 231 - 1
long8 字节-263 ~ 263 - 1
2. 浮点型:float\double
  • 有固定的表数范围和字段长度,不受具体 OS 的影响,以保证 Java 程序的可移植性

  • 浮点型常量有两种表示形式:

    • 十进制数形式,如 3.14、3.14f、.618、(必须有小数点)
    • 科学计数法形式,如 3.14e2、314E2、100E-2
  • float 单精度,尾数可以精确到 7 位有效数字

  • double 双精度,精度是 float 的两倍,通常采用此类型

  • Java 的浮点型常量默认为 double 型,声明 float 型常量需后加fF

    类型占用存储空间表述范围
    单精度 float4 字节-3.403E38 ~ 3.403E38
    双精度 double8 字节-1.798E308 ~ 1.798E308
3. 字符型:char
  • char 型数据用来表示通常意义上的“字符”(2字节)

  • Java 中的所有字符都使用 Unicode 编码,一个字符可以存储一个字母、一个汉字或其他书面语的一个字母

  • 字符型变量的三种表现形式:

    • 字符常量是用单引号括起来的单个字符,如char c1 = a;
    • Java 中还允许使用转义字符\来将其后的字符转变为特殊字符型常量,例如\n表示换行,\t表示制表符(ASCII码)
    • 直接使用 Unicode 值来表示字符型常量如:\u000a 表示换行符
4. 布尔型:boolean
  • 只能取truefalse两个值之一
  • 常常在条件判断、循环结构中使用
基本数据类型转换
  1. 自动数据类型转换
    当容量小的数据类型的变量与容器大的数据类型的变量做运算时,结果自动提升为容量大的数据类型

    • short ⇨ int ⇨ long ⇨ float ⇨ double

    • 当 byte、char、short 三种类型的变量做运算时,结果为 int 型

  2. 强制类型转换

    自动类型提升运算的逆运算

    • 需要使用强转符:()
    • 强制类型转换,可能导致精度损失
    class VariableTest3{
        public	static void main(String[] args){
            double d1 = 12.9;
            int i1 = (int)d1;//截断操作
            System.out.println(i1);
            
         	int i2 = 128;
            byte b = (byte)i2;//超出范围
            System.out.println(b);
        }
    }
    
    class VaribleTest4{
        public static void main(String[] args){
            long l = 123433;
            System.out.println(l);
            //声明long常量时数字末尾未加l,强制类型转换为int型
            
            long l1 = 12321231233;
            System.out.println(l1);
            //编译失败,过大的整数,超出int范围
                
        }
    }
    

    整型常量默认类型为int

    浮点型常量,默认类型为double

引用数据类型分类:
  • class
  • 接口interface
  • 数组array
String 类型数据变量
  1. String 属于引用数据类型,翻译为字符串

  2. 声明 String 数据类型变量时,使用一对“”

  3. String 可以和 8 种基本数据类型变量做运算,且运算只能是连接运算,运算的结果仍然是 String 类型

    class StringTest{
        public static void main(String[] args){
            String s1 = "Hello World";
            System.out.println(s1);
            String s2 = "a";
            String s3 = "";
            //*****************
            int number = 1001;
            String numberStr = "学号";
            String info = numberStr + number;//在这里 + 为连接运算
            boolean b1 = true;
            String info1 = info +b1;//在这里 + 为连接运算
            System.out.println(info1);
        }
    }
    
    
二进制

二进制整数有如下三种形式:

  • 原码:直接将一个数值转换成二进制数,最高位是符号位
  • 负数的反码:是对原码按位取反,只是最高位(符号位)确定为 1
  • 负数的补码:其反码+ 1

计算机以二进制补码的形式保存所有整数

  • 正数的原码、反码、补码都相同
  • 负数的补码是其反码 + 1
		//正数转化为负数
0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | // 45
	  		符号位取反 ↓
1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | // -45 的原码
		除符号位以外,各个位取反 ↓
1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | // -45的反码
 				反码 + 1	↓
1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | // -45 的补码
进制
  • 所有数字在计算机底层都已二进制形式存在

  • 对于整数,有四种表示方式:

    • 二进制(binary):0,1,满 2 进 1。以 0b 或 0B 开头
    • 十进制(decimal):0 ~ 9,满 10 进 1
    • 八进制(octal):0 ~ 7,满 8 进 1 。以数字 0 开头
    • 十六进制(hex):0 ~ 9 及 A ~ F,满 16 进 1,以 0x 或 0X 开头
进制转换

十进制 —> 二进制:除 2 取余的逆

二进制 —> 八进制:每三位取和

二进制 —> 十进制:每位 2n - 1 相加

二进制 —> 十六进制:每四位取和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值