- STMicroelectronics 系列:STM32G4 系列_(2).STM32G4系列核心架构
kkchenkx
机器人控制系统和单片机开发stm32嵌入式硬件单片机
STM32G4系列核心架构1.介绍STM32G4系列是STMicroelectronics推出的一款高性能、低功耗的32位微控制器系列,基于ArmCortex-M4内核。该系列微控制器集成了多种高级功能,如高精度ADC、高速DAC、低功耗定时器等,适用于各种工业和消费类应用。本节将详细介绍STM32G4系列的核心架构,包括其内核、存储器、外设和系统配置等方面。
- python实现二分查找(对新手友好,内容通俗易懂)
dlage
python列表python数据结构
python实现二分查找二分查找又名折半查找。优点:查询速度快,性能好。缺点:要求查询的表为有序表原理:将表中间位置(mid)的数字与待查数字(data)做比较,如果相等:返回true,结束。如果不相等:则使用中间位置的记录将表分为前后两个子表。若data>mid则进一步查找后一个表。若datadata:last=mid-1elifalist[mid]data:last=mid-1elifalis
- 零基础程序员如何快速学会python
Java进阶营菌
程序员职场Pythonpython开发语言后端pycharm程序人生
学会Python能做的事情也很多,常见的就有网络爬虫,数据分析,前端开发,机器学习,都能很好地提高工作效率,往任何一个领域发展,工作前景是非常不错的。接下来我从基本的软件安装开始,仔细的给大家分析新手入门应该怎样学习Python吧,如果有讲得不到位的地方也欢迎大家指正,我会及时进行修改。一、软件的安装和选择1、配置环境关系到实操,所以在选择资料的同时,你还需要安装好Python需要的软件,软件版本
- Dify理论:漫话RAG
几道之旅
Dify与Langflow智能体(Agent)知识库人工智能自然语言处理nlp
兜兜转转,RAG依旧是绕不开的话题。RAG,检索增强生成。给大语言模型一个大型图书馆。大语言模型在回答问题前,不要急于回答。先去图书馆里查阅一番,再根据所获取的知识进行回答。大语言模型,由闭卷考试,变成了开卷考试。第一:减轻了大模型的幻觉。大模型在不知道答案时,往往会胡编乱造。如今,有人把答案告诉了它,它只需要整理一下语言即可。使用大语言模型回答问题时,最极端的情况下,它收到的问题是:请根据背景知
- 十一、Spring Boot:使用JWT实现用户认证深度解析
伯牙碎琴
#Spring框架springboot后端java
SpringBootJWT(JSONWebToken):无状态认证在现代Web开发中,无状态认证是一种重要的安全机制,它允许服务器在不存储会话信息的情况下验证用户身份。JSONWebToken(JWT)是一种常用的无状态认证技术,它通过一个紧凑的URL安全令牌来传递用户身份信息。SpringBoot与JWT的结合可以为应用提供强大的安全保护。本文将详细介绍如何在SpringBoot中集成JWT实现
- 九、Spring Boot:自动配置原理
伯牙碎琴
#Spring框架springbootjava数据库
深入解析SpringBoot自动配置原理SpringBoot的自动配置机制是其最核心的特性之一,它极大地简化了Spring应用的初始搭建和开发过程。通过自动配置,SpringBoot能够根据项目的依赖和配置自动加载和配置Spring应用的各个部分。本文将深入探讨SpringBoot自动配置的原理,包括@SpringBootApplication注解的组成、自动配置机制以及条件注解的使用。1.@Sp
- 新手0基础路由器刷机(小米WR30U)
frank_double
路由器刷机智能路由器
准备工作:登陆恩山论坛搜237去下载刷路由器别人已经备好的各种包目录一、#######开SSH###########1、进小米路由系统设置“启用与智能网关的无线配置同步”为开启、再DHCP为自动配置DNS,最后设置wan口为第一个端口。2、将笔记本电脑与wan1口用网线连接,笔记本进入控制面板-网络管理-无线网卡-右键无线网卡属性,将网络共享给WR30U。3、CMD运行python.exeserv
- 密码学与网络安全 - 11 密码学Hash函数
shiyivei
#密码学与网络安全哈希算法web安全安全Hash函数消息认证
11密码学Hash函数Hash函数输入长度可变,而输出长度固定合格的Hash函数输出应该均匀分布,看起来随机Hash函数两个要求:1.抗碰撞性(找到两个不同的输入对应相同的输出在计算上不可行),2.单向性(通过Hash值找到输入值在计算上不可行)Hash函数的操作过程:把输入数据的长度填充成固定长度分组的整数倍,填充内容包括原始消息的位长度信息,填充长度信息能够增加攻击者更改数据而要保持hash值
- bitcoinjs学习笔记4—p2pkh、p2sh、p2wpkh地址生成
EM-FF
bitcoinjs比特币学习笔记区块链
BitcoinJS学习笔记4—P2PKH、P2SH、P2WPKH地址生成大纲1.概述目标:学习如何使用BitcoinJS生成三种常见的比特币地址类型:P2PKH(Pay-to-Public-Key-Hash)P2SH(Pay-to-Script-Hash)P2WPKH(Pay-to-Witness-Public-Key-Hash)工具:BitcoinJS库、比特币测试网(Testnet)或回归测试
- 一文搞懂Python的yield关键字(新手友好)
蜘蛛侠在写码
pythonpython开发语言
在python中,yield是一个不好理解的概念,Up初学Python时看了一些教程,但还是似懂非懂。今天,Up尝试用通俗易懂的语言说清楚yield的用法和原理。想要更好的理解yield,需要先理解Python的迭代器,墙裂建议先看一下Up上一期的文章:一文搞懂Python迭代器注:本文长期有效,持续迭代完善,建议收藏。提前划重点为什么yield难理解口诀一:调用时不要看成return口诀二:ne
- CCS6.2 编译出现 error #10099-D: program will not fit into available memory. 使用哪种类型定义的变量会占用.ebss空间
爱代码的小黄人
C语言学习c语言c++
ebss段主要是存放全局变量。cinit段存放全局变量和静态变量的初始化代码。可以通过查看map文件来确定其具体的长度。ebss段放的是数据,需要分配在RAM中。cinit段放的是代码,可以分配在Flash中。两者是两块独立的存储单元,ebss段无法占用cinit的存储空间。出现这样的报错:“…/28335_RAM_lnk.cmd”,line138:error#10099-D:programwil
- Python实现三维空间中的RRT避障路径规划算法
C_mony
机械臂python算法机器人
文章目录前言一、算法原理二、代码实现1.定义节点2.碰撞检测3.RRT算法4.完整代码运行结果前言基于快速随机搜索树(Rapidly-exploringRandomTree,RRT)的优化算法,通过对状态空间中的采样点进行碰撞检测,避免了对空间的建模,能够有效地解决高维空间和复杂约束的路径规划问题,在机械臂路径规划与避障中扮演着关键角色。RRT算法通过随机生成的树状结构来探索高维空间,尤其适合于解
- PyCharm社区版如何运行Django工程?
计算机软件程序设计
环境搭建pycharmdjangosqlite
PyCharm社区版虽然不像专业版那样提供对Django的直接支持,但仍然可以通过一些手动配置来运行Django工程。以下是详细的步骤:步骤1:安装Django确保你的环境中已经安装了Django。如果没有安装,可以通过以下命令安装:pipinstalldjango步骤2:创建或打开Django工程如果你已经有现成的Django工程,可以直接在PyCharm中打开它。点击File->Open...
- 【Pandas】pandas Series interpolate
liuweidong0802
PandasSeriespandas
#Pandas2.2Series##Computationsdescriptivestats|方法|描述||-|:-------||Series.backfill(*[,axis,inplace,limit,...])|用于填充`Series`中缺失值(NaN)的方法||Series.bfill(*[,axis,inplace,limit,...])|用于填充`Series`中缺失值(NaN)的方
- ImportError: cannot import name ‘LlavaLlamaForCausalLM‘ from ‘llava.model‘ (/root/LLaVA/llava/model
Lemon J Lee
python
[Question]ImportError:cannotimportname‘LlavaLlamaForCausalLM’from‘llava.model’(/root/LLaVA/llava/model/init.py)#1208文章参考链接https://github.com/haotian-liu/LLaVA/issues/1208基本上还是flash-attn和环境不适配的原因,最初我的c
- SQL-o1:一种用于Text-to-SQL的自奖励启发式动态搜索方法
数之何
人工智能ai语言模型sql
1引言文本到SQL(Text2SQL)任务旨在将自然语言查询转换为可执行的SQL查询。得益于大规模语言模型(LLMs)的应用,该领域取得了显著进展。然而,模型的可扩展性、生成空间的限制以及SQL生成过程中的连贯性问题仍然存在。为了解决这些问题,我们提出了SQL-o1,一种基于自奖励的启发式搜索方法,旨在增强LLMs在SQL查询生成中的推理能力。SQL-o1结合了蒙特卡洛树搜索(MCTS)进行过程级
- 在 Ubuntu 下通过 Docker 部署 Nginx 服务器
shelby_loo
服务器ubuntudocker
嘿,朋友们,今天我们来聊聊如何在Ubuntu上通过Docker部署Nginx服务器。这是个简单又强大的组合,能让你快速搭建一个高效的web服务器。Docker和Nginx简介Docker是一个开源平台,用于自动化应用程序的部署、扩展和管理。它通过容器技术将应用程序及其所有依赖项打包在一起,确保在任何环境中都能一致运行。Nginx是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3代理
- 在Ubuntu 上的通过Docker部署Nginx服务器指南
shelby_loo
服务器ubuntudocker
今天在三丰云免费服务器上进行了部署测试,这里得提一句,三丰云免费服务器真的不错!配置虽不高,但性能稳定,绝对物超所值。不得不赞叹这款免费云服务器。Docker和Nginx简介Docker是一个轻量级的容器化平台,而Nginx是一款高性能的Web服务器和反向代理服务器。在Ubuntu上通过Docker部署Nginx服务器安装Docker:sudoaptupdatesudoaptinstalldock
- 在 Ubuntu 下通过 Docker 部署 Caddy 和 PHP-FPM 服务器
reddingtons
服务器ubuntudocker
引言大家好,今天我们要聊的主题是如何在Ubuntu上通过Docker部署Caddy和PHP-FPM服务器。Caddy是一个现代化的web服务器,支持HTTPS,配置简单;而PHP-FPM是PHP的FastCGI进程管理器,能够高效处理PHP请求。二者结合,简直是开发者的福音。Docker、Caddy和PHP-FPM简介Docker是一个开源的容器化平台,允许开发者轻松打包、分发和运行应用。通过Do
- 5 个冷门的 Adobe 系列软件小技巧,助你提升工作效率
reddingtons
adobe
作为一名学生,我非常幸运地可以使用学校提供的教育邮箱,免费获得Adobe全系列软件的使用权限。这意味着我能够使用所有Adobe软件,包括一些收费软件。通过学校的学生邮箱,我发现这是目前最稳定、低成本使用Adobe全家桶的方法。故接下来的技巧将涉及一些收费软件,可能会对免费用户不太适用。1.AdobePhotoshop:快速选择工具的高效使用在Photoshop中,很多人只用“套索工具”或“魔棒工具
- Adobe设计5个冷门技巧分享
reddingtons
adobe
作为一名学生,我通过学校的学生邮箱获得了免费使用Adobe全系列软件的权限,包括Photoshop、Illustrator、PremierePro等热门软件。这让我能够充分探索这些强大的创作工具,提升学习和创作效率。由于我可以使用所有Adobe收费功能,因此以下分享的技巧可能涉及收费功能,部分免费用户可能无法使用,但对于拥有完整软件权限的用户来说,这些技巧将极大提升工作效率。1.Photoshop
- 在 Ubuntu 上通過 Docker 部署 pSQL 伺服器
reddingtons
ubuntudockerlinux
引言Yo,各位极客们,今天Hitch我将手把手教你们如何在Ubuntu系统上通过Docker部署pSQL服务器。这可是构建现代应用的基础设施,能帮你们快速搭建pSQL数据库环境,方便开发和测试。废话不多说,直接上干货!Docker和pSQL简介DockerDocker就像一个“集装箱”,把你的应用和依赖都装进去,然后可以在任何支持Docker的机器上运行。它轻量级、可移植,简直是开发部署的利器!p
- 钢琴乐理:调性和音阶
red_redemption
entirelyspontaneous音乐钢琴调性音阶
在每个重复的不同音域上的12个音,都有着相同相同的调性吗是的,在钢琴上每个八度范围内的**12个音**(C、C#、D、D#、E、F、F#、G、G#、A、A#、B),无论它们处于哪个音域,**调性都是相同的**。这就是八度的概念:同一个音名的音符在不同音域中虽然音高不同,但它们在调性中扮演的角色是相同的。具体来说:###1.**相同的音符在不同音域中的调性功能相同**每个音符在不同的八度范围内都保持
- NAT和内网穿透
物与我皆无尽也
计算机网络网络服务器运维计算机网络java
NAT(NetworkAddressTranslation,网络地址转换)是一种广泛应用于计算机网络的技术,其主要目的是为了解决IPv4地址空间的短缺问题,并且增强网络安全。NAT技术允许一个私有网络内的多个设备共享一个或几个全局唯一的公共IP地址访问互联网。1地址划分在A、B、C分类地址,实际上有分公有IP地址和私有IP地址。2NAT当一个私有网络中的设备需要访问互联网时,NAT设备(通常是路由
- LeetCode热题100——图论
Ghost_firejef
LeetCode热题100leetcode图论算法
文章目录1.岛屿数量1.1题目链接1.2题目描述1.3解题代码1.4解题思路2、腐烂的橘子2.1题目链接2.2题目描述2.3解题代码2.4解题思路3.课程表3.1题目链接3.2题目描述3.3解题代码3.4解题思路4.实现Trie(前缀树)4.1题目链接4.2题目描述4.3解题代码4.4解题思路1.岛屿数量1.1题目链接点击跳转到题目位置1.2题目描述给你一个由‘1’(陆地)和‘0’(水)组成的的二
- ubuntu下使用docker部署nginx
神奇的路人A
dockerdocker
前面配置与命令有什么问题的朋友可以参考以下两个链接ubuntu下安装docker,并配置镜像ubuntu下docker常用命令,及容器创建1.进入root模式$sudosu2.下载Nginx镜像$dockerpullnginx3.创建nginx容器$dockerrun-d--namenginx01-p3344:80nginx#--name[你要设置的容器名字]#-p主机端口:容器端口这里需要开启u
- 从基础到实践(七):二极管选型注意事项
硬件进化论
json
一、应用需求的深度分析电路拓扑与二极管角色整流电路:工频整流(如桥式整流)需关注浪涌电流(如电容输入滤波导致的电流冲击)。续流二极管(在电感负载中):需快速关断(防止反向恢复电流损坏开关器件,如MOSFET)。电平转换:小信号二极管(如1N4148)需低结电容和快速响应。极端工况考虑汽车电子:需满足AEC-Q101认证(耐高温、抗振动、长寿命)。工业环境:抗电磁干扰(EMI)能力,如TVS二极管抑
- 数据结构--二叉树OJ习题2
晴晴学语言
数据结构OJ习题二叉树leetcode数据结构
1另一个树的子树1.1题目介绍给定两个非空二叉树s和t,检验s中是否包含和t具有相同结构和节点值的子树。s的一个子树包括s的一个节点和这个节点的所有子孙。s也可以看做它自身的一棵子树。示例:给定的树s:给定的树t:返回true,因为t与s的一个子树拥有相同的结构和节点值。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subtree-of-an
- 单例模式---是 Spring 容器的核心特性之一
飞升不如收破烂~
springjava后端
1.最近面试让手写一个单例;我一直知道单例;但是一直很困惑;工作中也没怎么用过;为什么面试总问;今天我才知道思考出来;单例是spring容器的核心特性;很多知识我只知道是什么;但是没有建立起来连接;今天就将单例和Spring容器就建立了密不可分的连接目录spring是怎么保证单例的1.IoC容器的缓存机制2.线程安全机制3.生命周期管理4.实例化过程示例代码注意事项在线程池中调用单例bean使用的
- [密码学实战]Java实现国密(SM2)密钥协商详解:原理、代码与实践
曼岛_
国密实战密码学java开发语言
一、代码运行结果二、国密算法与密钥协商背景2.1什么是国密算法?国密算法是由中国国家密码管理局制定的商用密码标准,包括:SM2:椭圆曲线公钥密码算法(非对称加密/签名/密钥协商)SM3:密码杂凑算法(哈希)SM4:分组密码算法(对称加密)2.2密钥协商的意义在安全通信中,双方需要在不安全的信道上协商出相同的会话密钥,用于后续对称加密。SM2密钥协商协议解决了以下问题:避免预先共享密钥抵抗中间人攻击
- 算法 单链的创建与删除
换个号韩国红果果
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较早的版本都自带,