SpringMVC对于传入参数是数组形式的参数该怎样处理 20C

先跟大家介绍一下我之前的开发经验。之前做过一个简单查询展示的系统,输入一个人的一些资料,查询符合条件的数据,具体框架大概是这样:
如图,四个查询条件,输入相应的查询条件,会返回符合要求的结果。
图片说明

这是传入后台姓名、客户号、日期等参数的形式;
图片说明

这是后台controller的写法;
图片说明

这是实体类Bean的写法;
图片说明

这是Mapper的写法。
图片说明
现在小弟需要实现一个十分复杂的查询/筛选功能,需要将数据库中符合多个条件的结果全部返回过来。具体的界面是这样的;
图片说明
而对于传输的查询参数,对于同一名称的查询参数可能有多个值,因此查询参数是一个数组:
图片说明
图片说明
如图,像这样的形式,该如何修改后台的Bean、controller和mapper?还请大牛指点指点,谢谢!

4个回答

本来就支持数组参数,你直接在后台接就好了图片说明
查询时传入一个Mapper传一个bean,把数组参数作为bean的一个属性,在mapper.xml 文件里面 in 使用for循环把参数拼起来就好了

后台用request.getParameterValues('roleIds')可以获取到一个String数组的

FenTianShenHuo
焚天神火 回复SheldorWsy: 感觉你这些条件怎么看都像是单选框比较合适
2 年多之前 回复
FenTianShenHuo
焚天神火 回复SheldorWsy: 后台接收的是name,只有你的同一类CheckBox的name属性相同,后台就能接受这样的数组了
2 年多之前 回复
weixin_40158006
SheldorWsy 是在controller里面写吗?另外我用的是checkbox的class和id属性,要改成使用name和value么?
2 年多之前 回复

Spring MVC本来就支持数组参数,把bean的属性变成String[]类型就OK了。
不过你也可以通过debug看看,如果bean的PRD_NBR,crl_sts 和 end_dte三个属性写成String类型,传进来的参数值是啥样的。我要是没记错的话应该是一个字符串,内容是由数组里每个字符串拼接而成,中间用逗号隔开(例如图片里面的PRD_NBR,传进来的就是"CR026601,CR026101")。这样的好处是写Mapping的时候应该可以直接写成类似where 属性 in (),可以省去循环了
当然你也可以在页面端把这个数组拼接成方便写Mapping的字符串啦

图片说明
图片说明
可以参考这样的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
springMVC如何接收ajax多个对象数组参数?

