【Java万花筒】数字信号魔法:Java库的魅力解析
从傅立叶到矩阵:数字信号Java库全景剖析
前言
随着数字信号处理在科学、工程和数据分析领域的广泛应用,开发者对高效、灵活的工具的需求日益增长。本文旨在探讨几个与数字信号处理相关的Java库,通过介绍其特点、用途以及与已有库的关系,为开发者提供更为全面和强大的工具集。
欢迎订阅专栏:Java万花筒
文章目录
- 从傅立叶到矩阵:数字信号Java库全景剖析
- 前言
- 1. JTransforms
- 1.1 特点和用途
- 1.2 与现有库的关系
- 1.3 多维FFT与频谱分析
- 1.4 实时信号处理与窗口函数
- 2. Commons Math
- 2.1 主要功能和特性
- 2.2 与现有库的比较
- 2.3 高级统计与回归分析
- 2.4 随机数生成与分布拟合
- 3. JAMA (Java Matrix Library)
- 3.1 矩阵运算功能概述
- 3.2 与现有库的集成与互补性
- 3.3 特征值分解与奇异值分解
- 3.4 线性方程组求解
- 4. Apache Commons Codec
- 4.1 编码与解码功能
- 4.2 与数字信号处理库的关联
- 4.3 URL编码与解码
- 4.4 摘要算法与消息摘要
- 5. Apache Commons IO
- 5.1 输入输出操作功能
- 5.2 与数字信号处理库的协同使用
- 5.3 流的复制与传输
- 5.4 流的包装与过滤
- 6. EJML (Efficient Java Matrix Library)
- 6.1 高效的矩阵运算
- 6.2 与现有矩阵运算库的比较
- 6. EJML (Efficient Java Matrix Library) (续)
- 6.3 分解与求逆运算
- 6.4 特殊矩阵的生成与运算
- 总结
1. JTransforms
1.1 特点和用途
JTransforms是一个用于执行快速傅立叶变换(FFT)的Java库。它提供高性能、灵活性和易用性,适用于许多信号处理和数据分析应用。
1.2 与现有库的关系
import org.jtransforms.fft.DoubleFFT_1D;public class JTransformsExample {public static void main(String[] args) {// 示例代码double[] data = {1.0, 2.0, 3.0, 4.0};DoubleFFT_1D fft = new DoubleFFT_1D(data.length);fft.realForward(data);// 处理后的数据for (double value : data) {System.out.println(value);}}
}
1.3 多维FFT与频谱分析
JTransforms不仅支持一维FFT,还提供了多维FFT的功能。这使得在处理二维图像、三维数据等情况下,能够更灵活地进行频谱分析。下面是一个简单的二维FFT的示例:
import org.jtransforms.fft.DoubleFFT_2D;public class JTransformsMultiDimensionalExample {public static void main(String[] args) {// 示例代码double[][] data = {{1.0, 2.0, 3.0, 4.0},{5.0, 6.0, 7.0, 8.0},{9.0, 10.0, 11.0, 12.0}};DoubleFFT_2D fft2D = new DoubleFFT_2D(data.length, data[0].length);fft2D.realForward(data);// 处理后的二维数据for (double[] row : data) {for (double value : row) {System.out.print(value + " ");}System.out.println();}}
}
1.4 实时信号处理与窗口函数
JTransforms提供了窗口函数的支持,这对于实时信号处理和数据窗口ing非常有用。以下是一个使用窗口函数的示例:
import org.jtransforms.fft.DoubleFFT_1D;
import org.jtransforms.utils.Commons;public class JTransformsWindowFunctionExample {public static void main(String[] args) {// 示例代码double[] data = {1.0, 2.0, 3.0, 4.0};// 应用Hann窗口函数double[] windowedData = Commons.window(data, Commons.Window.HANN);// 使用FFT处理窗口后的数据DoubleFFT_1D fft = new DoubleFFT_1D(windowedData.length);fft.realForward(windowedData);// 处理后的数据for (double value : windowedData) {System.out.println(value);}}
}
通过这些功能,JTransforms在信号处理领域提供了更多灵活性和可扩展性,使得开发者能够更好地适应不同的数据处理场景。
2. Commons Math
2.1 主要功能和特性
Commons Math是一个强大的数学库,其中包含了丰富的数学功能,包括信号处理。它提供了对矩阵、线性代数、随机数生成等方面的支持。
2.2 与现有库的比较
import org.apache.commons.math3.linear.MatrixUtils;
import org.apache.commons.math3.linear.RealMatrix;public class CommonsMathExample {public static void main(String[] args) {// 示例代码double[][] data = {{1.0, 2.0}, {3.0, 4.0}};RealMatrix matrix = MatrixUtils.createRealMatrix(data);// 矩阵运算RealMatrix result = matrix.transpose();// 输出结果System.out.println(result);}
}
2.3 高级统计与回归分析
除了基础的线性代数功能外,Commons Math还提供了高级统计和回归分析的工具。下面是一个简单的线性回归示例:
import org.apache.commons.math3.stat.regression.SimpleRegression;public class CommonsMathRegressionExample {public static void main(String[] args) {// 示例代码SimpleRegression regression = new SimpleRegression();regression.addData(1.0, 2.0);regression.addData(2.0, 3.0);regression.addData(3.0, 4.0);// 获取回归系数double slope = regression.getSlope();double intercept = regression.getIntercept();// 输出结果System.out.println("Slope: " + slope);System.out.println("Intercept: " + intercept);}
}
2.4 随机数生成与分布拟合
Commons Math还提供了强大的随机数生成和分布拟合功能,适用于模拟实验和统计分析。以下是一个生成正态分布随机数的示例:
import org.apache.commons.math3.distribution.NormalDistribution;
import org.apache.commons.math3.random.RandomDataGenerator;public class CommonsMathRandomExample {public static void main(String[] args) {// 示例代码NormalDistribution normalDistribution = new NormalDistribution(0, 1);RandomDataGenerator randomDataGenerator = new RandomDataGenerator();// 生成正态分布随机数double randomValue = randomDataGenerator.nextNormalizedDouble(normalDistribution);// 输出结果System.out.println("Random Value: " + randomValue);}
}
Commons Math通过丰富的数学工具,满足了更广泛领域的需求,包括统计学、机器学习和数据科学等。
3. JAMA (Java Matrix Library)
3.1 矩阵运算功能概述
JAMA是一个Java矩阵库,用于进行矩阵运算。它包括了对矩阵分解、特征值计算等常见操作的支持。
3.2 与现有库的集成与互补性
import Jama.Matrix;public class JAMAExample {public static void main(String[] args) {// 示例代码double[][] data = {{1.0, 2.0}, {3.0, 4.0}};Matrix matrix = new Matrix(data);// 矩阵运算Matrix result = matrix.inverse();// 输出结果result.print(4, 2);}
}
3.3 特征值分解与奇异值分解
JAMA提供了对矩阵的特征值分解和奇异值分解的支持。以下是一个简单的特征值分解示例:
import Jama.EigenvalueDecomposition;public class JAMAEigenvalueExample {public static void main(String[] args) {// 示例代码double[][] data = {{1.0, 2.0}, {3.0, 4.0}};Matrix matrix = new Matrix(data);// 特征值分解EigenvalueDecomposition decomposition = matrix.eig();Matrix eigenvalues = decomposition.getD();// 输出结果eigenvalues.print(4, 2);}
}
3.4 线性方程组求解
JAMA可以用于解决线性方程组,通过其solve
方法可以得到方程组的解。以下是一个线性方程组求解的示例:
import Jama.Matrix;public class JAMALinearEquationExample {public static void main(String[] args) {// 示例代码double[][] coefficients = {{2.0, -1.0}, {1.0, 3.0}};double[] constants = {1.0, 4.0};Matrix coefficientMatrix = new Matrix(coefficients);Matrix constantsMatrix = new Matrix(constants, 2);// 解线性方程组Matrix solution = coefficientMatrix.solve(constantsMatrix);// 输出结果solution.print(4, 2);}
}
JAMA作为矩阵运算的专业库,为开发者提供了丰富的矩阵分解、特征值计算等功能,使其能够更灵活地处理复杂的数学运算。
4. Apache Commons Codec
4.1 编码与解码功能
Apache Commons Codec提供了多种编码和解码算法,包括Base64、Hex等。在数字信号处理中,它可以用于数据的编码和解码。
4.2 与数字信号处理库的关联
import org.apache.commons.codec.binary.Base64;public class CommonsCodecExample {public static void main(String[] args) {// 示例代码String data = "Hello, World!";byte[] encodedData = Base64.encodeBase64(data.getBytes());String decodedData = new String(Base64.decodeBase64(encodedData));// 输出结果System.out.println("Encoded: " + new String(encodedData));System.out.println("Decoded: " + decodedData);}
}
4.3 URL编码与解码
除了Base64编码外,Apache Commons Codec还提供了对URL编码和解码的支持。下面是一个URL编码的示例:
import org.apache.commons.codec.net.URLCodec;public class CommonsCodecUrlExample {public static void main(String[] args) {// 示例代码String data = "Hello, World!";// URL编码URLCodec urlCodec = new URLCodec();String encodedData = urlCodec.encode(data);// 输出结果System.out.println("Encoded URL: " + encodedData);}
}
4.4 摘要算法与消息摘要
Apache Commons Codec还包括了多种摘要算法,如MD5、SHA等,适用于生成数据的消息摘要。以下是一个使用MD5摘要算法的示例:
import org.apache.commons.codec.digest.DigestUtils;public class CommonsCodecDigestExample {public static void main(String[] args) {// 示例代码String data = "Hello, World!";// 计算MD5摘要String md5Digest = DigestUtils.md5Hex(data);// 输出结果System.out.println("MD5 Digest: " + md5Digest);}
}
Apache Commons Codec通过提供多样化的编码和摘要算法,为数字信号处理库提供了数据安全性和互操作性的支持。
5. Apache Commons IO
5.1 输入输出操作功能
Apache Commons IO提供了丰富的输入输出操作功能,用于文件、流等的处理。在数字信号处理中,它可用于数据的读写操作。
5.2 与数字信号处理库的协同使用
import org.apache.commons.io.FileUtils;import java.io.File;
import java.io.IOException;
import java.util.List;public class CommonsIOExample {public static void main(String[] args) {// 示例代码File file = new File("data.txt");// 写入数据try {FileUtils.writeLines(file, List.of("Line 1", "Line 2", "Line 3"));} catch (IOException e) {e.printStackTrace();}// 读取数据try {List<String> lines = FileUtils.readLines(file);lines.forEach(System.out::println);} catch (IOException e) {e.printStackTrace();}}
}
5.3 流的复制与传输
除了基本的文件读写外,Apache Commons IO还提供了高效的流复制和传输功能,适用于大文件的处理。以下是一个文件复制的示例:
import org.apache.commons.io.FileUtils;import java.io.File;
import java.io.IOException;public class CommonsIOFileCopyExample {public static void main(String[] args) {// 示例代码File sourceFile = new File("source.txt");File destinationFile = new File("destination.txt");// 复制文件try {FileUtils.copyFile(sourceFile, destinationFile);} catch (IOException e) {e.printStackTrace();}}
}
5.4 流的包装与过滤
Apache Commons IO提供了多种用于流的包装和过滤的工具,例如BufferedReader
、BufferedWriter
等,有助于提高文件读写效率。以下是一个使用BufferedReader
的示例:
import org.apache.commons.io.IOUtils;import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;public class CommonsIOBufferedReaderExample {public static void main(String[] args) {// 示例代码try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {// 读取数据String line;while ((line = reader.readLine()) != null) {System.out.println(line);}} catch (IOException e) {e.printStackTrace();}}
}
Apache Commons IO的强大功能为数字信号处理提供了便捷的文件和流操作,使得开发者能够更轻松地处理各类数据输入输出任务。
6. EJML (Efficient Java Matrix Library)
6.1 高效的矩阵运算
EJML是一个专注于高效矩阵运算的Java库,支持各种矩阵操作,包括线性代数和特殊矩阵。
6.2 与现有矩阵运算库的比较
import org.ejml.simple.SimpleMatrix;public class EJMLExample {public static void main(String[] args) {// 示例代码SimpleMatrix matrix = new SimpleMatrix(2, 2, true, 1.0, 2.0, 3.0, 4.0);// 矩阵运算SimpleMatrix result = matrix.transpose();// 输出结果System.out.println(result);}
}
6. EJML (Efficient Java Matrix Library) (续)
6.3 分解与求逆运算
EJML提供了对矩阵的LU分解、Cholesky分解等高级运算,同时也支持求逆运算。以下是一个使用LU分解求解线性方程组的示例:
import org.ejml.simple.SimpleMatrix;public class EJMLDecompositionExample {public static void main(String[] args) {// 示例代码SimpleMatrix coefficients = new SimpleMatrix(new double[][]{{2.0, -1.0}, {1.0, 3.0}});SimpleMatrix constants = new SimpleMatrix(new double[]{1.0, 4.0});// LU分解SimpleMatrix solution = coefficients.solve(constants);// 输出结果System.out.println(solution);}
}
6.4 特殊矩阵的生成与运算
EJML支持生成特殊矩阵,如对角矩阵、零矩阵等,并提供了相应的运算。以下是一个生成对角矩阵并进行乘法运算的示例:
import org.ejml.simple.SimpleMatrix;public class EJMLSpecialMatrixExample {public static void main(String[] args) {// 示例代码SimpleMatrix diagonalMatrix = SimpleMatrix.diag(2.0, 3.0);// 矩阵乘法SimpleMatrix result = diagonalMatrix.mult(2);// 输出结果System.out.println(result);}
}
EJML通过其高效的矩阵运算和丰富的特殊矩阵支持,为开发者提供了在科学计算和工程应用中进行复杂矩阵操作的有效工具。
总结
本文深入研究了几个在数字信号处理领域中具有重要作用的Java库。从快速傅立叶变换到矩阵运算,再到编码解码和文件操作,这些库为开发者提供了强大的工具,使其能够高效处理各种信号处理任务。
相关文章:
【Java万花筒】数字信号魔法:Java库的魅力解析
从傅立叶到矩阵:数字信号Java库全景剖析 前言 随着数字信号处理在科学、工程和数据分析领域的广泛应用,开发者对高效、灵活的工具的需求日益增长。本文旨在探讨几个与数字信号处理相关的Java库,通过介绍其特点、用途以及与已有库的关系&…...
面试高频知识点:2线程 2.1 线程池 2.1.2 JDK中常见的线程池实现有哪些?
1. Executors类 Executors类是线程池的工厂类,提供了一些静态方法用于创建不同类型的线程池。然而,它的使用并不推荐在生产环境中,因为它存在一些缺点,比如默认使用无界的任务队列,可能导致内存溢出。 2. ThreadPool…...
Azure Private endpoint DNS 记录是如何解析的
Private endpoint 从本质上来说是Azure 服务在Azure 虚拟网络中安插的一张带私有地址的网卡。 举例来说如果Storage account在没有绑定private endpoint之前,查询Storage account的DNS记录会是如下情况: Seq Name …...
windows 安装sql server 华为云文档
先安装net3.5,剩下安装sqlserver步骤看下面文档 安装SQL Server_弹性云服务器 ECS_最佳实践_搭建Microsoft SharePoint Server 2016_华为云 (huaweicloud.com)...
相同主题文章竟同时发表在同一个2区期刊 | 孟德尔随机化周报(1.10-1.16)
欢迎报名2024年郑老师团队课程课程! 郑老师科研统计培训,包括临床数据、公共数据分析课程,欢迎报名 孟德尔随机化,Mendilian Randomization,简写为MR,是一种在流行病学领域应用广泛的一种实验设计方法,利用…...
网络安全的使命:守护数字世界的稳定和信任
在数字化时代,网络安全的角色不仅仅是技术系统的守护者,更是数字社会的信任保卫者。网络安全的使命是保护、维护和巩固数字世界的稳定性、可靠性以及人们对互联网的信任。本文将深入探讨网络安全是如何履行这一使命的。 第一部分:信息资产的…...
【七、centos要停止维护了,我选择Almalinux】
搜索镜像 https://developer.aliyun.com/mirror/?serviceTypemirror&tag%E7%B3%BB%E7%BB%9F&keywordalmalinux dvd是有界面操作的,minimal是最小化只有命里行 镜像下载地址 安装和centos基本一样的,操作命令也是一样的,有需要我…...
架构师之路(十六)计算机网络(传输层)
前置知识(了解):计算机基础。 作为架构师,我们所设计的系统很少为单机系统,因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。 既然网络层已经…...
python 调用SumatraPDF 静默打印PDF
SumatraPDF 文档 https://www.sumatrapdfreader.org/docs/Command-line-arguments ⽆边框 noscale/缩⼩到合适⼤⼩(默认)shrink/合适⼤⼩ fit/compat 兼容 # 分为 Portrait (纵向)和 Landscape (横向)两类 https://github.com/sumatrapdfreader/sumatrap…...
nginx部署https域名ssl证书
1、在你服务器nginx文件夹下创建ssl文件夹存放证书文件和秘钥文件 把.crt和.key证书放上 2、在nginx.conf文件中配置 在nginx.conf文件中server下加入listen 443 ssl; server {listen 443 ssl;charset utf-8;index index.html index.htm index.jsp index.do;add_heade…...
Python学习之路-Django基础:HelloDjango
Python学习之路-Django基础:HelloDjango 简介 Django,发音为[dʒŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD…...
完成NAT实验
实验要求: 步骤一:配置vlan vlan b 2 3 interface GigabitEthernet 0/0/2 port link-type access port default vlan 2 interface GigabitEthernet 0/0/3 port link-type access port default vlan 3 interface GigabitEthernet 0/0/1 port link-type…...
uniapp 用web-view嵌套网页地址并传参
小程序登陆后把token和openId 对应传到pc端 pc端有两套一套pc端代码和适应移动端的代码 嵌套的是适应移动端的代码 1.uniapp <template><view class"main"><u-navbar :fixed"true" :autoBack"false" leftClick"goBack&quo…...
时序数据库Tdengine 批量插入避免因为主键ts时间重复导致数据被覆盖掉
目录 在Mybatis中使用 在数据库管理工具中使用 now100a 使用now() #{index}a 其中那这个 #{index}是<foreach>标签里的循环出来的index 在Mybatis中使用 <insert id"batchInsert" parameterType"java.util.List">insert into uri(id…...
【小白教程】幻兽帕鲁服务器一键搭建 | 支持更新 | 自定义配置
幻兽帕鲁刚上线就百万在线人数,官方服务器的又经常不稳定,所以这里给大家带来最快捷的搭建教程,废话不多说直接开始。 步骤一:准备服务器 服务器建议 Linux 系统,资源占用低,而且一键脚本只需要一条命令&am…...
Chatgpt的崛起之路
Chatgpt的崛起之路 背景与发展历程背景发展历程 技术原理第一阶段:训练监督策略模型第二阶段:训练奖励模型第三阶段:采用强化学习来增强模型的能力。 国内使用情况及应用的领域面临的数据安全挑战与建议ChatGPT获取数据产生的问题数据泄露问题…...
java截取视频最后一帧照片作为封面
引言 我们在日常工作中经常会遇到上传视频,而产品还会要求截取视频某一帧作为封面展示,对于这种情况新手还是比较头疼的,那我们直接世界上最简单的实现方案,必须是最简单,多一句啰嗦都不准点赞。 How to do 1.提前…...
ARM Cortex-A 内核的运行模式切换
ARM Cortex-A 内核的运行模式切换 ARM Cortex-A系列内核的处理器支持多种运行模式的切换。 不同的运行模式能满足不同的需求,如响应中断、运行操作系统内核、处理异常等。 目录 1 ARM Cortex-A 内核的处理器什么场景下有切换运行模式的需求 2 ARM Cortex-A 内核的处理…...
分布式因果推断在美团履约平台的探索与实践
美团履约平台技术部在因果推断领域持续的探索和实践中,自研了一系列分布式的工具。本文重点介绍了分布式因果树算法的实现,并系统地阐述如何设计实现一种分布式因果树算法,以及因果效应评估方面qini_curve/qini_score的不足与应对技巧。希望能…...
254.【2023华为OD机试真题】-任务处理(贪心算法-JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-任务处理二.解题思路三.题解代码Python题解代码…...
《WebKit 技术内幕》学习之十五(5):Web前端的未来
5 Crosswalk项目 Crosswalk项目是由英特尔公司发起的一个开源项目,该项目基于WebKit(Blink)和Chromium等开源项目打造,其目的是提供一个跨不同操作系统的Web运行环境,包括Android、Tizen、Linux、Windows、MacOS等众多…...
MySQL十部曲之四:MySQL中的数据类型
文章目录 前言概述数字类型数字类型语法数字类型字面量十六进制字面量位字面量布尔字面量 数字类型的属性超出范围和溢出处理 时间和日期类型时间和日期类型语法DATE、DATETIME和TIMESTAMP的异同TIMESTAMP和DATETIME的自动初始化和更新时间和日期字面量 字符串类型字符串类型语…...
flyway使用配置参数和注意事项介绍
文章目录 业务场景参数介绍initSqlsbaselineOnMigratebaselineVersiontargetvalidateOnMigrate SQL注意事项 业务场景 对于生产环境,随着项目版本迭代,数据库结构也会变动。如果一个项目在多个地方实施部署,且版本不一致,就需要一…...
ubuntu_qtcreator安装
https://download.qt.io/official_releases/qtcreator/ 5.15 以上安装 QT5.15以上不再提供离线安装包,只能在线安装,– 下载 下载地址如下: 腾讯云的国内资源: Index of /qt/official_releases/online_installers/ 官网下载:…...
uniapp map自定义气泡窗
uniapp map自定义气泡窗 1、map <template><view><map class"map" :latitude"mapCenter.lat" :longitude"mapCenter.lng" :scale"5" :markers"mapData"><!--自定义冒泡--><cover-view slot&qu…...
数据分析的理念、流程、方法、工具(上)
一、数据的价值 1、数据驱动企业运营 从电商平台的「猜你喜欢」到音乐平台的「心动模式」,大数据已经渗透到了我们生活的每一个场景。不论是互联网行业,还是零售业、制造业等,各行各业都在依托互联网大数据(数据采集、数据存储、…...
qiankun子应用静态资源404问题有效解决(涉及 css文件引用图片、svg图片无法转换成 base64等问题)
在👉🏻 qiankun微前端部署👈🏻这个部署方式的前提下,遇到的问题并解决问题的过程 最开始的问题现象 通过http请求本地的静态json文件404css中部分引入的图片无法显示 最开始的解决方式 在👉dz…...
Python基础(二十九、pymsql)
文章目录 一、安装pymysql库二、代码实践1.连接MySQL数据库2.创建表格3.插入数据4.查询数据5.更新数据6.删除数据 三、完整代码示例四、结论 使用Python的pymysql库可以实现数据存储,这是一种连接MySQL数据库的方式。在本篇文章中,将详细介绍如何使用pym…...
华为机考入门python3--(0)测试题1-句子平均重量
分类:字符串 知识点: 获取输入 input().strip().split(" ") 拼接列表 " ".join(list) 输出指定位数的浮点数 print("%.2f" % value) len() 函数对于很多内置的数据类型都适用,它返回对象的元素个数或长度。…...
Linux--基础开发工具篇(1)(yum)
1.Linux 软件包管理器 yum 1.1yum是什么?什么是软件包? yum是什么? yum是一个软件下载安装管理的一个客户端,就如小米应用商店,华为应用商城。 Linux中软件包可能有依赖关系--yum会帮助我们解决依赖关系的问题。 什么是…...
绵阳医院网站建设/店铺推广引流的方法
Firebird2.5架构 -Dmitry Yemanov(2008年Firebird会议上的报告) 英文连接为:http://www.slideshare.net/ibsurgeon/firebird-25-architecture-by-dmitry-yemanov-in-english 一、该版本出现的原因 1.1 统一Classic/SuperServer模式的第一…...
洛阳响应式网站建设/汽车seo是什么意思
原文地址:百分比布局支持库参考原文:Percent Support Library: Bring dimension in % to RelativeLayout and FrameLayout虽然有很多的布局可以在 Android 应用程序开发的世界供我们使用,但我们总是只用这三种布局:LinearLayout, …...
wordpress的域名不备案/百度收录软件
一、简介:BeanUtils提供对 Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代…...
网站建设测试验收报告/泰州seo网站推广
从2016年1月开始写博客,默默地更新《Spring Boot系列教程》,从无人问津到千万访问,作为一个独立站点(http://blog.didispace.com),相信只有那些跟我一样,坚持维护自己独立博客的童鞋才能体会这有…...
汕头汽车网站建设/竞价托管如何托管
一、块元素:<h1>~<h6>,<p>,<div>,<ul>,<li>其中<div>标签是最典型的块元素 1、比较霸道,自己独占一行 2、高度、宽度、外边距以及内边距都可以控制 3、如果不给任何高或者宽,默认与父亲一样 4、是…...
比较有设计感的网站/江苏网站seo营销模板
<?php //把字符串中的任意空格换成一个 $str1 ‘A B C ‘; echo‘<xmp>’; echopreg_replace (”/\s/”, ‘ ‘, $str1); echo‘</xmp>’; //把字符串中的任意连续字符 M 换成一个 M $str1 ‘AMMMBMMMMCMM ‘; echopreg_replace (”…...