记录在近期工作中的一个BUG。需求:从所有邮件模板中,筛选出符合的邮件模板,根据不同的数据,将模板中特定的“字眼”替换为具体的值。这里只针对BUG相关的问题,不涉及与业务相关。
深拷贝与浅拷贝的概念
深拷贝
- 可以理解为:对对象完全的拷贝,一个对象在内存中所占得内存大小,深拷贝就是拷贝一份一模一样的对象在堆内存中。
浅拷贝
- 通俗易懂的讲:就是对象的引用拷贝,这个引用指向堆中的同一个地址。
代码解读
// 拿到所有的模板
List templates = templateDao.getTemplateList();
// 筛选
Template template = templates.stream()
.filter(t -> "PVC".equals(t.getEvent()) && "EN".equals(t.getLanguage()))
.findFirst()
.orElse(null);
if (template != null) {
// 替换模板中定好的 ”字眼“
// do something
}
不难看出,这段代码在方法中,如果单次调用是没有问题的;如果在一个循环中,而且代码中的Language是通过不同的情况取得,在运行中就会出现问题,代码如下:
// 拿到所有的模板
List templates = templateDao.getTemplateList();
for (String lang : languages) {
// 筛选
Template template = templates.stream()
.filter(t -> Objects.equals(t.getEvent(), "PVC") && Objects.equals(lang, t.getLanguage()))
.findFirst()
.orElse(null);
if (template != null) {
// 替换模板中定好的 ”字眼“
// do something
}
}
此段代码,首先我改变过滤条件的写法,防止出现空指针异常。分析下这段代码:如果language相同,那么只有第一次才会替换字眼成功,因为第一次替换之后templates集合中的对应元素也会被替换掉,之后出现相同的语言,过滤出来的template中的字眼已经是被替换掉了,所有会出现相同的数据。这也是这个问题的关键点,说明此处是浅拷贝,只是拷贝对象的引用,引发的BUG。对此,这里提供三种参考方式:
方式一:
- 重写Template的clone()方法,这种方式网上资料也是很多的,但是本人并没有尝试,只是了解一下,感觉太麻烦了。
方式二:
- 使用序列化与反序列化实现深拷贝(推荐)
@SuppressWarnings("unchecked")
public static Object deepCopy(Object src) throws IOException, ClassNotFoundException{
test(src);
test1(src);
if (src == null) {
return null;
}
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(bos);
out.writeObject(src);
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream in =new ObjectInputStream(bis);
return in.readObject();
}
方式三:
- 使用 commons-lang3 中的org.apache.commons.lang3.SerializationUtils类,其实这个工具类内部实现也是方式二的写法。(推荐)
Template temp = SerializationUtils.clone(template);
通过第三种方式修改后,整体代码如下:
// 拿到所有的模板
List templates = templateDao.getTemplateList();
for (String lang : languages) {
// 筛选
Template template = templates.stream()
.filter(t -> Objects.equals(t.getEvent(), "PVC") && Objects.equals(lang, t.getLanguage()))
.findFirst()
.orElse(null);
if (template != null) {
Template temp = SerializationUtils.clone(template);
// 替换模板中定好的 ”字眼“
// do something
}
}
若有不对之处,请指点一二,谢谢。
记录在工作中的BUG,不断完善自我,加油!
你可能感兴趣的:(记一次BUG:深拷贝与浅拷贝(Java))
- Manus的基于Sentence-BERT与ChromaDB的语义检索系统设计与实现
设计狗和程序猿
人工智能AI行业报告bert人工智能深度学习科技github自然语言处理
基于Sentence-BERT与ChromaDB的语义检索系统设计与实现——面向高维向量存储的语义检索优化研究摘要本文提出一种融合Sentence-BERT深度语义编码与ChromaDB向量数据库的语义检索框架。针对传统关键词匹配方法在语义鸿沟问题上的局限性,采用预训练语言模型生成768维语义向量,通过ChromaDB实现高效向量存储与近似最近邻搜索(ANN)。实验表明,在MSMARCO数据集上,
- 解密网易云音乐Web端的请求参数params与encSecKey
江梦寻
javascript前端网络算法经验分享
网易云音乐作为一款功能强大的音乐流媒体平台,为用户提供了丰富的音乐体验和社区互动。然而,当用户希望批量下载音乐资源,尤其是整个歌单或某位歌手的全部歌曲时,受限于版权保护和平台策略,官方渠道通常无法直接实现这一需求。在这种情况下,一些技术爱好者或开发者可能会转向使用爬虫技术来获取所需资源。对于像网易云音乐这样通过加密请求参数(如params和encSecKey)来保护数据的平台,逆向工程成为解析这些
- docker镜像管理
LCY133
docker容器运维
方案1:独立容器(MySQL+Redis+Java+Nginx独立镜像)优点符合Docker最佳实践•每个容器只运行一个进程(如MySQL、Redis等),符合单一职责原则。•容器之间通过Docker网络通信,降低耦合性。独立扩展与维护•可单独升级某个服务(如Java应用)而无需重建整个镜像。•资源分配更灵活(例如为MySQL分配独立内存,Java分配更多CPU)。高效利用镜像层•基础镜像(如My
- 如何使用Node.js搭建本地服务器
安静旅者
node.js服务器运维编程
Node.js是一个基于ChromeV8引擎的JavaScript运行时环境,它提供了一种轻量级且高效的方式来构建网络应用程序。在本文中,我们将深入探讨如何使用Node.js搭建一个简单的本地服务器。步骤1:安装Node.js首先,你需要在你的计算机上安装Node.js。你可以从Node.js官方网站(https://nodejs.org)下载适合你操作系统的安装包,然后按照安装向导进行安装。步骤
- 基于MATLAB_Simulink风光储与电解制氢系统仿真模型(光伏耦合PEM制氢)功率制氢 附参考文献
qq924711725
MATLABmatlab开发语言
基于MATLAB/Simulink风光储与电解制氢系统仿真模型(光伏耦合PEM制氢)功率制氢附参考文献光储电解制氢模型,光伏制氢,电解槽恒功率制氢,光伏耦合PEM制氢,母线电压维持800V。光伏采用mppt最大功率跟踪;储能采用电压电流双闭环控制;电解槽采用功率外环加电流内环控制,恒功率制氢。光伏出力不足时,蓄电池出力,光伏出力充足时,蓄电池充电,波形稳定,运行完美。附相关参考文献。谢谢理解!好的
- 无线网络安全的总体架构图
黑客KKKing
网络安全黑客网络工程师网络服务器运维安全web安全
合理保护无线访问点的目的在于,将无线网络与无权使用服务的外人隔离开来。往往说来容易做时难。就安全而言,无线网络通常比固定有线网络更难保护,这是因为有线网络的固定物理访问点数量有限,而在天线辐射范围内的任何一点都可以使用无线网络。尽管本身存在着困难,但合理保护无线网络系统是保护系统避免严重安全问题的关键所在。为了最大限度地堵住这些安全漏洞,就要确保网络人员采取保护无线网络的六项措施。规划天线的放置要
- PTA团体程序设计天梯赛-练习集16-20题
β添砖java
算法c++c语言数据结构
L1-016查验身份证一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:012345678910M:10X98765432现在给定一些身份证号码,请你验证校验码的有
- 【C++】类和对象(3)(默认成员函数--拷贝构造&赋值重载)
小白要加油努力
C++c++
引言前文介绍了C++中默认成员函数中的构造函数和析构函数,相信已经对它们的功能与用法有了基本认识,本文接着介绍也很常见的拷贝构造函数和赋值重载函数,便于对C++进一步的学习。拷贝构造函数补充知识:深浅拷贝深拷贝和浅拷贝是C++中对象拷贝的两种不同方式。浅拷贝是指将一个对象的数据成员的值复制到另一个对象中,这样两个对象将共享相同的数据。当其中一个对象修改了数据,另一个对象也会受到影响。深拷贝是指创建
- 与指针相关的知识点简介(1)
小白要加油努力
C语言算法数据结构c语言
1.字符指针chars1[]="helloworld";chars2[]="helloworld";constchar*s3="helloworld";constchar*s4="helloworld";对于常量字符串来说,会开辟一块独立的空间来存放该常量,字符指针指向的是该空间,故s3和s4指向的空间相同,而s1,s2变量指向的空间不同。2.数组指针数组指针是指向数组的指针。intarr[5]=
- 低代码平台的后端架构设计与核心技术解析
阿三0404
低代码
引言:低代码如何颠覆传统后端开发?在传统开发模式下,一个简单用户管理系统的后端开发需要:3天数据库设计5天RESTAPI开发2天权限模块对接50+个易出错的代码文件而现代低代码平台通过可视化建模+自动化生成,可将开发周期缩短至2小时。本文将深度剖析后端低代码平台的核心技术实现。一、后端低代码平台核心架构https://via.placeholder.com/800x400?text=Archite
- EasyRTC嵌入式音视频通话SDK:基于ICE与STUN/TURN的实时音视频通信解决方案
EasyCVR
RTC音视频实时音视频h.265人工智能webrtc
在当今数字化时代,实时音视频通信技术已成为人们生活和工作中不可或缺的一部分。无论是家庭中的远程看护、办公场景中的远程协作,还是工业领域的远程巡检和智能设备的互联互通,高效、稳定的通信技术都是实现这些功能的核心。EasyRTC嵌入式音视频通话SDK支持多种类型的网络环境,能够适应不同的网络条件,确保在各种场景下都能实现高效、稳定的实时音视频通信。以下是EasyRTC支持的主要网络环境类型:1、有线网
- 网络编程之java简易聊天室实现
宏远十一冠王
java基础语法java网络
最近浅学习了一些关于网络编程方面的知识,视频是跟着狂神学习的,可能学习的不是很深说到网络,相信大家都对TCP、UDP和HTTP协议这些都不是很陌生,学习这部分应该先对端口、Ip地址这些基础知识有一定了解,后面我们都是直接上demo来解释代码文件传输Tcp方式这里我们指的是C/S架构的文件传输,需要涉及一个客户端Client和服务器端(Server),这里采用的是TCP协议进行传输的,TCP需要经过
- 企业AI数据安全白皮书:深寻模型会话保护与安当TDE实战
安 当 加 密
人工智能
一、引言人工智能正在重塑企业的业务流程与创新模式,从智能客服到辅助决策,从图像识别到自然语言处理,AI模型正逐步渗透到企业运营的各个环节。然而,随着AI技术的深入应用,数据安全问题也如影随形。对于部署在企业内网的DeepSeek模型而言,员工与模型的会话内容往往包含企业的核心商业信息、敏感技术参数以及员工个人隐私等关键数据。一旦这些数据遭到泄露、篡改或恶意利用,不仅会给企业带来巨大的经济损失,还可
- Java新特性梳理——Java17
疯狂的洛必达
javapython前端linux开发语言
highlight:xcodetheme:vuepress概述JDK16刚发布半年(2021/03/16),JDK17又如期而至(2021/09/14),这个时间点特殊,蹭苹果发布会的热度?记得当年JDK15的发布也是同天。Oracle宣布,从JDK17开始,后面的JDK都全部免费提供!!!JDK17是自2018年JDK11后的第二个长期支持版本,支持到2029年9月,支持时间长达8年,这下可以不
- java生成二维码并与另一张图片合成,添加文字水印
DN金猿
springboot组件专题eureka蓝桥杯elementui
效果图1.引入pomcom.google.zxingcore3.3.3com.google.zxingjavase3.3.32.工具类importcom.google.zxing.BarcodeFormat;importcom.google.zxing.EncodeHintType;importcom.google.zxing.MultiFormatWriter;importco
- Java-生成二维码带多行文字-支持自动换行-支持tab缩进效果-支持高度自适应
江节胜-胜行全栈AI
Javajava
最新版本更新https://code.jiangjiesheng.cn/article/3521.样式1:2.1效果图:忽略红色,最外层的红色只是方便展示当前图片的宽高2.2代码packagecn.jiangjiesheng.utils;importcom.google.zxing.BarcodeFormat;importcom.google.zxing.EncodeHintType;import
- 深入理解 Python 中的 copy 与 deepcopy 的使用
web安全工具库
python开发语言
各类资料学习下载合集https://pan.quark.cn/s/8c91ccb5a474在Python中,数据的复制是一个重要的操作,尤其是在处理复杂数据结构(如列表、字典、集合等)时。copy和deepcopy是Python标准库copy模块提供的两种复制方法。它们之间有着明显的区别,理解这些区别对于避免潜在的错误和数据问题至关重要。本文将详细介绍copy和deepcopy的用法,包括代码示例
- 就在刚刚!马斯克决定将“地球上最聪明的人工智能”Grok-3免费了!
源代码杀手
AI技术快讯人工智能python
Grok-3概述与关键功能Grok-3是由xAI开发的先进AI模型,于2025年2月19日发布,旨在提升推理能力、计算能力和适应性,特别适用于数学、科学和编程问题。作为xAI系列模型的最新版本,Grok-3延续了公司对构建强大且安全的AI系统的承诺,并推动人工智能在多个领域的应用。Grok-3的核心优势在于其大规模强化学习(RL)优化,能够在几秒到几分钟内进行深度推理,适应复杂任务的需求。配备的D
- 没有最好的,只有最合适的:重新认识测试工具的价值
测试者家园
软件测试测试开发和测试质量效能测试工具软件测试人工智能智能化测试自动化测试自主化测试
用ChatGPT做软件测试在软件测试领域,关于“测试工具是否有好坏之分”的问题常常引发热议。一方面,经验丰富的测试专家通常有自己偏爱的工具和方法,另一方面,新手常困惑于琳琅满目的测试工具库,渴望寻找“最好”的工具。然而,测试工具真的有绝对的好坏之分吗?本文将从多维度剖析这个问题,旨在帮助读者开阔视野,重新思考测试工具的选择与价值。一、工具好坏的判断标准:适用性胜于绝对性1.1目标导向性:工具的价值
- DeepSeek这么火,一文教你本地部署DeepSeek!
入职啦
pythonpythondeepseek部署持续部署AI人工智能
要说年假最火的是什么,DeepSeek绝对在话题榜上,公众号几乎都是关于他的,今天入职啦也来和大家聊一聊我们AI领域的新星–DeepSeek,顺便也教大家部署一套属于自己的本地搜索服务。为什么DeepSeek这么火?一、技术架构优势DeepSeek采用创新的混合模型架构,将传统机器学习与深度学习有机结合。这种架构既保留了传统方法的可解释性,又具备深度学习的强大表征能力。通过自适应学习机制,Deep
- Adobe InCopy[IC2024]文本编辑软件下载安装与使用(附win/mac安装包)
sdbaerhz
htmlcss前端adobemacoswindows
安装包https://pan.baidu.com/s/1CfATbRzYK6nh4e2qzo0mXw?pwd=faf3一、功能介绍1.1文本编辑功能AdobeInCopy提供强大的文本编辑功能,使用户可以方便地进行文本排版、格式调整和样式应用。它支持基本的文字处理功能,如拼写检查、查找与替换、段落和字符样式的创建与应用,帮助编辑在工作中保持内容的一致性和专业性。用户还可以通过使用文本框和文本流,来
- Nginx给Vue和Java后端做代理
入职啦
实战项目知识vue.jsnginxjava
本文发表于入职啦(公众号:ruzhila)可以访问入职啦查看更多技术文章网站架构入职啦采用了Nuxt.js、Vue3、Go的混合架构开发,包括了官网、简历工具、职位搜索、简历搜索等功能。为三个部分:官网:采用Nuxt.js+Vue3+TailwindCSS开发,属于SSR渲染简历工具:采用Vue3+TailwindCSS开发,属于SPA渲染后端:采用Gin+Gorm+MySQL开发,提供API接口
- 在 JavaScript 中,可以通过以下几种方式判断函数是否是通过 new 关键字调用的
斯~内克
javaScriptjavascript开发语言ecmascript
在JavaScript中,可以通过以下几种方式判断函数是否是通过new关键字调用的:方法1:使用new.target(ES6+推荐)functionMyClass(){if(new.target===MyClass){console.log('通过new调用');}else{console.log('未通过new调用');}}//测试newMyClass();//输出"通过new调用"MyClas
- Python开发行业薪资多少?
Java大师兄-威哥
Python编程IT技术程序员IT
大家都知道,人工智能越来越受欢迎了。而Python由于简单易用,是人工智能领域中使用最广泛的编程语言之一,它可以无缝地与数据结构和其他常用的AI算法一起使用。Python开发行业薪资多少?我们看看图片就能知道个大概。无论是国内还是国外对于编程语言的热度调查中,Python都是数得上名的。Python热度的持续升温,自然也引起了开源团队的项目。由于OSI认可的开放源码许可,程序员可以使用Python
- 青少年编程与数学 02-010 C++程序设计基础 32课题、多重继承
明月看潮生
编程与数学第02阶段青少年编程c++编程与数学开发语言
青少年编程与数学02-010C++程序设计基础32课题、多重继承一、多重继承二、应用场景三、应用示例1.图形用户界面(GUI)库中的多重继承**基类定义****多重继承的派生类****使用示例**2.游戏开发中的多重继承**基类定义****多重继承的派生类****使用示例**课题摘要:本文深入探讨了C++中的多重继承特性。多重继承允许一个类继承多个基类,其语法为classDerivedClassN
- JDK 17 和JDK 8 相比增加了哪些新特性
阿好程序
Java基础篇javajvm开发语言
JDK17新特性JDK17和JDK8相比增加了哪些新特性文章目录JDK17新特性前言一、JDK17的新特性有哪些?二、新特性Java代码演示1.Sealedclasses2.Patternmatchingforinstanceof3Records4Textblocks5Switchexpressions6StrongencapsulationofJDKinternals7Foreignfuncti
- python程序员工资高吗?
lmseo5hy
python培训python程序员
据统计数据显示,北京Python平均薪资为18860元,Python不同岗位薪资范围为:Python全栈开发工程师(10k-20K)、Python运维开发工程师(15k-20K)、Python高级开发工程师(15k-30K)、Python大数据工程师(15K-30K)、Python机器学习工程师(15k-30K)、Python架构师(20k-40k)等,相比于Java、PHP、C#等其他的编程语言
- #深度优化提示词模板:解锁DeepSeek R1终极潜力的系统方案
领码科技
AI应用技能篇低代码提示词优化DeepSeekR1AI交互设计智能对话系统
摘要本文提出针对DeepSeekR1大模型的深度提示词优化体系,基于认知心理学原理与机器学习特征构建四维优化框架。通过解析模型工作机制、设计结构化模板、实战案例验证及进阶调优策略,形成覆盖基础到高阶的完整优化方案。研究显示优化后的提示词模板可使任务准确率提升40%,响应相关性提高55%。方案兼具理论深度与实践价值,为开发者提供可落地的优化指南。关键词:提示词优化、DeepSeekR1、AI交互设计
- 【Java】已解决java.lang.NoClassDefFoundError异常
屿小夏
java开发语言
个人简介:某不知名博主,致力于全栈领域的优质博客分享|用最优质的内容带来最舒适的阅读体验!文末获取免费IT学习资料!文末获取更多信息精彩专栏推荐订阅收藏专栏系列直达链接相关介绍书籍分享点我跳转书籍作为获取知识的重要途径,对于IT从业者来说更是不可或缺的资源。不定期更新IT图书,并在评论区抽取随机粉丝,书籍免费包邮到家AI前沿点我跳转探讨人工智能技术领域的最新发展和创新,涵盖机器学习、深度学习、自然
- 腾讯元宝超越DeepSeek?登顶下载榜:AI 的“下一战”拼什么?
算家计算
话题文章人工智能算家云腾讯元宝DeepSeekAI竞争
3月3日深夜,腾讯元宝APP在中国区苹果应用商店免费App下载排行榜上,上升至第一,超越DeepSeek。超越DeepSeek登顶榜首,腾讯元宝有什么不同?一方面,腾讯元宝的爆发始于2月13日的重大更新:同时支持混元与DeepSeek模型。前者擅长快速响应(如混元TurboS“秒回”),后者专注深度推理,形成互补。这种“双引擎”模式,既满足用户即时需求,又提供复杂任务的处理能力,成为差异化竞争的核
- Java实现的基于模板的网页结构化信息精准抽取组件:HtmlExtractor
yangshangchuan
信息抽取HtmlExtractor精准抽取信息采集
HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件,本身并不包含爬虫功能,但可被爬虫或其他程序调用以便更精准地对网页结构化信息进行抽取。
HtmlExtractor是为大规模分布式环境设计的,采用主从架构,主节点负责维护抽取规则,从节点向主节点请求抽取规则,当抽取规则发生变化,主节点主动通知从节点,从而能实现抽取规则变化之后的实时动态生效。
如
- java编程思想 -- 多态
百合不是茶
java多态详解
一: 向上转型和向下转型
面向对象中的转型只会发生在有继承关系的子类和父类中(接口的实现也包括在这里)。父类:人 子类:男人向上转型: Person p = new Man() ; //向上转型不需要强制类型转化向下转型: Man man =
- [自动数据处理]稳扎稳打,逐步形成自有ADP系统体系
comsci
dp
对于国内的IT行业来讲,虽然我们已经有了"两弹一星",在局部领域形成了自己独有的技术特征,并初步摆脱了国外的控制...但是前面的路还很长....
首先是我们的自动数据处理系统还无法处理很多高级工程...中等规模的拓扑分析系统也没有完成,更加复杂的
- storm 自定义 日志文件
商人shang
stormclusterlogback
Storm中的日志级级别默认为INFO,并且,日志文件是根据worker号来进行区分的,这样,同一个log文件中的信息不一定是一个业务的,这样就会有以下两个需求出现:
1. 想要进行一些调试信息的输出
2. 调试信息或者业务日志信息想要输出到一些固定的文件中
不要怕,不要烦恼,其实Storm已经提供了这样的支持,可以通过自定义logback 下的 cluster.xml 来输
- Extjs3 SpringMVC使用 @RequestBody 标签问题记录
21jhf
springMVC使用 @RequestBody(required = false) UserVO userInfo
传递json对象数据,往往会出现http 415,400,500等错误,总结一下需要使用ajax提交json数据才行,ajax提交使用proxy,参数为jsonData,不能为params;另外,需要设置Content-type属性为json,代码如下:
(由于使用了父类aaa
- 一些排错方法
文强chu
方法
1、java.lang.IllegalStateException: Class invariant violation
at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
at o
- Swing中文件恢复我觉得很难
小桔子
swing
我那个草了!老大怎么回事,怎么做项目评估的?只会说相信你可以做的,试一下,有的是时间!
用java开发一个图文处理工具,类似word,任意位置插入、拖动、删除图片以及文本等。文本框、流程图等,数据保存数据库,其余可保存pdf格式。ok,姐姐千辛万苦,
- php 文件操作
aichenglong
PHP读取文件写入文件
1 写入文件
@$fp=fopen("$DOCUMENT_ROOT/order.txt", "ab");
if(!$fp){
echo "open file error" ;
exit;
}
$outputstring="date:"." \t tire:".$tire."
- MySQL的btree索引和hash索引的区别
AILIKES
数据结构mysql算法
Hash 索引结构的特殊性,其 检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。
可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢
- JAVA的抽象--- 接口 --实现
百合不是茶
抽象 接口 实现接口
//抽象 类 ,方法
//定义一个公共抽象的类 ,并在类中定义一个抽象的方法体
抽象的定义使用abstract
abstract class A 定义一个抽象类 例如:
//定义一个基类
public abstract class A{
//抽象类不能用来实例化,只能用来继承
//
- JS变量作用域实例
bijian1013
作用域
<script>
var scope='hello';
function a(){
console.log(scope); //undefined
var scope='world';
console.log(scope); //world
console.log(b);
- TDD实践(二)
bijian1013
javaTDD
实践题目:分解质因数
Step1:
单元测试:
package com.bijian.study.factor.test;
import java.util.Arrays;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import com.bijian.
- [MongoDB学习笔记一]MongoDB主从复制
bit1129
mongodb
MongoDB称为分布式数据库,主要原因是1.基于副本集的数据备份, 2.基于切片的数据扩容。副本集解决数据的读写性能问题,切片解决了MongoDB的数据扩容问题。
事实上,MongoDB提供了主从复制和副本复制两种备份方式,在MongoDB的主从复制和副本复制集群环境中,只有一台作为主服务器,另外一台或者多台服务器作为从服务器。 本文介绍MongoDB的主从复制模式,需要指明
- 【HBase五】Java API操作HBase
bit1129
hbase
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.ha
- python调用zabbix api接口实时展示数据
ronin47
zabbix api接口来进行展示。经过思考之后,计划获取如下内容: 1、 获得认证密钥 2、 获取zabbix所有的主机组 3、 获取单个组下的所有主机 4、 获取某个主机下的所有监控项
- jsp取得绝对路径
byalias
绝对路径
在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下:
一、使用${pageContext.request.contextPath}
代码” ${pageContext.request.contextPath}”的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。
- Java定时任务调度:用ExecutorService取代Timer
bylijinnan
java
《Java并发编程实战》一书提到的用ExecutorService取代Java Timer有几个理由,我认为其中最重要的理由是:
如果TimerTask抛出未检查的异常,Timer将会产生无法预料的行为。Timer线程并不捕获异常,所以 TimerTask抛出的未检查的异常会终止timer线程。这种情况下,Timer也不会再重新恢复线程的执行了;它错误的认为整个Timer都被取消了。此时,已经被
- SQL 优化原则
chicony
sql
一、问题的提出
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统
- java 线程弹球小游戏
CrazyMizzz
java游戏
最近java学到线程,于是做了一个线程弹球的小游戏,不过还没完善
这里是提纲
1.线程弹球游戏实现
1.实现界面需要使用哪些API类
JFrame
JPanel
JButton
FlowLayout
Graphics2D
Thread
Color
ActionListener
ActionEvent
MouseListener
Mouse
- hadoop jps出现process information unavailable提示解决办法
daizj
hadoopjps
hadoop jps出现process information unavailable提示解决办法
jps时出现如下信息:
3019 -- process information unavailable3053 -- process information unavailable2985 -- process information unavailable2917 --
- PHP图片水印缩放类实现
dcj3sjt126com
PHP
<?php
class Image{
private $path;
function __construct($path='./'){
$this->path=rtrim($path,'/').'/';
}
//水印函数,参数:背景图,水印图,位置,前缀,TMD透明度
public function water($b,$l,$pos
- IOS控件学习:UILabel常用属性与用法
dcj3sjt126com
iosUILabel
参考网站:
http://shijue.me/show_text/521c396a8ddf876566000007
http://www.tuicool.com/articles/zquENb
http://blog.csdn.net/a451493485/article/details/9454695
http://wiki.eoe.cn/page/iOS_pptl_artile_281
- 完全手动建立maven骨架
eksliang
javaeclipseWeb
建一个 JAVA 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=App
[-Dversion=0.0.1-SNAPSHOT]
[-Dpackaging=jar]
建一个 web 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=web-a
- 配置清单
gengzg
配置
1、修改grub启动的内核版本
vi /boot/grub/grub.conf
将default 0改为1
拷贝mt7601Usta.ko到/lib文件夹
拷贝RT2870STA.dat到 /etc/Wireless/RT2870STA/文件夹
拷贝wifiscan到bin文件夹,chmod 775 /bin/wifiscan
拷贝wifiget.sh到bin文件夹,chm
- Windows端口被占用处理方法
huqiji
windows
以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用该方法..........................1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等. 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&
- 开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !
天梯梦
mobile
CKplayer,其全称为超酷flv播放器,它是一款用于网页上播放视频的软件,支持的格式有:http协议上的flv,f4v,mp4格式,同时支持rtmp视频流格 式播放,此播放器的特点在于用户可以自己定义播放器的风格,诸如播放/暂停按钮,静音按钮,全屏按钮都是以外部图片接口形式调用,用户根据自己的需要制作 出播放器风格所需要使用的各个按钮图片然后替换掉原始风格里相应的图片就可以制作出自己的风格了,
- 简单工厂设计模式
hm4123660
java工厂设计模式简单工厂模式
简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
- maven笔记
zhb8015
maven
跳过测试阶段:
mvn package -DskipTests
临时性跳过测试代码的编译:
mvn package -Dmaven.test.skip=true
maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。
指定测试类
mvn test
- 非mapreduce生成Hfile,然后导入hbase当中
Stark_Summer
maphbasereduceHfilepath实例
最近一个群友的boss让研究hbase,让hbase的入库速度达到5w+/s,这可愁死了,4台个人电脑组成的集群,多线程入库调了好久,速度也才1w左右,都没有达到理想的那种速度,然后就想到了这种方式,但是网上多是用mapreduce来实现入库,而现在的需求是实时入库,不生成文件了,所以就只能自己用代码实现了,但是网上查了很多资料都没有查到,最后在一个网友的指引下,看了源码,最后找到了生成Hfile
- jsp web tomcat 编码问题
王新春
tomcatjsppageEncode
今天配置jsp项目在tomcat上,windows上正常,而linux上显示乱码,最后定位原因为tomcat 的server.xml 文件的配置,添加 URIEncoding 属性:
<Connector port="8080" protocol="HTTP/1.1"
connectionTi