02-标示符、变量、数据类型,进制转换和类型转换

1.注释

程序中的注释,用来说明某段代码的作用,其增强了代码的 可读性 , 让程序员快速的理解代码的含义和系统设计思路,同时便于系统交付后对代码日常维护以及后续迭代升级。
Java 中的注释,分为三种:
           单行注释
           多行注释
           文档注释(后续课程讲解)

1.单行注释

单行注释是最常用的注释方式,其注释内容从 "//" 开始到本行末尾。
例如:
//类名:Test01
//作用:单行注释测试类
public class Test01 {
//main方法是程序的执行入口,且写法是固定的
public static void main(String[] args){
//向控制台中输出指定字符串内容
System.out.println("hello world");
//下面一句代码被注释掉了,不会被执行
//System.out.println("hello Java");
} //main方法结束
}//Test01类定义结束

2.多行注释

多行注释以 "/*" 开始,到 "*/" 结束,其可以注释一行,也可以注释多行
例如:
/*
类名:Test02
作用:多行注释测试类
*/
public class Test02 {
/* main方法,固定写法,程序入口 */
public static void main(String[] args){
/* 向控制台中输出 */
System.out.println("hello world");
/* 下面多行代码被会被注释掉了,不会执行 */
/*
int a = 1;
System.out.println(a);
*/
} /* main方法结束 */
} /* Test02类定义结束 */
注意 多行注释不能嵌套,否则会报错                                                                                            
下面的写法是 错误的 ,编译会报错。
/*
/*多行注释里面又嵌套了多行注释,编译报错*/
*/
public static void test(){
//...
}

3.文档注释

格式: /** 文档注释内容 */
后续再给大家补充讲解!

4.困惑解答

思考: Java 源代码中如果添加了注释,会不会导致字节码文件会臃肿变 大?                                   
回答:不会的。因为 源代码文件: Xxxx.Java 通过编译生成 字节码文件: Xxxx.class 的过程中,编译器会忽略掉源码中的注释部分。

5.小结

注释是一个程序员必须要具备的编程习惯,初学者写程序可以养成习惯:
先把实现思路用注释写下来,然后再补全代码。

2.关键字

关键字概述
Java 语言赋予特定含义的单词
关键字特点
组成关键字的字母全部小写,常用的代码编辑器对关键字都有高亮显示
常见关键字
public static void class
Keywords in Java
注意:
  • const goto Java中的保留字(暂时没用,后续可扩展使用)
  • true false 不是关键字,是boolean类型的字面值,但是也不能直接使truefalse来做标识符

3.标识符合法标示符

非法标示符
在Java中,给类、方法、变量起的名字,就是标识符,其可以用来标识 这个类、方法、变量         
命名规则
  • 标示符可以由字母、数字、下划线_ 、美元符号$组成
  • 标示符开头不能是数字
  • 标识符中的字符大小写敏感
  • 标识符的长度没有限制
  • 标示符不能使用Java中的关键字或保留字
案例
命名约定:
采用驼峰命名法,具体如下,
  • 类和接口 :不管是1个还是多个单词,每个单词的首字母都大写(大驼峰)                        public class Account{ }                                                                                                            public interface AccountBase{ }
  • 方法和变量 :首字母小写,第二个单词开始每个单词的首字母大写 (小驼峰)                  public void getStudentName(){ }                                                                                              int personNum = 1
  • 常量 :全部字母大写,如果是多个单词,单词与单词间使用下划线分隔                             public static final int MAX_NUM = 10;
  • 尽量使用有意义的名字,尽量做到见名知意                                                                        int numOfStudnet = 10;                                                                                                       String userName = "tom";

4.常量

概念

在程序运行过程中,其值不可以发生改变的量,称为常量。

分类

常量可以分为 2 大类: 字面值常量 自定义常量 ( 面向对象部分讲解 )

