- Docker下载,包含Win、Mac
码码哈哈0.0
实用工具docker容器运维
介绍Docker是一种开源的容器化平台,通过操作系统级虚拟化技术实现应用的快速开发、部署和运行。以下从多个维度对Docker进行详细介绍:一、Docker的核心概念与功能容器化技术Docker利用Linux内核的容器隔离技术(如Cgroups和Namespace),将应用及其依赖打包为轻量级、可移植的容器。容器与虚拟机不同,它无需模拟完整操作系统,而是共享主机内核,因此启动更快、资源占用更低。核心
- C语言历史
李鲶鱼
学习c++c语言
从程序语言的发展过程可以看到,以前的操作系统等系统软件主要是用汇编语言编写的。但由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都不是很好,为了提高可读性和可移植性,人们开始寻找一种语言,这种语言应该既具有高级语言的特性,又不失低级语言的优点。于是,C语言产生了。C语言是在由UNIX的研制者丹尼斯·里奇(DennisRitchie)和肯•汤普逊(KenThompson)于1970年研制出的BC
- C#实战:使用ZXing.NET库轻松生成二维码与条形码
墨瑾轩
一起学学C#【一】c#.net开发语言
下面我将详细介绍C#中用于生成二维码和条形码的库——ZXing.NET,并附带一份详细的代码示例,其中每行代码均配有注释以解释其功能。ZXing.NET是基于开源项目ZXing(ZebraCrossing)的.NET移植版,它提供了生成和解析多种一维条形码和二维二维码的功能。准备工作首先,确保您已通过NuGet包管理器在项目中安装了ZXing.NET库。在VisualStudio中,可以通过以下步
- Eaglewood-开发单片机函数封装技巧
OverflowSummer
嵌入式泛用知识学习笔记单片机嵌入式硬件
目录一、核心原则:(一)、高内聚低耦合:每个函数只做一件事,减少依赖。(二)、接口清晰:隐藏实现细节。(三)、可配置性:通过宏、结构体或回调支持灵活扩展。(四)、可移植性:抽象硬件差异,降低移植成本。一、模块化设计五、宏定义配置参数二、在头文件中宏定义函数三、使用结构体封装硬件配置四、回调函数机制六、错误处理与返回值封装七、硬件抽象层(HAL)八、静态函数限制作用域九、版本兼容性设计十、使用con
- 深入解析Java跨平台原理
KBkongbaiKB
java开发语言
一、操作系统屏障的本质挑战源代码编译方式直接编译为机器码Windows的可执行文件.exeLinux的可执行文件.elfmacOS的可执行文件.machJava独特的中间格式字节码文件.classJVM虚拟机1.1传统语言的平台困局语言类型编译方式执行依赖跨平台能力C/C++直接生成机器码特定操作系统❌不可直接移植Python解释型执行Python解释器✅但性能较低Java字节码中间件JVM虚拟机
- Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.3 从零移植 busybox,基于RISC-V
嵌入式内核源码
Linuxkernel从入门到精通linuxrisc-vrootfsqemukernel嵌入式芯片
1.概述上一章节我们已经成功启动了Ubuntu,但是由于Ubuntu占用系统空间过大,所以我转向占用较小的busybox,预计就占用30M左右。2.源码下载下载地址3.编译busybox在上一章节中,我们就提到了kernel在启动时会去初始化rootfs,具体为下列四个脚本,如果我们不去写这四个脚本会是什么样呢?如下图,它会不断重复打印log。接下来我们就先去编译busybox。[
- 【35】单片机编程核心技巧:Switch在工业控制中的应用
智木芯语
【编程技巧】单片机嵌入式硬件#STM32嵌入式#STC8
【35】单片机编程核心技巧:Switch在工业控制中的应用七律·转型架构更迭展新篇,STC8H显锋芒。IO重配如流水,定时重构若行云。代码迁移承旧智,功能延续启新程。工业控制真王者,一脉相承见匠心。摘要本文以STC8H8K64U4单片机为平台,系统阐述Switch语句在工业自动化运动控制中的移植与实现方法。通过端口配置、定时器中断优化及状态机设计,重点解析GPIO模式设置、中断机制适配及多状态程序
- Python的路径pathlib库
活跃家族
python开发语言
1、读取文件默认只会从当前代码操作文件的目录下读取文件。找不到就会报错。解决方式:1、方式一:绝对路径是指:电脑里从根目录开始的一个完整的路径--不推荐注意事项:路径特殊符号\t一定要转义在路径前面加一个r绝对路径弊端:1)移植给其他人电脑上用,文件前面的目录不对,要手动修改。2)\/不同平台路径分隔符不一样,绝对路径不能兼容不同平台。2、相对路径:不会写死每一级的路径,相对层级管理,找文件路径借
- C语言的软件工程
苏墨瀚
包罗万象golang开发语言后端
C语言的软件工程引言C语言作为一种历史悠久、功能强大的编程语言,在软件工程领域有着广泛的应用。自1972年由DennisRitchie开发以来,C语言凭借其高效性能、灵活性以及可移植性,成为了操作系统、嵌入式系统及高性能应用程序开发的首选语言之一。在软件工程的过程中,成熟的软件开发模型、工具及方法论是保障软件质量的关键因素。本文将从软件工程的基本概念入手,探讨C语言在软件工程中的应用与实践,包括软
- Linux系统移植篇(七)Linux 内核kernel 启动流程
7yewh
【Linux系统移植】linux运维服务器驱动开发
链接脚本vmlinux.lds要分析Linux启动流程,同样需要先编译一下Linux源码,因为有很多文件是需要编译才会生成的。首先分析Linux内核的连接脚本文件arch/arm/kernel/vmlinux.lds,通过链接脚本可以找到Linux内核的第一行程序是从哪里执行的。(跟Uboot启动流程的ids一样)492OUTPUT_ARCH(arm)493ENTRY(stext)494jiffi
- STM32学习笔记
李兆源—电子工程师
stm32学习笔记
STM32系列(HAL库)——内部FLASH读写实验_简约版在此篇文章前,写过另外一篇关于STM32内部FLash读写的文章——点击跳转。之前那篇文章的代码是移植于正点原子的,比较复杂,因为它考虑了写入字节大于1K或2K时需要换页写入的问题。但是在实际使用过程中,我们需要写入的数据常常远小于1K,因此本篇文章的代码适用于写入小量数据使用(即小于1K或2K——取决于单片机最小写入页)。本次代码是借鉴
- docker
MzKyle
dockerdocker容器运维
Docker介绍Docker是一个开源容器化平台,主要作用是通过将应用程序及其依赖环境打包成轻量级、可移植的容器,实现跨环境的一致性部署与运行。其核心价值包括:环境隔离:容器内的应用与宿主机及其他容器相互隔离,确保运行环境的独立性。标准化交付:通过镜像(Image)封装代码、库和配置,消除“在我机器上能运行”的问题。资源高效:共享宿主机内核,相比虚拟机(VM)更节省内存和计算资源,启动速度更快。跨
- 2024年运维最新【Linux】基础IO —— 缓冲区深度剖析_linux io 缓冲区大小(2),2024年最新张口就来
JavaScript高级
程序员运维linux服务器
最全的Linux教程,Linux从入门到精通======================linux从入门到精通(第2版)Linux系统移植Linux驱动开发入门与实战LINUX系统移植第2版Linux开源网络全栈详解从DPDK到OpenFlow第一份《Linux从入门到精通》466页====================内容简介====本书是获得了很多读者好评的Linux经典畅销书**《Linu
- 鸿蒙系统liteos_m开发环境配置
dreamczf
harmonyos华为嵌入式软件
在工作中开发基于HC32F4A0的鸿蒙liteos_m的操作系统移植时,开发环境选的命令行模式,官方的参考请看链接《快速入门概述》在ubuntu18.04环境中安装时,安装库和工具集时官方提供的安装库的指令无法进行安装,部分库应该是有安装顺序的要求,重新整理后写了如下脚本,用sudo./install.sh进行安装即可。设置python3.8时按照官方的设置方式如下,会出现问题,导致18.04的整
- 海思 HI 35xx u-boot+kernel+rootfs移植
晓鹏-King
ARMubootLinuxlinux海思ubootkernelrootfs
PC端开发环境安装:sudo./sdk.unpack报如下错误:./sdk.unpack:7:./sdk.unpack:WARN:notfound./sdk.unpack:8:./sdk.unpack:ECHO:notfound./sdk.unpack:20:./sdk.unpack:ECHO:notfound./sdk.unpack:22:./sdk.unpack:run_command_pro
- C++ primer plus 1.1 C++ 简介
C_VuI
C++primerplusc++
1.1C++简介文章目录1.1C++简介前言C++简介C++与C语言的联系有无C语言基础与C++学习前言C++继承了C语言高效,简洁,快速和可移植性的传统。C++面向对象的特性带来了全新的编程方法,这种方法是为应付复杂程度不断提高的现代编程任务而设计的。C++的模板特性提供了另一种全新的编程方法—泛型编程。以上三件法宝确定了C++语言的特色。在第一章中我将按照本书的逻辑讲起,在从中增加一些自己的见
- 一次Linux下 .net 调试经历
norsd
C#VCDebuglinux.net
背景:Xt160Api,之前在windows下用.net调用,没有任何问题。但是移植到Linux去后,.net程序调用init(config_path)总是报错/root/test找不到traderApi.ini(/root/test是程序目录)然后退出程序解决过程:于是考虑是不是参数传错了,但是无论这个参数是什么,报错内容始终如此。甚至某些情况下,比如加了几句Console.WriteLIne(
- FreeModbus V1.6 主机使用说明(二)
七七知享
Modbusstm32嵌入式硬件单片机mcu物联网开发语言算法
二、移植对于协议栈的移植主要包括两个方面,硬件及软件。用户需要根据自己的需求进行自行选择。注:以下所有说明都主要针对Modbus主机模式进行介绍。2.1、软件软件方面支持基于裸机及实时操作系统的移植;支持单个主机与单个从机同时独立运行。另外用户也可以修改协议栈的事件回调接口,使主机请求的接口采用阻塞及非阻塞模式;主机资源等待方面,用户也可以设置等待超时时间等等,诸多功能将会一一介绍。2.1.1、操
- Miniconda 安装及使用
achi010
PythonMiniconda安装及使用MinicondaMiniconda安装Miniconda常用命令LinuxMinicondaPython环境管理UbuntuMiniconda
文章目录前言1、Miniconda简介2、Linux环境说明2.1、安装2.2、配置2.3、常用命令2.4、常见问题及解决方案前言在Python中,“环境管理”是一个非常重要的概念,它主要是指对Python解释器及其相关依赖库进行管理和隔离,以确保开发环境的稳定性和项目的可移植性。什么是Python环境Python解释器:Python是一种解释型语言,代码的运行需要通过Python解释器来执行。不
- rapidocr-onnxruntime库及在open-webui上传PDF 图像处理 (使用 OCR)应用
原野AI
大模型部署pdfocr深度学习open-webui
背景rapidocr-onnxruntime是一个跨平台的OCR库,基于ONNXRuntime推理框架。目前已知运行速度最快、支持最广,完全开源免费并支持离线快速部署的多平台多语言OCR。缘起:百度paddle工程化不是太好,为了方便大家在各种端上进行ocr推理,我们将它转换为onnx格式,使用Python/C++/Java/Swift/C#将它移植到各个平台。名称来源:轻快好省并智能。基于深度学
- 嵌入式硬件设计 — 智能设备背后的隐形架构大师
begei
面试学习路线阿里巴巴嵌入式硬件架构
目录引言?一、嵌入式硬件设计概述(一)需求分析(二)硬件选型(三)电路设计(四)PCB制作与焊接(五)硬件调试与测试(六)软件移植与开发二、嵌入式硬件选型(一)微控制器(MCU)/微处理器(MPU)(二)存储器(三)传感器与执行器(四)电源管理芯片(五)通信接口芯片三、嵌入式硬件代码开发(一)开发环境搭建(二)底层驱动程序开发引言嵌入式系统已经渗透到我们生活的方方面面,从智能手机、智能家居到工业自
- ESP-IDF中FreeRTOS的三种任务调度算法
蓝天居士
ESP-IDFESP32-S3ESP32-C3ESP-IDF
本文内容参考:STM32F103移植FreeRTOS必须搞明白的系列知识---2(FreeRTOS任务优先级)_freertos最多支持多少个任务-CSDN博客浅析FreeRTOS任务调度器的三种调度算法和应用-电子发烧友网特此致谢!FreeRTOS中的任务调度算法FreeRTOS支持多种任务调度算法,可通过配置来满足不同应用的需求。可以通过配置configUSE_PREEMPTION和confi
- CESM1.2.1移植使用说明
༊.枕星'听光.ঌ
人工智能linux
文章目录概述环境配置cesm1_2_1配置部分环境软件压缩包改变CLM陆面模式结果文件的输出变量、特征值及频率小结概述记录用户如何在Linux系统上移植CESM1.2.1模型,并且使用CLM4.5模式创建并单点模拟算例I_2000_CLM45。环境配置1.更新系统软件源2.更新系统安装软件安装git、make、python等。3.安装MPI(openmpi4.1.5)//下载并解压进入文件夹wge
- 基于IMX6ULL的安防监控项目
暗夜之眼007
linux
项目功能介绍该项目是基于NXP的IMX6ULL的安防监控项目。应用http微服务器boa实现网页展示监控信息;利用ov5640摄像头模块采集图像信息,并移植mjpg-streamer库实现在远端网页可以查看实时监控图像;利用cgi与html交互实现控制命令的下发和监控数据上传,用户可以在网页端控制硬件,比如LED灯,蜂鸣器等,同时可以在网页端直观查看ICM20608获取的加速度、角速度和温度数据。
- 【颠覆认知】大模型开发终极实战:30分钟用LangChain打造「超级AI客服」系统(附全代码+黑科技调参技巧)
煜bart
人工智能
重磅提示:文末含99%开发者不知道的Prompt逆向注入破解方案!---###一、撕开大模型开发的遮羞布:传统方案的三大致命陷阱传统AI客服系统开发面临:1.对话记忆金鱼症(7轮对话必失忆)2.知识库更新堪比器官移植3.业务逻辑与AI模型强耦合我们
- STM32上使用UCOSII--软件定时器和任务延时
Zach_z
嵌入式stm32ucosii
有关UCOS任务的介绍:STM32上使用UCOSII–任务有关UCOS信号量和邮箱的介绍:STM32上使用UCOSII–信号量和邮箱有关消息队列和信号量集的介绍:STM32上使用UCOSII–消息队列和信号量集一、软件定时器UCOSII从V2.83版本以后,加入了软件定时器,这使得UCOSII的功能更加完善,在其上的应用程序开发与移植也更加方便。在实时操作系统中一个好的软件定时器实现要求有较高的精
- .net 插件式开发——实现web框架中大数据算法嵌入(BP算法逼近)
weixin_34219944
json人工智能
关于算法的引入:插件式架构设计,可移植性强,利于算法的升级。【插件式开发相关资料】https://www.cnblogs.com/lenic/p/4129096.html以BP算法为例:1、首先定义一个接口规范////////插件的统一入口///publicinterfaceIPluginPerfrom{//////统一算法插件入口//////输出参数的个数///输出参数///输入参数///str
- C# JIEBA.NET分词器开发指南
老胖闲聊
C#c#.net开发语言
JIEBA.NET是Jieba分词器的.NET实现版本。Jieba是一个流行的中文分词工具,最初是用Python编写的,而JIEBA.NET将其移植到了.NET平台。它的核心功能是将连续的中文文本切分成有意义的词语(分词),并支持关键词提取、词性标注等功能。以下将通过JIEBA.NET的工作原理、分词过程拆解和案例实战三部分来进行详细讲解:一、工作原理1.分词的基本原理中文分词是将连续的中文字符序
- winpython使用教程-winpython是什么
weixin_37988176
WinPython是一个免费的开源可移植的Python编程语言发行版,适用于Windows7/8/10和科学及教育用途。它是一个功能齐全的基于python的科学环境:●专为科学家、数据科学家和教育设计(感谢NumPy、SciPy、y、Matplotlib、panda、pyqtgraph等):使用Python与Spyder和Jupyter/IPython、Pyzo、IDLEX或IDLE进行交互数据处
- 2024上半年软考系统架构设计师论文--模型驱动架构设计方法及其应用
不对法
计算机软考机考系统架构
模型驱动架构设计方法及其应用摘要随着信息技术的迅猛发展,软件在现代企业中的作用日益关键。然而,与硬件技术的快速进步相比,软件技术的发展相对滞后,传统的以代码为中心的软件开发方式面临生产效率、可移植性、互操作性等多方面问题。模型驱动架构(ModelDrivenArchitecture,MDA)作为一种新的软件开发框架,旨在通过模型构造、模型转换和精化等核心步骤,提高软件开发效率,已成为当前软件工程领
- 算法 单链的创建与删除
换个号韩国红果果
c算法
先创建结构体
struct student {
int data;
//int tag;//标记这是第几个
struct student *next;
};
// addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
if(h==NULL) //??????
- 《大型网站系统与Java中间件实践》第2章读后感
白糖_
java中间件
断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。
看完整章内容,
- zeus持久层spring事务单元测试
deng520159
javaDAOspringjdbc
今天把zeus事务单元测试放出来,让大家指出他的毛病,
1.ZeusTransactionTest.java 单元测试
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import
- Rss 订阅 开发
周凡杨
htmlxml订阅rss规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。
RSS
- 分页查询实现
g21121
分页查询
在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。
按实现形式分前台分页和服务器分页:
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据
- spring jms异步消息处理
510888780
jms
spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下:
- highCharts柱状图
布衣凌宇
hightCharts柱图
第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController { private UserServi
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
springmvcSpring 教程spring3 教程Spring 入门
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- TLS java简单实现
antlove
javasslkeystoretlssecure
1. SSLServer.java
package ssl;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import
- Zip解压压缩文件
百合不是茶
Zip格式解压Zip流的使用文件解压
ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件;
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
&n
- underscore.js 学习(一)
bijian1013
JavaScriptunderscore
工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。 学
- java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)
bijian1013
javajvmjstatd
1.介绍
jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。
jstatd是基于RMI的,所以在运行jstatd的服务
- 【Spring框架三】Spring常用注解之Transactional
bit1129
transactional
Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义:
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version
- 我(程序员)的前进方向
bitray
程序员
作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....
- nginx lua开发经验总结
ronin47
使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa
- java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
bylijinnan
java
import java.util.Stack;
public class ReverseStackRecursive {
/**
* Q 66.颠倒栈。
* 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
* 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
*1. Pop the top element
*2. Revers
- 正确理解Linux内存占用过高的问题
cfyme
linux
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上:
Mem: 3889836k total, 3341868k used, 547968k free, 286044k buffers
Swap: 6127608k total,&nb
- [JWFD开源工作流]当前流程引擎设计的一个急需解决的问题
comsci
工作流
当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。
而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。
- 自定义类的equals函数
dai_lm
equals
仅作笔记使用
public class VectorQueue {
private final Vector<VectorItem> queue;
private class VectorItem {
private final Object item;
private final int quantity;
public VectorI
- Linux下安装R语言
datageek
R语言 linux
命令如下:sudo gedit /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke
- 如何修改mysql 并发数(连接数)最大值
dcj3sjt126com
mysql
MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass
- 单一功能原则
dcj3sjt126com
面向对象的程序设计软件设计编程原则
单一功能原则[
编辑]
SOLID 原则
单一功能原则
开闭原则
Liskov代换原则
接口隔离原则
依赖反转原则
查
论
编
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有
- POJO、VO和JavaBean区别和联系
fanmingxing
VOPOJOjavabean
POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被
- SpringSecurity3.X--LDAP:AD配置
hanqunfeng
SpringSecurity
前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。
将配置文件中的如下部分删除:
<!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->
- mac mysql 修改密码
IXHONG
mysql
$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-
- 设计模式--抽象工厂模式
kerryg
设计模式
抽象工厂模式:
工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,
- 评"高中女生军训期跳楼”
nannan408
首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。
孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军
- scala如何读取和写入文件内容?
qindongliang1922
javajvmscala
直接看如下代码:
package file
import java.io.RandomAccessFile
import java.nio.charset.Charset
import scala.io.Source
import scala.reflect.io.{File, Path}
/**
* Created by qindongliang on 2015/
- C语言算法之百元买百鸡
qiufeihu
c算法
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?
代码如下:
#include <stdio.h>
int main()
{
int cock,hen,chick; /*定义变量为基本整型*/
for(coc
- Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode
wyz2009107220
NameNode
正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。
1. Secondary NameNode
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image
优点:Hadoop较早的版本都自带,