0%

java学习(三):java基础讲解

1.注释

注释主要分为单行注释、多行注释以及文档注释:

  • 单行注释:
1
// 单行注释
  • 多行注释:
1
2
3
4
/*
Hello
你好
*/
  • 文档注释:
1
2
3
/**
文档注释可以自动变为文档说明书
*/

2.字面量

不同数据在程序中的书写方式不同:

  • 整数、小数:按照原本格式即可
  • 字符:使用单引号
  • 字符串:使用双引号
  • 布尔值:只有两个值,分别是truefalse
  • 空值:null

3.变量

  • 变量是用来记住程序需要处理的数据。

  • 使用变量的好处:便于扩展和维护

变量的注意事项:

  • 变量在声明后才能使用
  • 变量类型和赋值数据必须匹配
  • 变量从定义开始到 } 截至范围内有效,且在同一范围内,它们的名称不能一样
  • 变量定义时可以不给初始值,但是使用之前一定要赋值

4.关键字、标识符

4.1 关键字

关键字就是java语言用到的一些词,有特殊作用,称为关键字,例如:public/class/int/double等。关键字不能用于类名、变量名,否则会报错

4.2 标识符

标识符就是名字,例如类名、变量名都是标识符。

标识符的要求:

  • 基本组成:由数字、字母以及下划线_和美元符号$等组成
  • 强制要求:不能以数字开头,不能用关键字作为名字,同时标识符区分大小写

标识符的建议规范:

  • 变量名称:满足标识符规则,建议采用“驼峰模式”,采用有意义的英文名称、首字母小写

  • 类名称:满足标识符规则,同时采用“驼峰模式”,采用有意义的英文名称、首字母大写

5.变量详解

5.1 变量数据在计算机中的存储原理

  • 变量数据在计算机中通过二进制存储,可以通过除二取余法计算。
  • 计算机中表示数据的最小单元称为**字节(Byte)**,一个字节中包括8比特(bit/位),一个bit即是一位0/1。
  • 计算机中最小表示位是比特(bit)

5.2 图片/音频/字符在计算机中的存储原理

  • 字符在计算机中的存储:将字符变成对应数字(ACSII编码)存储在底层。
  • 图片分为彩色和黑白图片,图片是由一系列像素点构成的,每个像素点都是由通道数值(0-255)构成,其中彩色图片有RGB三个通道,而黑白图片有一个通道。
  • 音频是有一系列波形图构成的,因此可以存储波形图上离散点的值即可。

本质上都是二进制存储。

5.3 进制及进制转化

5.3.1 十进制和二进制

  • 十进制转二进制:可以通过除二取余法来进行
  • 二进制转十进制:通过各位的指数加法来进行

5.3.2 八进制

  • 规则:逢八进一
  • 由来:将二进制中每三位作为一组,一组有8个数字(000-111,即0-7),表示出来的数字称为八进制。

5.3.3 十六进制

  • 规则:逢十六进一
  • 由来:将二进制中每四位作为一组,一组有16个数字(0000-1111,即0-15,表示为0-9 + ABCDEF),表示出来的数字称为十六进制。

java中支持书写二进制/八进制/十六进制的数据:

  • 二进制:以0B/0b开头
  • 八进制:以0开头
  • 十六进制:以0X/0x开头

5.4 计算机的数据单位

  • 计算机表示数据的最小组成单元是字节(byte),1字节=8bit
  • 计算机发展出以下单位:
    • 1B = 8b
    • 1KB = 1024B
    • 1MB = 1024KB
    • 1GB = 1024MB
    • 1TB = 1024GB

5.5 数据类型

基本数据类型包括8种:

数据类型 类型名称 内存占用(字节数) 数据范围
整型 byte 1 -128 ~ 127(正数首位为0,负数首位为1)
整型 short 2 -32768 ~ 32767
整型 int 4 -2147483648 ~ 2147483647
整型 long 8 -9223372036854775808 ~ 9223372036854775807
浮点型 float 4 1.401298E-45 ~ 3.4028235E38
浮点型 double(默认) 8 4.9E-324 ~ 1.797693E308
字符型 char 2 0 ~ 65535
布尔型 boolean 1 true, false

5.6 类型转换

  • 为什么要进行类型转换?
    1. 存在某种类型的变量赋值给另一种类型的变量
    2. 存在不同类型的数据一起运算
  • 类型转化的形式:
    • 自动类型转换