字面值常量

  • 字符串常量 用双引号括起来的多个字符(可以包含0个、一个或多个)                                  例如"""a""abc""中国"
  • 整数常量 整数                                                                                                                          例如:-10088
  • 小数常量 小数                                                                                                                              例如:-5.51.088.88
  • 字符常量 用单引号括起来的一个字符                                                                                       例如:'a''5''B'''
  • 布尔常量 布尔值,表示真假,只有两个值truefalse
  • 空常量 一个特殊的值,空值,值为null
注意
  • 除空常量外,其他常量均可使用输出语句直接输出
  • 大家可以好好揣摩下 字面值常量 这个词,这个字面值是固定、不可改变的,即常量值
案例
public class Test04 {
//输出各种常量值
public static void main(String[] args) {
System.out.println(10); // 输出整数常量
System.out.println(5.5); // 输出小数常量
System.out.println('a'); // 输出字符常量
System.out.println(true); // 输出boolean常量值
true
System.out.println("欢迎来到杰普软件"); // 输出字符串
常量
}
}

5.变量

变量的定义有 2 种格式,分别如下:
格式 1
数据类型 变量名 ;
变量名 = 数据值 ;
格式 2
数据类型 变量名 = 数据值 ; (推荐用法)
变量一定是要求先声明、再赋值、再使用
示例:
public class Test04 {
public static void main(String[] args) {
// 第一种定义格式
int a; //变量声明
a = 10; //变量赋值
System.out.println(a); //变量使用
// 第二种定义格式:声明变量的同时就进行赋值
int b = 20;
System.out.println(b);
}
}
理解
数据类型 Java 是强类型语言 ,每个常量或变量都有对应的数据类型 (后面章节专门介绍)
变量名:就是一个标识符,用来标识内存上的一块空间
数据值:即变量值,该值会存储到变量名标识的那块空间中
内存基础知识
理解变量内存结构之前,我们需要补充一点内存区域的基础知识,大家 解即可 ,详见下表:
程序执行流程
1. 执行 java 命令,系统会把编译生成的 class 文件内容装入内存中的方法区
2. 接下来找到里面的 main 方法(程序入口)
3. 再在方法栈空间申请一块区域(存储方法中变量)来保证 main 方法的执行
4. 最后顺序执行 main 方法中的代码
5. 遇到 main 方法的 "}" return 语句,方法执行结束, main 方法函数帧内存释放
变量内存
注意事项
1. 变量名是标识符中的一种,用来标识一块内存区域
2. 变量定义后没有赋初值,不能直接使用,编译报错
3. 变量值的类型应该跟变量的类型一致(先这么记,后续会补充)

6.数据类型

1 概述

Java 是强类型语言,对于每一种数据都定义了明确的数据类型,不同类型
变量在内存中对应的空间大小不同。
分类
Java 数据类型可以分为 2 大类: 基本数据类型 引用数据类型 (面向对象部分讲解)。
基本数据类型
      可以分为 4 大类 8 种,具体如下:
                  ○整数型 byte short int long
                  ○浮点型 float double
                  ○字符型 char
                  ○布尔型 boolean 值只有 true false
思考:为什么数据类型有这么多种呢?
                  ○不同据类型占用的内存空间是不同的
                  ○不同的内存空间,所存储的数据的大小范围是不一样的
说明: e+38 表示是乘以 10 38 次方,同样, e-45 表示乘以 10 的负 45 次方。
小结
定义变量时,我们应该根据变量可能的取值范围,来选择合适的数据类型。

2 字节

比特位 : bit ,是计算机存储信息的最小单位,存放一位二进制数,即 0 或 1。
字节: byte ,是计算机 存储容量的最小单位 ,通常用大写字母 “B” 表示,
1byte == 8bits
大家可看下自己硬盘中存储的文件,就是以字节为单位存储的:
计算器存储容量的单位,常见的还有 KB M G T ,换算过程如下:
1KB (Kilobyte 千字节 ) = 1024B ,其中 1024=2^10 ( 2 10 次方 )
1MB (Megabyte 兆字节 简称 ”) = 1024KB
1GB (Gigabyte 吉字节 又称 千兆 ”) = 1024MB
1TB (Trillionbyte 万亿字节 太字节 ) = 1024GB

进制

概念
进制就是进位制,是人们规定的一种进位方法,二进制逢 2 1 ,八进制是 逢8 1 ,十进制逢 10 1 ,十六进制逢 16 1
不同进制形式:
  • 二进制 0b|B开头,由01组成
  • 八进制 0开头,01...67组成
  • 十进制 常见整数,01...89组成
  • 十六进制 0x0X开头,01...89abcdef组成,大小写不区分
    public class Test06 {
    public static void main(String[] args) {
    byte b1 = 0b01100001; //二进制
    byte b2 = 97; //十进制
    byte b3 = 0141; //八进制
    byte b4 = 0x61; //十六进制
    //打印出来结果全是97,为什么?
    System.out.println(b1);
    System.out.println(b2);
    System.out.println(b3);
    System.out.println(b4);
    
    }

进制转换

1. 任意进制转换为10进制

结果值 = 系数*基数的权次幂相加
系数:每一位上的数据
基数: X 进制,基数就是 X
权:最右边那位对应 0 ,每左移一位加 1
案例
变量内存理解

2. 十进制转换为其他进制

除积倒取余 ,具体计算过程如下:
16 进制也是一样的换算方式。

3.十进制到二进制的快速转换

对于不太大的正整数,我们可以采用一种快捷的方式来获取其 2 进制形
式,具体可参考下图:
上图运算步骤解析
  • 拆解正整数,将其分解为2的指数倍相加
  • 找出2的指数倍 对应的 二进制1
  • 根据变量类型确定占用的字节数及比特位,组合得到最终的二进制形式

4. 二进制转换为816进制

2 进制转化为 8 进制
从最低位开始,每 3 位分一组,不足 3 位的话高位补 0
将得到的数字组合到一起,最前面以 0 开头
案例:

  

2 进制转换为 16 进制
从最低位开始,每 4 位分一组,不足 4 位的话高位补 0
将得到的数字组合到一起,最前面以 0x 开头
案例:

5 原反补码

学习这个知识点之前,我们先来看一个题目。
题目:
写出 10 的二进制形式
答案:
0b 0 0(23 ) 0000 1010
解读:
10 对应的类型为 int ,在计算机底层占 4 字节,需要 32 个比特位表示
其中最高位为符号位, 0 表示正数, 1 表示负数
剩下的 31 位,其中 23 位都为 0 ,低 8 位为 0000 1010 = 8 + 2 = 10
连到一起,结果为正整数 10
思考:
如何表示 -10 的二进制形式呢?
如果要表示负整数的二进制形式,则必须学习原码、反码、补码。
计算机运算时都是以补码方式进行
原码:
就是二进制定点表示法,即最高位为符号位, “0” 表示正, “1” 表示负,其
余位表示数值的大小
10 的原码: 0 0 ( 23 ) 0000 1010
- 10 的原码: 1 0 ( 23 ) 0000 1010
反码:
正数的反码与其原码相同
负数的反码,在原码的基础上,保留符号位,其他位逐位取反
10 的反码: 跟 10 的原码相同 0 0 ( 23 ) 0000 1010
- 10 的反码: 拿到 - 10 的原码, 1 0 ( 23 ) 0000 1010
保留符号位其他位取反 1 1 ( 23 ) 1111 0101
补码:
正数的补码与其原码相同
负数的补码是在其反码的末位加 1
10 的补码: 跟 10 的原码相同 0 0 ( 23 ) 0000 1010
- 10 的补码: 拿到 - 10 的反码, 1 1 ( 23 ) 1111 0101
在反码基础上加 1 1 1 ( 23 ) 1111 0110
验证:
小结
大家理解掌握了上述推导过程后,记下几个整形的取值范围即可:

7.类型转换

1 隐式类型转换

赋值过程中,小数据类型值或变量可以直接赋值给大类型变量,类型会
自动进行转换
  • byteshortchar类型的数据在进行算术运算时,会先自动提升为int然后再进行运算
  • 其他类型相互运算时,表示范围小的会自动提升为范围大的,然后再

2 显式类型转换

赋值过程中,大类型数据赋值给小类型变量,编译报错,此时必须通过强
制类型转换实现。
格式
                  数据类型 变量名 = ( 目标数据类型 )( 数值或变量或表达式 ) ;

8.控制台输入

Scanner类用来控制台获取输入,Scanner 类在 java.util中。

一般程序代码开始需要引入所有需要用到的包和类

使用Scanner如下所示:

import java.util.Scanner;

Scanner sc=new Scanner(System.in);

int age=sc.nextInt();

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值