2.java基础概念

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/通道:专业摄影常用,颜色更精细。
3. 模数转换(ADC)
  • 传感器作用
    数码相机或扫描仪使用 图像传感器(如 CMOS 或 CCD)将光信号转换为电信号。
    • 每个像素对应传感器的一个感光单元。
  • 量化过程
    传感器测量每个像素的光强度,并将其转换为数字值(如 RGB 数值)。
4. 图像编码与压缩
(1) 原始数据(位图)
  • 未压缩格式:直接存储每个像素的 RGB 值。
    • 示例
      • 一张 1920×1080 的 24-bit 位图大小:
        1920×1080 × 3字节(RGB)≈ 6.22 MB
    • 常见格式: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)。
4. 存储为音频文件
  • 原始数据(Raw Data):未经压缩的二进制数据(如 WAV 文件)。
  • 压缩编码:为减少文件大小,通常使用压缩算法:
    • 无损压缩:保留全部信息(如 FLAC)。
    • 有损压缩:丢弃人耳不易察觉的信息(如 MP3、AAC)。
5. 播放声音:数模转换(DAC)

播放时,计算机通过 数模转换器(DAC) 将数字信号还原为模拟电信号,驱动扬声器振动,重现声音。

示例:从录音到存储
  1. 物理声波 → 麦克风 → 模拟电信号
  2. ADC 芯片采样(44.1kHz)并量化(16-bit) → 数字信号
  3. 编码为 PCM 数据 → 存储为 WAV 文件,或压缩为 MP3。
  4. 播放时,DAC 将数字信号还原为模拟信号 → 扬声器发声。

图片示例:

不同音质,就是根据原声,来进行采样
红色为原声,进行采样的越密集,还原的声音越真切:

相反亦然:

所以第一个音质好,第二个音质差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值