在C++中,有左值和右值的概念。
左值(lvalue)表示一个可以获取其地址的表达式,或者说是一个具名的对象或函数。它可以在等号左边出现,也可以在等号右边出现。例如:
int x = 10; // x 是一个左值
int* p = &x; // &x 获取了 x 的地址,所以 &x 也是一个左值
右值(rvalue)表示一个表达式,它的值是一个临时的、无法获取地址的值。右值只能在等号右边出现。例如:
int a = 5 + 3; // 5 + 3 是一个右值
int b = x + 2; // x + 2 是一个右值
右值引用(rvalue reference)是C++11引入的一种新的引用类型,用于绑定到右值。右值引用使用两个&符号(&&)表示。
右值引用可以像常规引用一样绑定到右值,但与常规引用不同的是,右值引用可以修改或窃取右值的内容。这为实现移动语义、完美转发和资源管理等提供了更多的灵活性和效率。
右值引⽤只能引⽤临时变量和常量值.
int main()
{
double a = 15.2;
//double& a1 = a * 2 + 10.2;//错误,不能引用临时变量
double&& ra = a * 2 + 10.2;//合法
//double &b1 = sqrt(100);//错误,不能引用临时变量
double&& rb = sqrt(100);//合法
cout << ra << "," << rb << endl;
return 0;
}
右值引用是C++语言中重要的特性之一,为性能优化和更高级的资源管理提供了支持。它在移动语义、完美转发和工厂模式等技术中广泛应用。
int main()
{
int a = 10;
const int ca = 20;
const int& b = a; //const引用,引用普通左值
const int& c = ca;//const引用,引用const左值
const int& d = 30; //const引用,引用右值
cout << b <<","<
你可能感兴趣的:(C++学习,c++)
- 打卡信奥刷题(920)用C++信奥P1076[普及组/提高] [NOIP 2012 普及组] 寻宝
Loge编程生活
C++c++算法开发语言青少年编程数据结构
P1076[NOIP2012普及组]寻宝题目描述传说很遥远的藏宝楼顶层藏着诱人的宝藏。小明历尽千辛万苦终于找到传说中的这个藏宝楼,藏宝楼的门口竖着一个木板,上面写有几个大字:寻宝说明书。说明书的内容如下:藏宝楼共有N+1N+1N+1层,最上面一层是顶层,顶层有一个房间里面藏着宝藏。除了顶层外,藏宝楼另有NNN层,每层MMM个房间,这MMM个房间围成一圈并按逆时针方向依次编号为0,…,M−10,…,
- 算法每日一练 (9)
张胤尘
算法每日一练算法数据结构
欢迎来到张胤尘的技术站技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌文章目录算法每日一练(9)最小路径和题目描述解题思路解题代码`c/c++``golang``lua`官方站点:力扣Leetcode算法每日一练(9)最小路径和题目地址:最小路径和题目描述给定一个包含非负整数的mxn网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为
- 【保姆级 HAL 库学习定时器】
CircuitWizard
单片机单片机嵌入式硬件
以下以STM32的HAL库为例,针对定时器(Timer)的初始化函数进行逐行详解,以定时器基本配置(TIMBase)为例:示例代码(以TIM6为例)TIM_HandleTypeDefhtim6;//定时器句柄voidMX_TIM6_Init(void){TIM_MasterConfigTypeDefsMasterConfig={0};htim6.Instance=TIM6;//选择定时器TIM6h
- PyTorch系列教程:编写高效模型训练流程
梦想画家
人工智能#pythonpytorch人工智能python
当使用PyTorch开发机器学习模型时,建立一个有效的训练循环是至关重要的。这个过程包括组织和执行对数据、参数和计算资源的操作序列。让我们深入了解关键组件,并演示如何构建一个精细的训练循环流程,有效地处理数据处理,向前和向后传递以及参数更新。模型训练流程PyTorch训练循环流程通常包括:加载数据批量处理执行正向传播计算损失反向传播更新权重一个典型的训练流程将这些步骤合并到一个迭代过程中,在数据集
- 新一代 AI 软件Manus 将重新将AI市场大洗牌
CircuitWizard
人工智能
Manus是一家专注于手部追踪、虚拟现实(VR)和增强现实(AR)技术的公司,其新一代AI软件结合了先进的机器学习和计算机视觉技术,致力于提升人机交互的自然性和效率。以下是关于Manus新一代AI软件的详细介绍及其核心功能:1.核心技术与创新Manus的AI软件基于以下技术突破:高精度手部追踪:通过深度学习算法和摄像头/传感器数据,实时捕捉手部骨骼、关节和肌肉的细微动作,精度可达亚毫米级,支持复杂
- 【自然语言处理-NLP】情感分析与主题建模
云博士的AI课堂
深度学习哈佛博后带你玩转机器学习自然语言处理人工智能情感分析主题建模深度学习机器学习NLP
以下内容详细剖析了NLP中情感分析(SentimentAnalysis)和主题建模(TopicModeling)的技术与方法,分别展示如何从文本中提取情感倾向和潜在主题,并提供示例代码和讲解,可在Python环境下直接运行。目录情感分析(SentimentAnalysis)1.1概念与方法概览1.2传统机器学习方法1.3深度学习与预训练模型1.4代码示例:基于机器学习的情感分类主题建模(Topic
- 服务端创建实战 - MCP协议(大模型上下文协议)快速入门
同学小张
人工智能gptAIGCDeepSeek学习开源协议MCP
大家好,我是同学小张,+v:jasper_8017一起交流,持续学习AI大模型应用实战案例,持续分享,欢迎大家点赞+关注,订阅我的大模型专栏,共同学习和进步。在本文中,我们将从零到一构建一个简单的MCP天气服务器,从实践过程中,熟悉MCP协议的使用。1.MCP服务器介绍服务器提供专门的上下文和功能,通过MCP原语公开资源、工具和提示,独立运行,具有明确的职责,通过客户端接口请求采样,必须遵守安全约
- 【AI大模型应用开发】从CoT到ToT,再到ReAct,提升大模型推理能力的方式探索(含代码)
同学小张
大模型人工智能AIGC笔记思维链思维树ReActgpt
大家好,我是同学小张,持续学习C++进阶知识和AI大模型应用实战案例,持续分享,欢迎大家点赞+关注,共同学习和进步。今天我们主要学习下当下提高大模型推理能力的几个主要技术,从CoT(ChainofThought)到TOT(TreeofThought),再到ReAct。从概念到实现代码框架,一点点去理解这些思想背后的原理。文章目录1.CoT(ChainofThought,思维链)1.1基本使用1.2
- 刚学习C++学习计划
李鲶鱼
c++python开发语言
30天的C++学习计划,适合零基础的小白:第1周:基础语法与环境搭建目标:熟悉C++的基本语法,搭建开发环境。学习内容:安装IDE(如VisualStudioCode、CLion或Code::Blocks),配置C++环境。学习C++基础语法:变量、数据类型、运算符、控制结构(if语句、for循环、while循环)、函数定义与调用。编写第一个C++程序:“Hello,World!”,了解编译与运行
- 搜广推校招面经三十八
Y1nhl
搜广推面经算法pytorch推荐算法搜索算法机器学习
字节推荐算法一、场景题:在抖音场景下为用户推荐广告词,吸引用户点击搜索,呈现广告这一流程的关键点以及可能遇到的困难。二、Transformer中对梯度消失或者梯度爆炸的处理在Transformer模型中,梯度消失和梯度爆炸是深度学习中常见的问题,尤其是在处理长序列数据时。为了克服这些问题,Transformer采用了一系列技术:2.1.残差连接(ResidualConnections)每个子层(包
- Vue 3 组件库测试驱动开发 (TDD):Jest + Vue Test Utils 单元测试实战 - 保障组件质量与长期维护性
Neo Evolution
前端学习vue.js驱动开发tdd前端框架单元测试笔记前端
引言欢迎再次回到Vue3+现代前端工程化系列技术博客!在昨天的第八篇博客中,我们学习了如何利用Storybook自动化生成专业级的组件文档,极大地提升了组件库的可维护性和易用性。今天,我们将聚焦于组件库开发的质量保障环节,深入探讨Vue3组件的单元测试,并实践测试驱动开发(Test-DrivenDevelopment,TDD)理念,构建高质量、可长期维护的Vue组件库。在软件工程领域,测试是保证代
- 嵌入式学习路线
TrustZone_
uboot嵌入式硬件单片机资料
【干货分享】嵌入式学习路线公开!(书籍推荐+视频推荐+练手项目)-极术社区-连接开发者与智能计算生态哈喽,大家好,我是仲一。最近有小伙伴在微信私信我,如何学习嵌入式。一直想写一篇学习路线的文章,由于各种原因拖到了现在。趁着国庆节在家,终于肝完了这篇文章。我个人是从STM32转到驱动开发的,在研二的时候学习了韦东山老师的驱动开发的课程,转到了驱动开发的方向。下面就如何学习嵌入式说下我个人的看法。什么
- 哪些人适合嵌入式学习?学习嵌入式的都是什么人?
VX13260562029
嵌入式ARM
对于嵌入式,笔者研究十来年了。今天我们不讲嵌入式多好多好之类,也不讲技术本身有什么优劣势未来如何发展,我们就讲一下如何学习嵌入式。既然是谈嵌入式的学习,那些人适合学习嵌入式呢?我暂且归为以下几类:一、电子发烧友。这类纯粹是爱好,为了爱好学习,当然各类电子发烧友都有,嵌入式自然也不例外。这类人有个特点,学习兴趣很大,但是执拗,喜欢自学,自己摸索。我经常看到60多岁,70多岁还在学C语言,还在研究M4
- C语言初阶——操作符详解
暗月の流星劫
c语言开发语言后端
在前面的一系列文章里,我们一起学习了C语言的基础语法,函数和数组的相关知识,而接下来,让我们一起学习操作符。操作符在C语言中同样有着举足轻重的地位,它的使用可以说是无处不在,能够深入理解并且熟练运用操作符往往能够使我们写出的代码更加准确,精致,巧妙和优雅。接下来,就让我们一起走入操作符的世界吧!!!1.操作符的分类物以类聚,人以群分。不同的人,不同的风格,干不同的事情。操作符都有哪些种类,各自又有
- UDP学习笔记(一)为什么UDP需要先将数据转换为字节数组
居然是阿宋
udpandroidkotlin
UDP发送数据时需要先将数据转换为字节数组再发送,主要是因为计算机网络传输的最基本单位是“字节”(Byte)。让我们从以下几个方面来深入理解这个设计选择:1.计算机网络只能传输“字节”在网络通信中,无论是TCP还是UDP,最终传输的都是二进制数据。计算机不能直接传输字符串、整数或对象,而是需要转换为字节数组。示例:发送字符串"Hello"valdata="Hello".toByteArray()/
- 【深度学习】PyTorch v2.6 Overview
OpenSeek
人工智能#机器学习#深度学习pythonpytorch人工智能
PyTorchv2.6OverviewPythonAPILibrariesPyTorch是一个优化的张量库,用于使用GPU和CPU进行深度学习。PythonAPI序号API名称解释1torchPyTorch核心库(中文:火炬)PyTorch的核心库,提供了张量操作、自动求导等基础功能。2torch.nn神经网络模块包含构建神经网络所需的各种模块,如层、损失函数等。3torch.nn.functio
- 2020年精排模型调研
Marcus-Bao
机器不学习人工智能机器学习大数据算法
❝本文经作者同意转载自:https://zhuanlan.zhihu.com/p/335781101作者:Ruhjkg编辑:MarcusBao谢绝任何形式的二次转载!❞2020年精排模型调研前言最近由于工作需要调研了一下2020年关于精排模型的进展。在广告推荐领域的CTR预估问题上,早期以LR+人工特征工程为主的机器学习方法,但由于人工组合特征工程成本较高,不同任务难以复用。后面FM因子分解机提出
- PyTorch 显存分配不均匀
LutingWang
debugpytorch人工智能python
在使用PyTorch进行深度学习训练时,可能会遇到GPU0的显存占用明显高于其他GPU的情况。这可能导致显存不足,影响训练效率。排查思路:开启两个Shell,ShellA用于运行训练脚本,ShellB用于实时监控显存。在ShellA运行训练脚本。在另一个shell中运行nvidia-smi-l1。这个命令会每秒刷新一次nvidia-smi的结果,方便实时观察各GPU显存的变化情况。观察GPU0何时
- PyTorch 训练循环全攻略:从零到精通的深度学习秘籍
吴师兄大模型
PyTorch深度学习pytorch人工智能训练循环LLM大模型python
Langchain系列文章目录01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南02-玩转LangChainMemory模块:四种记忆类型详解及应用场景全覆盖03-全面掌握LangChain:从核心链条构建到动态任务分配的实战指南04-玩转LangChain:从文档加载到高效问答系统构建的全程实战05-玩转LangChain:深度评估问答系统的三种高效方法(示例生成、手
- python搭建NPL模型的详细步骤和代码
百锦再@新空间代码工作室
包罗万象python开发语言djangoflaskpygamepip
目录**一、环境准备****二、数据准备****三、文本预处理****1.清理文本****四、特征工程****1.TF-IDF****2.Word2Vec****五、搭建NLP模型****1.逻辑回归****2.LSTM深度学习模型****六、使用预训练的BERT模型****七、模型评估****八、部署模型****总结**1.**人机交互的核心技术**2.**推动AI技术发展的动力**3.**广泛
- FPGA学习笔记(二)Verilog语法初步学习(语法篇1)
贾saisai
FPGA学习fpga开发学习1024程序员节
FPGA系列文章目录一、FPGA学习笔记(一)入门背景、软件及时钟约束二、FPGA学习笔记(二)Verilog语法初步学习(语法篇1)三、FPGA学习笔记(三)流水灯入门FPGA设计流程四、FPGA学习笔记(四)通过数码管学习顶层模块和例化的编写五、FPGA学习笔记(五)Testbench(测试平台)文件编写进行Modelsim仿真六、FPGA学习笔记(六)Modelsim单独仿真和Quartus
- 侯捷C++设计模式总结
Aurora141592
设计模式c++
面向对象设计原则依赖倒置原则开放封闭原则单一职责原则里氏替换原则接口隔离原则优先使用对象组合,而不是类继承封装变化点针对接口编程,而不是针对实现编程剩下的以后再补充
- android多个usb摄像头,Android中多USB摄像头解决方案——UVCCamera源码分析(四)
桔子毛
android多个usb摄像头
经过前几章的学习,我们大概了解了整个UVCCamera初始化、开始预览的过程。那么接着我们将来看看UVCCamera是如何实现拍照功能的。本章内容相对比较简单,均是Java层的实现。我们直接来看代码:@OverridepublicvoidcaptureStill(finalStringpath,OnCaptureListenerlistener){super.captureStill(path,l
- C++ 设计模式:建造者模式(Builder Pattern)
冀晓武
C++设计模式c++设计模式建造者模式
链接:C++设计模式链接:C++设计模式-工厂方法链接:C++设计模式-抽象工厂链接:C++设计模式-原型模式建造者模式(BuilderPattern)是一种创建型设计模式,它允许你分步骤创建复杂对象。与其他创建型模式不同,建造者模式不仅关注对象的创建,还关注对象的组装过程。1.问题分析在软件开发中,有时我们需要创建一个复杂对象,这个对象由多个部分组成,并且这些部分的构建过程可能非常复杂。直接使用
- 【第17节】C++设计模式(行为模式)-Memento(备忘录)模式
攻城狮7号
c++版本设计模式c++设计模式备忘录模式
一、问题引出使用Memento模式实现撤销操作在软件开发中,用户在执行某些关键操作时,可能会希望有“撤销”功能,以便在操作失误时能够恢复到之前的状态。Memento模式正是为了解决这一问题而设计的。该模式允许在不破坏封装性的前提下,捕获并保存一个对象的内部状态,从而在需要时恢复该状态。二、Memento模式概述Memento模式的核心思想是在不暴露对象内部结构的情况下,保存对象的内部状态。通过这种
- QGIS-Python编程入门教程
戴玫芹
QGIS-Python编程入门教程qgis-python-course项目地址:https://gitcode.com/gh_mirrors/qg/qgis-python-course项目基础介绍该项目是一个开源的QGIS-Python编程教程,旨在帮助用户学习如何在QGIS中使用Python编程语言进行地理信息系统(GIS)开发。该项目基于QGIS3版本,但如果用户希望使用QGIS2版本,也可以
- Python项目-基于Django的在线教育平台开发
天天进步2015
Python项目实战python
1.项目概述在线教育平台已成为现代教育的重要组成部分,特别是在后疫情时代,远程学习的需求显著增加。本文将详细介绍如何使用Python的Django框架开发一个功能完善的在线教育平台,包括系统设计、核心功能实现以及部署上线等关键环节。本项目旨在创建一个集课程管理、视频播放、在线测验、学习进度跟踪和社区互动于一体的综合性教育平台,为教育机构和个人讲师提供一站式在线教学解决方案。2.技术栈选择2.1后端
- Verilog学习方法—基础入门篇(一)
博览鸿蒙
FPGAfpga开发
前言:在FPGA开发中,VerilogHDL(硬件描述语言)是工程师必须掌握的一项基础技能。它不仅用于描述数字电路,还广泛应用于FPGA的逻辑设计与验证。对于初学者来说,掌握Verilog的核心概念和基本语法,是深入FPGA开发的第一步。本篇文章将从Verilog基础入门的角度,帮助你快速建立学习框架,逐步掌握Verilog的使用方法。1.了解Verilog的基本概念1.1什么是Verilog?V
- 早上一上班发现产品出现重大事故,作为产品经理该怎么办?
产品设计大观
产品经理
作为产品经理,工作日常最怕的三件事估计是:评审会、突然加需求、产品出现重大事故。(事件严重顺序不分前后)其中最猝不及防,最挑战产品经理承压力和行动力的莫过于早上一上班发现产品出现重大事故。如果遇到这种情况,除了立马辞职(划掉)还有其他的办法吗?前辈产品经理有哪些有益的经验值得我们学习呢?针对这个问题,刀友群各位产品经理们是这样理解的:喔XX分三步走1.安抚用户,完善补偿制度,每次发生突发状况首先就
- 【C++设计模式】第十三篇:责任链模式(Chain of Responsibility)
JuicyActiveGilbert
C++设计模式c++设计模式责任链模式
注意:复现代码时,确保VS2022使用C++17/20标准以支持现代特性。动态传递请求的处理流水线1.模式定义与用途核心思想责任链模式:将多个处理对象连成一条链,请求沿链传递直至被处理。每个处理者可选择处理请求或转发给下一处理者。关键用途:1.解耦请求与处理:发送者无需知道具体处理者。2.动态调整处理流程:运行时增删处理节点(如日志过滤链、审批流程)。经典场景中间件处理HTTP请求(认证、限流、日
- 多线程编程之卫生间
周凡杨
java并发卫生间线程厕所
如大家所知,火车上车厢的卫生间很小,每次只能容纳一个人,一个车厢只有一个卫生间,这个卫生间会被多个人同时使用,在实际使用时,当一个人进入卫生间时则会把卫生间锁上,等出来时打开门,下一个人进去把门锁上,如果有一个人在卫生间内部则别人的人发现门是锁的则只能在外面等待。问题分析:首先问题中有两个实体,一个是人,一个是厕所,所以设计程序时就可以设计两个类。人是多数的,厕所只有一个(暂且模拟的是一个车厢)。
- How to Install GUI to Centos Minimal
sunjing
linuxInstallDesktopGUI
http://www.namhuy.net/475/how-to-install-gui-to-centos-minimal.html
I have centos 6.3 minimal running as web server. I’m looking to install gui to my server to vnc to my server. You can insta
- Shell 函数
daizj
shell函数
Shell 函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。
shell中函数的定义格式如下:
[function] funname [()]{
action;
[return int;]
}
说明:
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回
- Linux服务器新手操作之一
周凡杨
Linux 简单 操作
1.whoami
当一个用户登录Linux系统之后,也许他想知道自己是发哪个用户登录的。
此时可以使用whoami命令。
[ecuser@HA5-DZ05 ~]$ whoami
e
- 浅谈Socket通信(一)
朱辉辉33
socket
在java中ServerSocket用于服务器端,用来监听端口。通过服务器监听,客户端发送请求,双方建立链接后才能通信。当服务器和客户端建立链接后,两边都会产生一个Socket实例,我们可以通过操作Socket来建立通信。
首先我建立一个ServerSocket对象。当然要导入java.net.ServerSocket包
ServerSock
- 关于框架的简单认识
西蜀石兰
框架
入职两个月多,依然是一个不会写代码的小白,每天的工作就是看代码,写wiki。
前端接触CSS、HTML、JS等语言,一直在用的CS模型,自然免不了数据库的链接及使用,真心涉及框架,项目中用到的BootStrap算一个吧,哦,JQuery只能算半个框架吧,我更觉得它是另外一种语言。
后台一直是纯Java代码,涉及的框架是Quzrtz和log4j。
都说学前端的要知道三大框架,目前node.
- You have an error in your SQL syntax; check the manual that corresponds to your
林鹤霄
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option,changed_ids ) values('0ac91f167f754c8cbac00e9e3dc372
- MySQL5.6的my.ini配置
aigo
mysql
注意:以下配置的服务器硬件是:8核16G内存
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=D:/mysql-5.6.21-win
- mysql 全文模糊查找 便捷解决方案
alxw4616
mysql
mysql 全文模糊查找 便捷解决方案
2013/6/14 by 半仙 alxw4616@Msn.com
目的: 项目需求实现模糊查找.
原则: 查询不能超过 1秒.
问题: 目标表中有超过1千万条记录. 使用like '%str%' 进行模糊查询无法达到性能需求.
解决方案: 使用mysql全文索引.
1.全文索引 : MySQL支持全文索引和搜索功能。MySQL中的全文索
- 自定义数据结构 链表(单项 ,双向,环形)
百合不是茶
单项链表双向链表
链表与动态数组的实现方式差不多, 数组适合快速删除某个元素 链表则可以快速的保存数组并且可以是不连续的
单项链表;数据从第一个指向最后一个
实现代码:
//定义动态链表
clas
- threadLocal实例
bijian1013
javathreadjava多线程threadLocal
实例1:
package com.bijian.thread;
public class MyThread extends Thread {
private static ThreadLocal tl = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Inte
- activemq安全设置—设置admin的用户名和密码
bijian1013
javaactivemq
ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到
<bean id="adminSecurityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<p
- 【Java范型一】Java范型详解之范型集合和自定义范型类
bit1129
java
本文详细介绍Java的范型,写一篇关于范型的博客原因有两个,前几天要写个范型方法(返回值根据传入的类型而定),竟然想了半天,最后还是从网上找了个范型方法的写法;再者,前一段时间在看Gson, Gson这个JSON包的精华就在于对范型的优雅简单的处理,看它的源代码就比较迷糊,只其然不知其所以然。所以,还是花点时间系统的整理总结下范型吧。
范型内容
范型集合类
范型类
- 【HBase十二】HFile存储的是一个列族的数据
bit1129
hbase
在HBase中,每个HFile存储的是一个表中一个列族的数据,也就是说,当一个表中有多个列簇时,针对每个列簇插入数据,最后产生的数据是多个HFile,每个对应一个列族,通过如下操作验证
1. 建立一个有两个列族的表
create 'members','colfam1','colfam2'
2. 在members表中的colfam1中插入50*5
- Nginx 官方一个配置实例
ronin47
nginx 配置实例
user www www;
worker_processes 5;
error_log logs/error.log;
pid logs/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096;}
http {
include conf/mim
- java-15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环
bylijinnan
java
//use recursion
public static void mirrorHelp1(Node node){
if(node==null)return;
swapChild(node);
mirrorHelp1(node.getLeft());
mirrorHelp1(node.getRight());
}
//use no recursion bu
- 返回null还是empty
bylijinnan
javaapachespring编程
第一个问题,函数是应当返回null还是长度为0的数组(或集合)?
第二个问题,函数输入参数不当时,是异常还是返回null?
先看第一个问题
有两个约定我觉得应当遵守:
1.返回零长度的数组或集合而不是null(详见《Effective Java》)
理由就是,如果返回empty,就可以少了很多not-null判断:
List<Person> list
- [科技与项目]工作流厂商的战略机遇期
comsci
工作流
在新的战略平衡形成之前,这里有一个短暂的战略机遇期,只有大概最短6年,最长14年的时间,这段时间就好像我们森林里面的小动物,在秋天中,必须抓紧一切时间存储坚果一样,否则无法熬过漫长的冬季。。。。
在微软,甲骨文,谷歌,IBM,SONY
- 过度设计-举例
cuityang
过度设计
过度设计,需要更多设计时间和测试成本,如无必要,还是尽量简洁一些好。
未来的事情,比如 访问量,比如数据库的容量,比如是否需要改成分布式 都是无法预料的
再举一个例子,对闰年的判断逻辑:
1、 if($Year%4==0) return True; else return Fasle;
2、if ( ($Year%4==0 &am
- java进阶,《Java性能优化权威指南》试读
darkblue086
java性能优化
记得当年随意读了微软出版社的.NET 2.0应用程序调试,才发现调试器如此强大,应用程序开发调试其实真的简单了很多,不仅仅是因为里面介绍了很多调试器工具的使用,更是因为里面寻找问题并重现问题的思想让我震撼,时隔多年,Java已经如日中天,成为许多大型企业应用的首选,而今天,这本《Java性能优化权威指南》让我再次找到了这种感觉,从不经意的开发过程让我刮目相看,原来性能调优不是简单地看看热点在哪里,
- 网络学习笔记初识OSI七层模型与TCP协议
dcj3sjt126com
学习笔记
协议:在计算机网络中通信各方面所达成的、共同遵守和执行的一系列约定 计算机网络的体系结构:计算机网络的层次结构和各层协议的集合。 两类服务: 面向连接的服务通信双方在通信之前先建立某种状态,并在通信过程中维持这种状态的变化,同时为服务对象预先分配一定的资源。这种服务叫做面向连接的服务。 面向无连接的服务通信双方在通信前后不建立和维持状态,不为服务对象
- mac中用命令行运行mysql
dcj3sjt126com
mysqllinuxmac
参考这篇博客:http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html 感觉workbench不好用(有点先入为主了)。
1,安装mysql
在mysql的官方网站下载 mysql 5.5.23 http://www.mysql.com/downloads/mysql/,根据我的机器的配置情况选择了64
- MongDB查询(1)——基本查询[五]
eksliang
mongodbmongodb 查询mongodb find
MongDB查询
转载请出自出处:http://eksliang.iteye.com/blog/2174452 一、find简介
MongoDB中使用find来进行查询。
API:如下
function ( query , fields , limit , skip, batchSize, options ){.....}
参数含义:
query:查询参数
fie
- base64,加密解密 经融加密,对接
y806839048
经融加密对接
String data0 = new String(Base64.encode(bo.getPaymentResult().getBytes(("GBK"))));
String data1 = new String(Base64.decode(data0.toCharArray()),"GBK");
// 注意编码格式,注意用于加密,解密的要是同
- JavaWeb之JSP概述
ihuning
javaweb
什么是JSP?为什么使用JSP?
JSP表示Java Server Page,即嵌有Java代码的HTML页面。使用JSP是因为在HTML中嵌入Java代码比在Java代码中拼接字符串更容易、更方便和更高效。
JSP起源
在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。
如果使用Servl
- apple watch 指南
啸笑天
apple
1. 文档
WatchKit Programming Guide(中译在线版 By @CocoaChina) 译文 译者 原文 概览 - 开始为 Apple Watch 进行开发 @星夜暮晨 Overview - Developing for Apple Watch 概览 - 配置 Xcode 项目 - Overview - Configuring Yo
- java经典的基础题目
macroli
java编程
1.列举出 10个JAVA语言的优势 a:免费,开源,跨平台(平台独立性),简单易用,功能完善,面向对象,健壮性,多线程,结构中立,企业应用的成熟平台, 无线应用 2.列举出JAVA中10个面向对象编程的术语 a:包,类,接口,对象,属性,方法,构造器,继承,封装,多态,抽象,范型 3.列举出JAVA中6个比较常用的包 Java.lang;java.util;java.io;java.sql;ja
- 你所不知道神奇的js replace正则表达式
qiaolevip
每天进步一点点学习永无止境纵观千象regex
var v = 'C9CFBAA3CAD0';
console.log(v);
var arr = v.split('');
for (var i = 0; i < arr.length; i ++) {
if (i % 2 == 0) arr[i] = '%' + arr[i];
}
console.log(arr.join(''));
console.log(v.r
- [一起学Hive]之十五-分析Hive表和分区的统计信息(Statistics)
superlxw1234
hivehive分析表hive统计信息hive Statistics
关键字:Hive统计信息、分析Hive表、Hive Statistics
类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中。
表和分区的统计信息主要包括:行数、文件数、原始数据大小、所占存储大小、最后一次操作时间等;
14.1 新表的统计信息
对于一个新创建
- Spring Boot 1.2.5 发布
wiselyman
spring boot
Spring Boot 1.2.5已在7月2日发布,现在可以从spring的maven库和maven中心库下载。
这个版本是一个维护的发布版,主要是一些修复以及将Spring的依赖提升至4.1.7(包含重要的安全修复)。
官方建议所有的Spring Boot用户升级这个版本。
项目首页 | 源