5.6.1 自动类型转换

  1. 定义:类型范围小的变量可以直接赋值给类型范围大的变量
  2. 原理:
1
2
3
4
5
6
7
8
9
10
11
package com.neuer.type;

public class TypeConversionDemo1 {
public static void main(String[] args) {
// 目标:需要理解自动类型转换
byte a = 12;
int b = a; // 发生自动类型转变
System.out.println(a);
System.out.println(b);
}
}

以上自动类型转换下,byte在计算机中以8位存储,int以32位存储,从类型范围小的变量可以直接赋值到类型范围大的变量,直接放到末尾即可。

5.6.2 表达式的自动类型转换

  1. 定义:在表达式中,小范围的变量会自动转换为表达式中较大范围的类型,再参与运算。
1
byte/short/char --> int --> long -->float --> double

注意:

  • 表达式的最终结果类型由表达式中的最高类型决定
  • 在表达式中,byte/short/char是直接转换成int类型参与运算的

5.6.3 强制类型转换

当大范围类型的变量转换为小范围变量时会产生强制类型转换,需要()

1
2
3
4
5
int a = 128;
byte b = (byte) a;

System.out.println(a);
System.out.println(b); // -128

注意

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 大范围->低范围的转换是强制类型转换
  4. 转换过程中存在精度问题

5.7 算术运算符、连接符

  1. 基本的算术运算符:+、-、*、/、%(取余)
  2. +可以做连接符,在字符串运算中作为连接符使用:
1
2
3
4
5
6
int a2 = 5;

System.out.println("abc" + a2); // "abc5"
System.out.println(a2 + 5); // 10
System.out.println("abc" + a2 + 'a'); // "abc5a"
System.out.println(a2 + 'a' + "efg"); // "102efg",前面的可以计算,计算按照ASCII码计算

要点:能算则算,不能算就在一起

5.8 自增运算符

  1. 自增运算符:放在变量之前或者后面,对变量自身的值加一
  2. 自减运算符:放在变量之前或者后面,对变量自身的值减一
  • 自增/自减只能操作变量,不能操作字面量
  • 自增/自减如果不是单独使用,则在变量前后会存在明显区别

5.9 其他运算符

  • 赋值运算符:=
  • 关系运算符:> < >= <= == != instanceof
  • 逻辑运算符:&& || !
  • 位运算符:& | ^ ~ >> << >>>
  • 条件运算符:? :
  • 扩展赋值运算符:+= -= *= /=

5.10 变量命名规范

  • 所有变量、方法、类名需要见名知意
  • 具体命名原则:
    • 类成员变量:首字母小写+驼峰原则,即除了第一个字母小写外,其余单词首字母大写,例如:monthSalary
    • 局部变量:首字母小写+驼峰原则
    • 常量:所有字母大写+下划线
    • 类名:首字母大写+驼峰原则
    • 方法名:首字母小写+驼峰原则

6.java包机制简介

java中提供了包机制,用于区别类名的命名空间。实际上,包的本质就是文件夹

包语句的语法格式是:

1
package pkg1[. pkg2[. pkg3...]];

注意:一般采用公司域名倒置作为包名称,例如:百度下面可能包括主站、百科等,可以采用以下方式

1
2
3
com.baidu.www // 百度的主站
baike.baidu.www // 百度的百科
...

在包下面定义的类,需要在首行声明包语句,即:

1
package com.neuer.operator // 所在包为com.neuer.opeartor

有些时候,我们需要用到其他包中的类或者方法,需要将其导入,可以使用import实现(需要在包语句下面):

1
import package1[.package2...].(classname|*);

注意:不要让不同包下面的类名称重复,否则导入时会引起冲突。

1
2
import com.neuer.operator.Demo1; // 导入Demo1类
import com.neuer.operator.*; // 导入包下所有类

7.JavaDoc

JavaDoc可以生成自己的API文档,需要以下参数:

可以通过命令行执行javadoc命令产生对应的doc,例如:我们在doc包下有一个类,名为DocDemo1,可以通过以下命令生成对应的文档:

1
javadoc -encoding UTF-8 -charset UTF-8 DocDemo1.java

注意-encoding以及-charset是为了满足中文编码的需要。

也可以使用IDEA创建javadoc,可以在导航栏 -> 生成javadoc中进行配置并生成,配置信息如下所示: