1.注释
1.单行注释://
2.多行注释:/* */
例如:
public class helloworld{
//下面表示main方法,是程序的入口,java会默认寻找该方法,并从上至下执行
//默认的方法
public static void main (String[] args){
/*以下是输出语句(打印语句)
会输出小括号中内容,注意有中文要加引号*/
System.out.println("今天是2025/5/7号");
}
}
// 注意java helloworld 不要加后缀,不然会显示
C:\Users\秦风\Desktop\java_study\代码>java helloworld.class
错误: 找不到或无法加载主类 helloworld.class
C:\Users\秦风\Desktop\java_study\代码>
3.文档注释:/** */ 用于描写说明文档
注意点:
1.注释内容不参与编译以及运行
2.注意,代码不要被注释
3.注释嵌套:
1.单行注释嵌在一起不会影响,但是','会更好些
例://下面表示main方法,是程序的入口//java会默认寻找该方法,并从上至下执行
2.多行注释嵌套会有影响,because第一个/*或寻找第一个*/,然后找到了就直接注释结束
例:/*以下是输出语句(打印语句)/*
会输出小括号中内容,*/注意有中文要加引号*/
颜色就不一样了,so为了避免报错出现,尽量不要去进行注释嵌套
2.关键字
关键字:被java赋予了特定涵义的英文单词
例如:if、public、class、int...
study class 关键字
class:用于创建/定义一个类,类是java最基本的组成单元
例:
public class helloworld{}
helloworld就是类名,类中内容写在{}之中
注意:
1.关键字的字母全部小写
2.常用的代码编辑器,针对关键字有特殊的颜色标记,很直观
3.字面量
字面量:告诉程序员:数据在程序中的书写格式
字面量类型:
1.整数类型:666、-88
2.小数类型:13.14、5.21
3.字符串类型:用双引号括起来的内容:"helloworld"... 里面可以写无数,也可以不写
4.字符类型:用单引号括起来的,内容只能有一个:'A'、'i'、'我'
'abc'-会报错
5.布尔类型:真假bool:true、false //是关键字,会高亮
6.空类型:一个特殊的值,空值 - null //会高亮,注意:不可以直接打印,如果要打印null,用双引号
例子:
System.out.println(null);
C:\Users\秦风\Desktop\java_study\代码>javac ValueDome1.java
ValueDome1.java:19: 错误: 对println的引用不明确
System.out.println(null);
^
PrintStream 中的方法 println(char[]) 和 PrintStream 中的方法 println(String) 都匹配
1 个错误
拓:
特殊字符:
1.'\t'--制表符:在打印的时候,把前面字符串的长度补齐到8,或者8的整数倍。
最少补1个空格,最多补8个空格。
意义:打印类似表格类的数据的时候可以对齐,例:下面输出看起来很不舒服
System.out.println("nameage");
System.out.println("tom21");
so 可以适用制表符
System.out.println("name"+'\t'+"age");
System.out.println("tom"+'\t'+"21");
效果:
start:
nameage
tom21
then:
name age
tom 21
2.'\r'--回车符:让光标回到行首,后续内容覆盖前面的字符
例:
System.out.println("abc\rdd");
输出:ddc
3.'\n'--换行符:将光标移动到下一行的起始位置(换行)
例:
System.out.println("abc\ndd");
输出:abc
dd
4.'\b'--退格符:将光标向左退一格,后续内容覆盖前面的字符
例:
System.out.println("abc\bdd");
输出:abdd
4.变量
1.变量基础
1.变量的使用场景:当某个数据经常需要改变,我们可以用变量存储该值,当数据发生改变时
只需要修改变量的值即可
2.变量的定义格式:
数据类型 变量名=数据值;
注:
数据类型:为空间中存储的诗句,有限制,是啥定义啥,整数、浮点、bool、字符串...
注意:
整数定义小数会丢失如下:
int a=10.1;
System.out.println(a);
报错:
C:\Users\秦风\Desktop\java_study\代码>javac ValueDome2.java
ValueDome2.java:4: 错误: 不兼容的类型: 从double转换到int可能会有损失
int a=10.1;
^
1 个错误
3.示例:
public class VariableDemo1{
public static void main(String[] args){
//目的:掌握变量
//变量:存储空间的值
//等号:将右边的值赋值给左边的变量
double a=10;
System.out.println(a); //会打印出10.0
}
}
2.变量的使用方式
1.输出打印,如上
2.参与计算,如下:
public class VariableDemo2{
public static void main(String[] args){
int a=10;
double b=21;
System.out.println(a+b);
}
}
输出:
C:\Users\秦风\Desktop\java_study\代码>javac VariableDemo2.java
C:\Users\秦风\Desktop\java_study\代码>java VariableDemo2
31.0
3.修改记录的值,如下:
public class VariableDemo2{
public static void main(String[] args){
int a=10;
double b=21;
System.out.println(a+b);
a=20;
System.out.println(a);
}
}
C:\Users\秦风\Desktop\java_study\代码>java VariableDemo2
31.0
20
4.注意点:
1.变量不能重复定义,要修改--变量名=值 ,即可不要像下面一样:
public class VariableDemo2{
public static void main(String[] args){
int a=10;
double b=21;
System.out.println(a+b);
int a=20;
System.out.println(a);
}
}
报错:
C:\Users\秦风\Desktop\java_study\代码>javac VariableDemo2.java
VariableDemo2.java:7: 错误: 已在方法 main(String[])中定义了变量 a
int a=20;
^
1 个错误
2.一条语句可以定义多个变量(建议一行一个变量)
int c=100,d=134,e=234,f=334;
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
//以下三种方式均有误
//System.out.println(c,d,e,f);
//System.out.println(c+','+d+','+e+','+f);
//System.out.println("变量值:c=%d,d=%d,e=%d,f=%d%n",c,d,e,f);
3.使用变量前必须要赋值
1.未定义:System.out.println(g);
C:\Users\秦风\Desktop\java_study\代码>javac VariableDemo2.java
VariableDemo2.java:21: 错误: 找不到符号
System.out.println(g);
^
符号: 变量 g
位置: 类 VariableDemo2
1 个错误
2.未赋值:
int g;
System.out.println(g);
C:\Users\秦风\Desktop\java_study\代码>javac VariableDemo2.java
VariableDemo2.java:22: 错误: 可能尚未初始化变量g
System.out.println(g);
^
1 个错误
3.赋值:
int g;
g=250;
System.out.println(g);
建议:定义变量时就直接赋值
变量练习:
代码:
public class VariableTest{
public static void main(String[] args){
int car_people=0;
System.out.println(car_people+1+2-1+2-1-1+1);
//开始没有乘客
int count=0;
//第一站:上来一位乘客
count=count+1;
//第二站:上来二位乘客,下去一位乘客
count=count+2-1;
//第三站:上来二位乘客,下去一位乘客
count=count+2-1;
//第四站:下去一位乘客
count=count-1;
//第五站:上来一位乘客
count=count+1;
System.out.println("车上最后还有"+count+"位乘客");
}
}
输出:
C:\Users\秦风\Desktop\java_study\代码>java VariableTest
3
车上最后还有3位乘客
5.计算机存储
1.计算机中有三类数据:
1.Test文本
2.image图片
3.sound声音
注:视频是三类的混合
1.Test文本
1.计算机使用二进制来进行存储,介绍下十进制,二进制,八进制,十六进制(每个进制含有的数对应)
1.最熟悉的:十进制(由0-9组成)10个数
平时的计算 9+1=10 99+1=100 --逢十进一、借一当十
2.二进制(由0和1组成)2个数
1+1=10 -- 逢二进一
11+1=100 - 100+1=101 - 101+1=110 - 110+1=111
3.八进制(由0-7组成)8个数
4.十六进制(由0-9还有a-f组成)16个数
2.不同进制在代码中的表现形式(jdk7提出来的):
二进制:代码中以0b开头
十进制:前面不加任何前缀
八进制:代码中以0开头
十六进制:代码中以0x开头
3.进制的转换:
1.任意进制转10进制 --- 公式:系数*基数的权次幂相加
系数:就是每一位上的数
基数:当前进制数
权 :从右往左,依次为0 1 2 3 4 5...
例:二进制101转十进制 --- 1 0 1
1*2^2 + 0*2^1 + 1*2^0 = 4 + 0 + 1 = 5
八进制101转十进制 --- 1 0 1
1*8^2 + 0*8^1 + 1*8^0 = 64 + 0 + 1 = 65
十六进制abc转十进制 --- a b c
10*16^2 + 11*16^1 + 12*16^0 =2560 + 176 + 12 =2748
拓:二进制快速转十进制:8421
例:1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
2.十进制转其他进制:
除奇取余法:不断的除以基数得到余数,直到商为0,再将余数倒着拼起来即可
11转二进制:11/2 -- 商:5 余 1
5/2 -- 商:2 余 1
2/2 --商:1 余 0
1/2 -- 商 0 余 1
so:倒过来就是二进制:1011
7转二进制:7/2 -- 商:3 余 1
3/2 -- 商:1 余 1
1/2 -- 商:0 余 1
so:倒过来就是二进制:111
--------------------------------
11转八进制:11/8 -- 商:1 余 3
1/8 -- 商:0 余 1
so:倒过来就是八进制:13 测试:1*8^1 + 3*8^0 = 8 + 3 = 11
注:
余数:余数的定义是在整数除法中,被除数不能被除数整除时所剩下的数
而当一个数除以比自己大的数时,商为0,余数为其本身
ASCII码表
但是上述没有汉字,because是美国写的并没有将汉字纳入,so当时计算机存储不了汉字,因此汉字差点没了,感兴趣的可以去查查
后续为了解决汉字在计算机上的存储的一个问题,我国推出了自己的码表 -- GB 2312—80(上个世纪80年代),下图为发展历程
2.image图片
1. 图像的物理本质
图像是物体反射或发射的光的分布。计算机需要将这种连续的光信号(模拟信号)转换为离散的数字信号。
2. 数字化过程:从光到像素
(1) 像素(Pixel)
- 基本单位:图像被分割为微小的点阵,每个点称为 像素(Picture Element)。
- 分辨率:像素的数量决定图像清晰度。例如,1920×1080 分辨率的图像包含 2,073,600 个像素。
(2) 颜色表示
- RGB 模型:计算机用红(R)、绿(G)、蓝(B)三原色的组合表示颜色。
-
- 每个颜色通道的取值范围通常为 0–255(8-bit)。
- 示例:纯红色为
(255, 0, 0)
,白色为(255, 255, 255)
。
- 颜色深度(Bit Depth):
-
- 8-bit/通道:每个通道 256 种值,总颜色数
256³ = 16,777,216
(真彩色)。 - 16-bit/通道:专业摄影常用,颜色更精细。
- 8-bit/通道:每个通道 256 种值,总颜色数
3. 模数转换(ADC)
- 传感器作用:
数码相机或扫描仪使用 图像传感器(如 CMOS 或 CCD)将光信号转换为电信号。
-
- 每个像素对应传感器的一个感光单元。
- 量化过程:
传感器测量每个像素的光强度,并将其转换为数字值(如 RGB 数值)。
4. 图像编码与压缩
(1) 原始数据(位图)
- 未压缩格式:直接存储每个像素的 RGB 值。
-
- 示例:
-
-
- 一张 1920×1080 的 24-bit 位图大小:
1920×1080 × 3字节(RGB)≈ 6.22 MB
。
- 一张 1920×1080 的 24-bit 位图大小:
-
-
- 常见格式:BMP、RAW。
(2) 压缩技术
- 无损压缩:保留所有原始数据,通过算法减少冗余。
-
- 示例:PNG(适合图标、线条图)。
- 有损压缩:舍弃人眼不敏感的细节,大幅减少文件大小。
-
- 示例:JPEG(适合照片,利用离散余弦变换 DCT)。
- 压缩比:可通过参数控制质量与大小的平衡。
(3) 其他编码方式
- 索引色:用调色板(Palette)存储有限颜色,减少数据量(如 GIF)。
- 矢量图形:通过数学公式描述形状(如 SVG),与像素无关,适合图标和文字。
5. 存储为图像文件
- 文件结构:
-
- 头信息:存储分辨率、颜色模式、压缩方式等元数据。
- 像素数据:按行或块排列的像素值(可能经过压缩)。
- 常见格式:
格式 | 类型 | 特点 |
JPEG | 有损压缩 | 小体积,适合照片,不支持透明通道 |
PNG | 无损压缩 | 支持透明通道,适合网络图形 |
GIF | 索引色 | 支持动画,最多 256 色 |
RAW | 原始数据 | 未压缩,保留最大信息,需后期处理 |
6. 关键参数总结
参数 | 作用 | 典型值 |
分辨率 | 图像清晰度(像素数量) | 1920×1080(高清) |
颜色深度 | 颜色精细度 | 24-bit(真彩色) |
压缩算法 | 平衡文件大小与质量 | JPEG(有损)、PNG(无损) |
7.为什么图片会失真?
- 分辨率不足:像素太少导致边缘锯齿化。
- 有损压缩:高频细节(如纹理)被丢弃,产生块状伪影(JPEG 常见)。
- 颜色量化:索引色格式(如 GIF)减少颜色数量,导致色带断层。
8.图片示例:
1.黑白图(黑色为0,白色为1)
2.灰白图(白色为0,然后不同程度的灰色用不同数字来表示)
3.彩色图--通过光学三原色来表达不同程度的颜色(三原色:红黄蓝---光学三原色:红绿蓝)
4.注:
1.分辨率:
分辨率:是指图像或视频中横向和纵向的像素数量,用来表示图像的清晰度
例:720p:1280x720像素
1080p:1920x1080像素
2K、4K、8K...
2.像素:
像素:由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值
小方格颜色和位置就决定该图像所呈现出来的样子
3.三原色:
1.计算机中的颜色采用光学三原色
2.分别为:红、绿、蓝--RGB
3.可以写成十进制形式--(255,255,255)
4.也可以写成十六进制形式--(FFFFFF)
3.声音存储
1. 声音的物理本质
声音是由物体振动产生的 声波(机械波),通过空气传播到麦克风时,会引发麦克风振膜的振动。
2. 模拟信号:从振动到电信号
麦克风的作用:
振膜的振动会转换成连续的 模拟电信号(电压随时间变化)。
- 例如:声波振动 → 振膜振动 → 电压波动(类似正弦波)
3. 模数转换(ADC):数字化过程
计算机无法直接处理连续的模拟信号,需通过 采样(Sampling) 和 量化(Quantization) 将其转换为离散的数字信号。
(1) 采样(Sampling)
- 原理:每隔固定时间间隔(采样周期)记录一次模拟信号的电压值。
- 采样率(Sample Rate):每秒采样的次数(单位:Hz)。
-
- 关键规则:根据 奈奎斯特采样定理,采样率需至少是声音最高频率的 2 倍。
- 常见采样率:
-
-
- 人耳听力范围:20Hz–20kHz → CD音质采样率 44.1kHz(满足 2×20kHz=40kHz)。
- 电话语音:8kHz(最高保留 4kHz 频率)。
-
(2) 量化(Quantization)
- 原理:将采样得到的电压值转换为离散的数值(通常是整数)。
- 量化位数(Bit Depth):决定数值的精度范围。
-
- 示例:
-
-
- 8-bit 量化 → 256 个可能的数值(0–255)。
- 16-bit 量化 → 65,536 个数值(CD音质)。
- 24-bit 量化 → 专业录音常用,动态范围更大。
-
(3) 编码(Encoding)
- 原理:将量化后的数值按特定格式存储为二进制数据(如 PCM 编码)。
- 示例:
-
- 一段 16-bit、44.1kHz 的立体声音频每秒数据量:
2 声道 × 44,100 次/秒 × 16 bits = 1,411,200 bit/s
(约 172 KB/s)。
- 一段 16-bit、44.1kHz 的立体声音频每秒数据量:
4. 存储为音频文件
- 原始数据(Raw Data):未经压缩的二进制数据(如 WAV 文件)。
- 压缩编码:为减少文件大小,通常使用压缩算法:
-
- 无损压缩:保留全部信息(如 FLAC)。
- 有损压缩:丢弃人耳不易察觉的信息(如 MP3、AAC)。
5. 播放声音:数模转换(DAC)
播放时,计算机通过 数模转换器(DAC) 将数字信号还原为模拟电信号,驱动扬声器振动,重现声音。
示例:从录音到存储
- 物理声波 → 麦克风 → 模拟电信号。
- ADC 芯片采样(44.1kHz)并量化(16-bit) → 数字信号。
- 编码为 PCM 数据 → 存储为 WAV 文件,或压缩为 MP3。
- 播放时,DAC 将数字信号还原为模拟信号 → 扬声器发声。
图片示例:
不同音质,就是根据原声,来进行采样
红色为原声,进行采样的越密集,还原的声音越真切:
相反亦然:
所以第一个音质好,第二个音质差