现有两个实体类Student和Teacher,从前端需要传递一个Student的数组和 一个Teacher的对象,如图所示,方框为teacher的属性,圆圈为多个student对象,请问前后端分别如何写才能正确传参,非常感谢!(折腾了好久都没弄成) ![图片说明](https://img-ask.csdn.net/upload/201903/08/1552048491_410280.png)

springmvc jquery传递数组,

代码目的是把前台被选中的选项的id存入数组,再将数组传给input.通过form提交,在控制器拦截到并接收这个数组. 但是我现在接收到的是一个字符串. 同样的前台页面与拦截器代码.在另外一台笔记本上接收的是一个id数组.搞不清为啥 恳请各位解答 以下是源码.前台 1.<!DOCTYPE html > <html> <head> <link href="/dist/css/zui.css" rel="stylesheet"> <!--zui.js,jQuery.js用于菜单的展现--> <script src="/dist/lib/jquery/jquery.js"></script> <script src="/dist/js/zui.js"></script> </head> <body> <div style="margin-top: 100px"> <h1 class="header-dividing"><strong>问卷详情</strong></h1> </div> <h2 class="header-dividing" id="questionList">${survey.description}</h2><br> <script type="text/javascript"> $(document).ready(function(){ $("#tijiao").click(function(){ var c=[]; // $("input[type=checkbox]:checked").each(function(){ $("input:checked").each(function(){ c.push($(this).attr('value')); }) $("#data").val(c); alert($("#data").val()); }); }); </script> <#if questions??> <ol> <#list questions as question> <li> <h3 class="radio-inline">${question.description}</h3><br> </li> <div id="aaa"> <#if question.type==0> <#list question.answers as answer> <label class="radio"><input type="radio" name="${question.id}" value="${answer.id}"> ${answer.options}.${answer.description} </label><br> </#list> <#else> <#list question.answers as answer> <label class="checkbox" ><input type="checkbox" name="${question.id}" value="${answer.id}" >${answer.options}.${answer.description} </label><br> </#list> </#if> <#if question.isleaf==1> <#if question.type==0> <input type="radio" name="${question.id}"> <label>其他</label><input class="span6 voteoptions" name="" id="otherop" type="text" style="width:430px;"> <#else> <input type="checkbox" name="${question.id}"> <label>其他</label><input class="span6 voteoptions" name="" id="otherop" type="text" style="width:430px;"> </#if> </#if> </div> </#list> </ol> </#if> <form action="/background/surveyResult" method="post"> <input type="text" id="data" name="answerids" value="zhang[]"> <#--<input type="hidden" id="data2" name="zhang2" value="1">--> <button type="submit" id="tijiao">点我</button> <form> </body> </html> 拦截器代码如下 @RequestMapping("/surveyResult") public String surveyResult( String[] answerids) { System.out.println(answerids.length); return "/admin/success"; } 输出的数值为1. debug日志如下

SrpingMVC如何接收JS二维数组参数

比如我要接收图片中的二维数组,是个复杂对象。 ![JS二维数组](https://img-ask.csdn.net/upload/201809/03/1535944723_609695.png) **1. 如果不适用前端Json序列化,后端接收反序列化这种方案的话。应该如何接收**

springMVC中 前台的数组参数怎么填装到实体类的某个属性中

前台是easyui的多选combobox getValues 方法可以取到一个数组 通过datagrid的queryParams传到后台 类似于这样 queryParam{ "ids":[111,222,333] } 问题来了, 后台的实体类中 接这个数组的属性应该怎么写 public class Authors{ private Integer[] ids ????? private String[] ids ????? private List<Integer> ids ???? private List<String> ids ???? private List<Object> ids ???? } 纯手打,求解答

SpringMVC list参数问题

前端用ajax请求并传参,后台用SpringMVC接收参数,参数为list的形式如,List<[color=red]User[/color]> users, 前台传的格式形如 {users:{{name:"Tom",age:12},{name:"Petter",age:14}}}(但不确定是不是这么传), 请问应该怎么实现? 我上网查过并测试成功的有,1.传单个参数,2.单个对象(用json传),3.甚至传String的数组(String[] ary)都可以,但是没有找到可以传对象的list或数组形式的,希望知道的速速回复,谢谢了。

springmvc接收参数老是为null

后台代码: @RequestMapping(value="/login",method=RequestMethod.POST) @ResponseBody public Map<String,Object> login(String username,String password,HttpServletRequest request,HttpServletResponse response){ return null; } username 和 password一直为null 前台参数:(是用jemeter提交的) Content-Type:application/json;charset=UTF-8 { 'username':'admin2', 'password':'123' }

springmvc 参数 默认值

我在一个springmvc控制器中定义了很多参数, 但是现在我想把参数全部抽取出来封装到一个参数的类, 但是有的参数是有默认值的, 而这些默认值 又在默认参数的类中定义了。 怎么才能在封装的参数中设置参数的默认值。 控制器:这个类继承了默认参数类,里面定义了许多默认参数 @RequestMapping(value="/roleDelete",method=RequestMethod.POST) public String roleDelete( @RequestParam(value = "number", defaultValue = PAGE_NUM) int number) 参数类: private int number;//列表页

springMVC参数错误返回值

我在用SpringMVC时,如果某些参数在请求时为必填参数,会用到(required = true),即: @RequestParam(value = "id", required = true) String id,String name) 但是这样的话如果id为空一请求就会报个Spring参数的错。 后来我把required 改为false,然后在程序中判断传入参数是否为空,如果为空的话,手动拼接要返回的json字符串: { "success": false, "failMessage": "参数中缺少id项,参数中缺少name项" } 现在我想改造一下,让required的值依然为true,此时如果请求参数为空,就根本不进入该方法,而是让SpringMVC自动给我返回这个错误的json串,格式按照上面的,请问该怎么修改呢?

springmvc日期参数绑定为null

springmvc在给bean对象的日期属性绑定参数时为空,如下: [code="java"] public void save(User user){ //TODO } [/code] User对象中有一个属性birthday,在页面提交的form表单中有 [code="java"] <input type="text" name="birthday" value="2012-04-10 10:10:10" /> [/code] 但是当后台打印出user中的属性值时,发现birthday属性为null,其他的属性都可以正确获取。 这是什么原因引起的呢?还是说birthday的格式有问题?貌似都是这个格式吧! 请各位大牛,指点下迷津!

springMvc的post请求参数问题

最近使用spring mvc,有一个疑惑。别人调我的接口,新建一个资源,需要传一系列参数,一些参数是用来判断我新建资源方式的。这些参数放在url上是否更加合适,按照我的理解,post请求的话,body里面存放的是新建的资源内容,而用来做判断的参数放在url上。这样的理解不知道合不合理,希望大神解惑。

有关SpringMVC传递参数的问题

前台通过`ajax`提交json格式数据,如下 ``` $.ajax( { url: "http://localhost:8090/lookup/getLookup", type: "POST", dataType: "json", data: JSON.stringify({"lookupId":28}), contentType: "application/json", success: function (data, textStatus, jqXHR) { alert(data.code) }, error: function (data, textStatus, jqXHR) { alert("ERROE"); } } ); ``` 这样请求的参数就是`{"lookupId":28}` 那么后台我是写的这样接收 ``` @ResponseBody @RequestMapping(value = {"getLookup"}) public TsLookupTypeHelper getLookupByLookupId(@RequestBody Integer lookupId) {} ``` 请求的时候会报错 400,请问要怎样在前台发送json数据,后台通过非javabean的参数(指的是 int string等基本类型)接受?

springmvc如何确定自定义转换器接收的参数

比如在页面我向springmvc中传入一个对象 对象中 有很多属性 但是我需要把日期类型属性通过我自定义的类型转换器进行转换 ,它是怎么确定自定转换器类中接收的参数是对象中的日期属性。

springmvc表单参数实体类组装问题

springmvc表单提交之后,会自动将参数和对应的属性set进去,但是这种是将实体的全部属性 都set注入,页面上未传入参数的属性会set为null。怎样让实体类只set页面上传入的参数?

SpringMVC 前后台参数传递问题

前端参数为:var jsonData = { "id":id, "jsonDateForDetail":jsonDateForDetail, "contractCode":contractCode, "contractName":contractName, "contractType":contractType, "signingDate":signingDate, "shipperId":shipperId, "shipperName":shipperName, "companyAbbreviation":companyAbbreviation, "carrierId":carrierId, "carrierName":carrierName, "shipperContactPerson":shipperContactPerson, "shipperContactNumber":shipperContactNumber, "carrierContactPerson":carrierContactPerson, "carrierContactNumber":carrierContactNumber, "cashOnDeliveryRatio":cashOnDeliveryRatio, "settlementMethod":settlementMethod, "departureAddress":departureAddress, "arrivalAddress":arrivalAddress, "consignmentPeriod":consignmentPeriod, "shippingType":shippingType, "deliveryMode":deliveryMode, "numConfirmationMethod":numConfirmationMethod, "qaConfirmationMethod":qaConfirmationMethod, "remark":remark, "status":status, "contractProvision":contractProvision, "auditPerson":auditPerson, "auditTime":auditTime, "auditOpinion":auditOpinion, //后加的 "flag":flag }; Wb.request({ url:reqUrl , params: jsonData, success: function(resp) { app.appwin.hide(); app.appwinAudit.hide(); app.appgrid.store.reload(); if(oprType=="audit"){ Ext.Msg.alert('{#app_alert#}', "审核通过"); }else{ Ext.Msg.alert('{#app_alert#}', "保存成功"); } } }); 我新增的实体类: public class TransportVo extends RmValueObject{ private static final long serialVersionUID = 1L; private String id; private String contractCode; private String contractType; private String contractName; private Timestamp signingDate; private String shipperId; private String shipperName; private String companyAbbreviation; private String carrierId; private String carrierName; private String shipperContactPerson; private String shipperContactNumber; private String carrierContactPerson; private String carrierContactNumber; private BigDecimal cashOnDeliveryRatio; private String settlementMethod; private String departureAddress; private String arrivalAddress; private String consignmentPeriod; private String shippingType; private String deliveryMode; private String numConfirmationMethod; private String qaConfirmationMethod; private String remark; private String status; private String auditPerson; private Timestamp auditTime; private String auditOpinion; private String usableStatus; private Timestamp createTime; private String createIp; private String createUserId; private String createUserName; private Timestamp modifyTime; private String modifyIp; private String modifyUserId; private String modifyUserName; private Timestamp deleteTime; private String deleteIp; private String deleteFlag; private String deleteUserId; private String deleteUserName; private String orderCode; private String attribute1; private String attribute2; private String attribute3; private String attribute4; private String contractProvision; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getContractCode() { return contractCode; } public void setContractCode(String contractCode) { this.contractCode = contractCode; } public String getContractType() { return contractType; } public void setContractType(String contractType) { this.contractType = contractType; } public String getContractName() { return contractName; } public void setContractName(String contractName) { this.contractName = contractName; } public Timestamp getSigningDate() { return signingDate; } public void setSigningDate(Timestamp signingDate) { this.signingDate = signingDate; } public String getShipperId() { return shipperId; } public void setShipperId(String shipperId) { this.shipperId = shipperId; } public String getShipperName() { return shipperName; } public void setShipperName(String shipperName) { this.shipperName = shipperName; } public String getCompanyAbbreviation() { return companyAbbreviation; } public void setCompanyAbbreviation(String companyAbbreviation) { this.companyAbbreviation = companyAbbreviation; } public String getCarrierId() { return carrierId; } public void setCarrierId(String carrierId) { this.carrierId = carrierId; } public String getCarrierName() { return carrierName; } public void setCarrierName(String carrierName) { this.carrierName = carrierName; } public String getShipperContactPerson() { return shipperContactPerson; } public void setShipperContactPerson(String shipperContactPerson) { this.shipperContactPerson = shipperContactPerson; } public String getShipperContactNumber() { return shipperContactNumber; } public void setShipperContactNumber(String shipperContactNumber) { this.shipperContactNumber = shipperContactNumber; } public String getCarrierContactPerson() { return carrierContactPerson; } public void setCarrierContactPerson(String carrierContactPerson) { this.carrierContactPerson = carrierContactPerson; } public String getCarrierContactNumber() { return carrierContactNumber; } public void setCarrierContactNumber(String carrierContactNumber) { this.carrierContactNumber = carrierContactNumber; } public BigDecimal getCashOnDeliveryRatio() { return cashOnDeliveryRatio; } public void setCashOnDeliveryRatio(BigDecimal cashOnDeliveryRatio) { this.cashOnDeliveryRatio = cashOnDeliveryRatio; } public String getSettlementMethod() { return settlementMethod; } public void setSettlementMethod(String settlementMethod) { this.settlementMethod = settlementMethod; } public String getDepartureAddress() { return departureAddress; } public void setDepartureAddress(String departureAddress) { this.departureAddress = departureAddress; } public String getArrivalAddress() { return arrivalAddress; } public void setArrivalAddress(String arrivalAddress) { this.arrivalAddress = arrivalAddress; } public String getConsignmentPeriod() { return consignmentPeriod; } public void setConsignmentPeriod(String consignmentPeriod) { this.consignmentPeriod = consignmentPeriod; } public String getShippingType() { return shippingType; } public void setShippingType(String shippingType) { this.shippingType = shippingType; } public String getDeliveryMode() { return deliveryMode; } public void setDeliveryMode(String deliveryMode) { this.deliveryMode = deliveryMode; } public String getNumConfirmationMethod() { return numConfirmationMethod; } public void setNumConfirmationMethod(String numConfirmationMethod) { this.numConfirmationMethod = numConfirmationMethod; } public String getQaConfirmationMethod() { return qaConfirmationMethod; } public void setQaConfirmationMethod(String qaConfirmationMethod) { this.qaConfirmationMethod = qaConfirmationMethod; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getAuditPerson() { return auditPerson; } public void setAuditPerson(String auditPerson) { this.auditPerson = auditPerson; } public Date getAuditTime() { return auditTime; } public void setAuditTime(Timestamp auditTime) { this.auditTime = auditTime; } public String getAuditOpinion() { return auditOpinion; } public void setAuditOpinion(String auditOpinion) { this.auditOpinion = auditOpinion; } public String getUsableStatus() { return usableStatus; } public void setUsableStatus(String usableStatus) { this.usableStatus = usableStatus; } public Date getCreateTime() { return createTime; } public void setCreateTime(Timestamp createTime) { this.createTime = createTime; } public String getCreateIp() { return createIp; } public void setCreateIp(String createIp) { this.createIp = createIp; } public String getCreateUserId() { return createUserId; } public void setCreateUserId(String createUserId) { this.createUserId = createUserId; } public String getCreateUserName() { return createUserName; } public void setCreateUserName(String createUserName) { this.createUserName = createUserName; } public Date getModifyTime() { return modifyTime; } public void setModifyTime(Timestamp modifyTime) { this.modifyTime = modifyTime; } public String getModifyIp() { return modifyIp; } public void setModifyIp(String modifyIp) { this.modifyIp = modifyIp; } public String getModifyUserId() { return modifyUserId; } public void setModifyUserId(String modifyUserId) { this.modifyUserId = modifyUserId; } public String getModifyUserName() { return modifyUserName; } public void setModifyUserName(String modifyUserName) { this.modifyUserName = modifyUserName; } public Date getDeleteTime() { return deleteTime; } public void setDeleteTime(Timestamp deleteTime) { this.deleteTime = deleteTime; } public String getDeleteIp() { return deleteIp; } public void setDeleteIp(String deleteIp) { this.deleteIp = deleteIp; } public String getDeleteFlag() { return deleteFlag; } public void setDeleteFlag(String deleteFlag) { this.deleteFlag = deleteFlag; } public String getDeleteUserId() { return deleteUserId; } public void setDeleteUserId(String deleteUserId) { this.deleteUserId = deleteUserId; } public String getDeleteUserName() { return deleteUserName; } public void setDeleteUserName(String deleteUserName) { this.deleteUserName = deleteUserName; } public String getOrderCode() { return orderCode; } public void setOrderCode(String orderCode) { this.orderCode = orderCode; } public String getAttribute1() { return attribute4; } public void setAttribute1(String attribute1) { this.attribute1 = attribute1; } public String getAttribute2() { return attribute2; } public void setAttribute2(String attribute2) { this.attribute2 = attribute2; } public String getAttribute3() { return attribute3; } public void setAttribute3(String attribute3) { this.attribute3 = attribute3; } public String getAttribute4() { return attribute4; } public void setAttribute4(String attribute4) { this.attribute4 = attribute4; } public String getContractProvision() { return contractProvision; } public void setContractProvision(String contractProvision) { this.contractProvision = contractProvision; } } 后台方法: @RequestMapping(params = {"method=insert"}, method = {org.springframework.web.bind.annotation.RequestMethod.POST}, consumes = {"application/x-www-form-urlencoded"}, produces = {"application/json"}) @ResponseBody public Map<String, Object> insert(HttpServletRequest request, @Valid TransportVo vo){。。。。。} 为什么TransportVo 这个实体没有值呢?如果把后面这个实体参数删掉就可以请求跳转到后台。但问题是,我的项目中其他的页面也是这么写的就可以传值---前台传一个JSONDATA,后台方法有两个参数,页面发送请求之后,后台方法中这两个参数都有值。而我新建的页面却不行 我想知道是什么地方给这另外加的实体类赋值了呢?

关于REST风格的SpringMVC Controller 传递多个参数的问题

关于REST风格的SpringMVC Controller 传递多个参数的问题 [code="java"] /** * * * Description: 预更新操作根据用户名查询用户信息 然后数据交给携带体 展示到视图 REST风格: /更新的用户的用户名/update * @param username @PathVariable修饰 表示形参同URL中的请求参数 * @param model 携带数据的Model * @return 视图页面/WEB-INF/jsp/user/update页面 * */ @RequestMapping(value="/{username}/update",method=RequestMethod.GET) public String update(@PathVariable String username, Model model){ System.out.println("获取到传入的参数值为:" + username); model.addAttribute(users.get(username)); return "user/update"; }[/code] 当传递多个参数时 如何设置controller 难道就是设置多个@PathVariable

Springmvc 条件查询 分页的时候,怎么传递查询参数

查询用的action,翻页用的是超链接, 问题:怎么传递查询参数?怎么翻页的时候,查询文本框保存输入查询条件? ``` <form action="upload/search/<%=0%>" > ``` ``` <a href="${pageContext.request.contextPath}/upload/search/<%=pagenow %>"> ```

springmvc 对象属性参数接收不到

user.getSysManager()获取到的是空的? 部分代码如下: bean类: ``` public class SysUser extends BaseForm implements Serializable { private static final long serialVersionUID = 8217046986932721581L; private Long USERID; // 用户ID private String LOGINNAME; // 用户帐号 private String PASSWD; // 密码 private Integer STATUSID; // 状态 private Long ORDERBY; // 排序 private Integer USERTYPE; // 用户类型 private String REMARK; // 备注 private String BEGINTIME; private String ENDTIME; private SysManager sysManager; private String OLDPASSWD; private String CONFIRMPASSWD; ``` action类 ``` /** * 列表分页 */ @RequestMapping(value = "/getTabList") @ResponseBody public PageData getTabList(SysUser user) { System.out.println(user.getSysManager()); SysUser sysUser = this.getSessionUser(); if (sysUser.getUSERTYPE() != 1) { user.setUSERID(sysUser.getUSERID()); } List<SysUser> varList = userService.list(user); return new PageData(user.getTotal(), varList); } ``` 前台 ``` <td>姓名:</td> <td><input type="text" name="sysManager.USERNAME" class="easyui-textbox" style="width: 150px;" /> </td> <td>手机:</td> <td><input type="text" name="sysManager.MOBILE" class="easyui-textbox" style="width: 150px;" /> </td> ```

还是SpringMVC重定向参数的问题

我用的是SpringMVC 4.2.4。 ``` @RequestMapping(value = "/test1", method = RequestMethod.POST) public String test1(@Validated SysUser sysUser, BindingResult result, RedirectAttributes attr) { String url = "redirect:/index.jsp"; try { if (result.hasErrors()) { Map<String, String> errors = buileValidatedMessage(result); System.out.println(errors); attr.addFlashAttribute("errMsg", errors); attr.addFlashAttribute("myinfo", "123456789"); attr.addAttribute("info", 55); } } catch (Exception e) { e.printStackTrace(); } return url; } ``` 页面: ``` <h2>Hello World!</h2> <h3>1.${myinfo}</h3> <h3>2.${errMsg}</h3> <h3>3.${info}</h3> ``` 这样在页面上没有数据输出,但是在页面上获取session信息: ``` <% Enumeration<String> names1 = session.getAttributeNames(); while (names1.hasMoreElements()) { String name = names1.nextElement(); out.println(name + " : " + session.getAttribute(name) + "<br>"); } %> ``` 这样就能看到里面的数据: ``` org.springframework.web.servlet.support.SessionFlashMapManager.FLASH_MAPS : [FlashMap [attributes={errMsg={fdPassword=密码不能空, fdUsername=用户名不能空;用户名长度必须在3~10个字符之间}, myinfo=123456789}, targetRequestPath=/smart/index.jsp, targetRequestParams={info=[55]}]] ``` 我想知道这些数据要怎样才能正常显示出来呢?

springmvc中string字符串中包含多重list数组,转换成bean

``` import java.util.List; public class OrderAndDetail { private String id; private String u_id; private String cl_id; private String order_time; private String pickUp_time; private String finish_time; private String status; private String kind_id; private int order_id; private String totalprice; private int count; private List<OrderDetail> orderDetails; ``` 这是model,现在有string传过来,包含了两组List,求通过map解析并获取的方式

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