我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java代码实例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java代码实例分析

这篇文章主要介绍“java代码实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java代码实例分析”文章能帮助大家解决问题。

一、几个坑爹代码的目录

这样使用 StringBuffer 的方法有什么坑?

你写过的最长的一行代码有多长???

循环+条件判断,你最多能嵌套几层?

为了后期优化查询速度 ~ 颇有商业头脑!

你是如何被异常玩然后变成玩异常的?

Stream 玩得最 6 的代码,看过的人都惊呆了!

二、坑爹代码 | 这样使用 StringBuffer 的方法有什么坑?

你是否曾经这样使用过 Java 的 StringBuffer 类?

  public class Append {      public static void main(String[] ares){          StringBuffer sb = new StringBuffer();          //这里都能理解          sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><ROOT>");          for (int i = 0; i < 10; i++) {              //为什么到这里就要这样写???既然都用StringBuffer了    (这里省略集合遍历用i代替 意思能懂就行)              sb.append("<NSRXX>" +                      "<NSRSBH>"+i+"</NSRSBH>" +                      "<NSRMC>"+i+"</NSRMC>" +                      "<DJXH>"+i+"</DJXH>" +                      "<ZGSWJ_DM>"+i+"</ZGSWJ_DM>" +                      "<ZGSWJ_MC>"+i+"</ZGSWJ_MC>" +                      "<SJLY>sjzs</SJLY>" +                      "<YWSX_DM>"+i+"</YWSX_DM>" +                      "</NSRXX>");          }          sb.append("</ROOT>");          System.out.println(sb.toString());      }  }

三、坑爹代码 | 你写过的最长的一行代码有多长???

java代码实例分析

你写过的最长的一行代码有多长吗?你为什么要写这么长?是看着帅呢,还是想减少代码行数?

List<OperationPurchaseInfo> purchaseInfoList                  = sheet.getPurchaseInfoList()                  .stream()                  .filter(purchaseInfo -> purchaseInfo.getExteriorOperation()                          .getExteriorPart()                          .getExteriorOperationList()                          .stream()                          .filter(exteriorOperation -> exteriorOperation                                  .getProcessState()                                  .equals(ExteriorOperation.ProcessState.PROCESSING))                          .count() != 0                          // 订单明细中工序对应的工件下的其他工序存在加工中,                          // 且已发给供应商且供应商不是当前订单供应商时,需要判断                          && (purchaseInfo.getExteriorOperation()                          .getExteriorPart()                          .getTeamwork() == null || !purchaseInfo.getExteriorOperation()                          .getExteriorPart().getTeamwork().equals(sheet.getTeamwork()))                  ).collect(Collectors.toList());

上面这段代码虽然被拆开多行显示,但本质上是一行,一个极其复杂的赋值语句!

这种代码是不是为了让别人看不懂来彰显自己的编码水平呢?

小编觉得 Java Stream API 以及各种函数式编程方法,以及各种语法糖在某种程度让这种糟糕代码越来越多!

那么一起来批判一下这个代码,或者你有什么好的解决方案呢?

四、坑爹代码 | 循环+条件判断,你最多能嵌套几层?

for 循环和 if 条件判断语句,必不可少吧。但是你见过最多嵌套的循环和条件判断有几层呢?或者说,你最多能容忍多少层的嵌套呢?

java代码实例分析

我们还是先来看看极端的坑爹代码吧:

// 这个***循环嵌套,只是总循环的一部分。。。我已经绕晕在黄桷湾立交          if (recordList.size() > start) {              for (int i = start; i < end; i++) {                  Map<String, Object> map = recordList.get(i);                  Map<String, Object> field11 = (Map<String, Object>) map.get("field"); //name -> code                  Map<String, Object> record11 = (Map<String, Object>) map.get("record"); // code -> value                  String catagory1 = map.get("categoryId").toString();                  //  查询***种类型对应的其他类型                  SalaryDataVo ss = JSON.parseObject(JSON.toJSONString(map), SalaryDataVo.class);                  Page page3 = salaryManagerService.getAllRecordsByCondition(ss);                  if (page3.getRecords().size() > 0) {                      List<Map<String, Object>> salaryDataVos = page3.getRecords();                      salaryDataVos = this.reSetMap(salaryDataVos, null, null);                      for (Map<String, Object> map2 : salaryDataVos) {                          Map<String, Object> field2 = (Map<String, Object>) map2.get("field");                          Map<String, Object> record2 = (Map<String, Object>) map2.get("record");                          String catagory2 = map2.get("categoryId").toString();                          List<SalaryGroupVO> groupList2 = salaryGroupService.getSalaryGroupsItems(this.getUserCorpId(), catagory2);                          for (SalaryGroupVO cc : groupList2) {                              cc.setCode(cc.getParentId() + cc.getCode());                          }                          //计算                          for (Map.Entry<String, Object> entity : field2.entrySet()) {                              String keyName = entity.getKey();                              for (SalaryGroupVO s2 : groupList2) {                                  if ("bigDecimal".equals(s2.getItemType()) && s2.getCode().equals(field2.get(keyName).toString()) && ("部门" != keyName) && ("姓名" != keyName) && StringUtils.isNotEmpty(s2.getItemType())) {                                      if (field11.containsKey(keyName)) {                                          if (field11.containsKey(keyName)) {                                              String code1 = field11.get(keyName).toString();                                              Double newValue = 0.0;                                              Double oldValue = 0.0;                                              if (!record11.get(code1).toString().matches("^[0-9]*$")) {                                                  oldValue = Double.parseDouble(record11.get(code1).toString());                                                  if (record2.containsKey(entity.getValue().toString()) && (!record2.get(entity.getValue().toString()).toString().matches("^[0-9]*$"))) {                                                      String value2 = record2.get(entity.getValue().toString()).toString();                                                      newValue = Double.parseDouble(value2);                                                  }                                                  record11.remove(field11.get(keyName).toString());                                              }                                              if (code1.startsWith(catagory1) || code1.startsWith(catagory2)) {                                                  String co = code1.replace(catagory1, "hz");                                                  field11.put(keyName, co);                                                  record11.put(co, oldValue + newValue);                                              }                                          }                                      } else {                                          String code = entity.getValue().toString();                                          String str = entity.getValue().toString();                                          Object value2 = record2.get(entity.getValue().toString());                                          if (str.startsWith(catagory1) && str.replace(catagory1, "").startsWith("hz")) {                                              code = str.replace(catagory1, "");                                          } else if (str.startsWith(catagory2) && str.replace(catagory2, "").startsWith("hz")) {                                              code = str.replace(catagory2, "");                                          }                                          field11.put(keyName, code);                                          record11.put(code, value2);                                      }                                  }                              }                          }                      }                  }                  List<SalaryGroupVO> sList = salaryGroupService.getSalaryGroupItemsByParentId(catagory1);                  for (SalaryGroupVO s : sList) {                      if (field11.containsKey(s.getName()) && s.getCode().startsWith("hz")) {                          String k = field11.get(s.getName()).toString();                          field11.put(s.getName(), s.getCode());                          String value = null;                          if (record11.containsKey(k)) {                              value = record11.get(k).toString();                          }                          record11.put(s.getCode(), value);                      }                  }                  resultList.add(map);                  pageInfo.setRecords(resultList);              }          }

五、坑爹代码 | 为了后期优化查询速度 ~ 颇有商业头脑!

什么样的程序员是一个好程序员呢?当我们在给客户开发系统时候,为了后期的优化,预留一些埋点。

通过对这些埋点的优化,可以让客户瞬间感觉系统在运行速度上有质的飞跃,让公司顺利的签署二期开发合同,收取巨额开发费用。

从公司角度来看,这样的程序员就是一个好程序员。 

比如:

java代码实例分析

六、坑爹代码 | 你是如何被异常玩然后变成玩异常的?

玩 Java 的人,刚开始会被各种异常虐,空指针应该是最常见的。多玩两年就开始玩异常,各种奇葩异常玩法层出不穷。

你觉得下面这种异常的定义妥吗?

  public class CommandException extends BaseException {    private static final long serialVersionUID = -6354513454371927970L;    public static CommandException PARAM_NULL= new CommandException("Command_assemble_01", "Parameter is Needed But Empty");    public static CommandException DEVID_NULL = new CommandException("Command_assemble_02", "DevId Cannot Be Null");    public static CommandException MDCODE_NULL = new CommandException("Command_assemble_03", "Model Code Cannot Be Empty");    public static CommandException ORDER_NULL = new CommandException("Command_assemble_04", "Order Cannot Be Empty");    public static CommandException TYPE_NULL = new CommandException("Command_assemble_05", "Upstream / Downstream Type Cannot Be Empty");    public static CommandException MENUID_NULL = new CommandException("Command_assemble_06", "Menu Id Cannot Be Null");    public static CommandException CTRLTYPE_NOT_RANGE= new CommandException("Command_assemble_07", "Ctrltype Cannot Be Recognized, Which is not in Range");    public static CommandException CMD_NULL = new CommandException("Command_analyze_01", "CMD Cannot Be Null");    public static CommandException PAYLOAD_NULL = new CommandException("Command_analyze_02", "Payload Cannot Be Null");    public static CommandException FRAMEWORK_FAILED= new CommandException("Command_analyze_03", "Framework Failed to be Checked");    public static CommandException CHECK_FAILED= new CommandException("Command_analyze_04", "Command Failed to be Checked");    public static CommandException CONFIGURE_NOT_EXIST = new CommandException("Command_error_1001", "Configure is not Exist");    public static CommandException REDIS_ERROR = new CommandException("Command_error_1002", "Cache Command in Redis Error", true);    //省略构造函数、get/set方法  }

如果不妥,有什么问题呢?

七、坑爹代码 | Stream 玩得最 6 的代码,看过的人都惊呆了!

Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。

java代码实例分析

Stream 的用法:

//Stream 用的66的  final EventAction eventAction = redisObj(                  EventActionKey + distributionEventId,                  () -> Optional                          .of(distributionEventId)                          .map(eventId -> {                              final EventActionExample example = new EventActionExample();                              example.createCriteria()                                      .andEventIdEqualTo(eventId)                                      .andTriggerTypeEqualTo(EnumEventTriggerType.DISTRIBUTION_PURCHASE.getCode().byteValue());                              return example;                          })                          .map(eventActionMapper::selectByExample)                          .filter(StringUtil::isNotEmpty)                          .map(e -> e.get(0)).orElseThrow(() -> ExceptionUtil.createParamException("事件触发信息不存在"))                  , EventAction.class);          final AwardConfig awardConfig = redisObj(EventConfigKey + eventAction.getId(),                  () -> Optional.ofNullable(eventAction.getId())                          .map(actionId -> {                              final AwardConfigExample example = new AwardConfigExample();                              example.createCriteria()                                      .andActionIdEqualTo(actionId);                              return example;                          })                          .map(awardConfigMapper::selectByExample)                          .filter(StringUtil::isNotEmpty)                          .map(e -> e.get(0)).orElseThrow(() -> ExceptionUtil.createParamException("xxx")),                  AwardConfig.class          );          Optional.of(req)                  .map(e -> e.clueUid)                  .map(id -> {                      final ClueExample example = new ClueExample();                      example.createCriteria()                              .andClueUidEqualTo(id)                              .andDeletedEqualTo(false)                              .andReceivedEqualTo(false)                              .andCreateTimeGreaterThan(now - cluetime);                      example.setOrderByClause("create_time asc");                      return example;                  })  // 获取该被邀请人所有未过期且未被领取的线索的线索                  .map(clueMapper::selectByExample)                  .filter(StringUtil::isNotEmpty)                  .ifPresent(clues -> {                              final ClueResp clueResp = Optional.of(req)                                      .filter(c -> {                                          c.count = clues.size();                                          return true;                                      })                                      .map(this::awardValue)                                      .orElseThrow(() -> ExceptionUtil.createParamException("参数错误"));                              final Integer specialId = req.getIsHead()                                      ? clues.get(0).getId()                                      : clues.get(clues.size() - 1).getId();                              clues.stream()                                      .peek(clue -> {                                          final AwardConfig awardConfigclone = Optional.of(awardConfig)                                                  .map(JSONUtil::obj2Json)                                                  .map(json -> JSONUtil.json2Obj(json, AwardConfig.class))                                                  .orElseGet(AwardConfig::new);                                          awardConfigclone.setMoney(                                                  Optional.of(clue.getId())                                                          .filter(specialId::equals)                                                          .map(e -> clueResp.specialReward.longValue())                                                          .orElse(clueResp.otherAverageReward.longValue())                                          );                                          eventActionService.assembleAward(                                                  awardConfigclone,                                                  clue.getAdviserUid(),                                                  clue.getAdviserUid(),                                                  clue.getClueUid(),                                                  eventAction,                                                  new PasMessageParam(),                                                  clue.getId(),                                                  AwardRelationType.Clud.code()                                          );                                      })                                      .forEach(clue -> {                                          clue.setOrderNo(req.orderNo);                                          clue.setCommodityName(req.commodityName);                                          clue.setOrderAmount(req.orderAmount);                                          clue.setReceived(true);                                          clue.setModifyTime(now);                                          clueMapper.updateByPrimaryKeySelective(clue);                                      });                          }                  );

关于“java代码实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java代码实例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java代码实例分析

这篇文章主要介绍“java代码实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java代码实例分析”文章能帮助大家解决问题。一、几个坑爹代码的目录1、这样使用 StringBuffer 的方法
2023-06-16

PHP和Java代码实例分析

这篇文章主要介绍“PHP和Java代码实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP和Java代码实例分析”文章能帮助大家解决问题。命名案例1function getGoods($qu
2023-06-16

Java代理模式实例代码分析

今天小编给大家分享一下Java代理模式实例代码分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、动态代理模式动态代理的特
2023-06-29

Java代码编写技巧实例分析

这篇文章主要讲解了“Java代码编写技巧实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java代码编写技巧实例分析”吧!开发工具不知道有多少”老”程序员还在使用 Eclipse,这些
2023-06-30

Java/JavaScript/ABAP代码重构实例分析

本篇内容介绍了“Java/JavaScript/ABAP代码重构实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在方法里引入一个布尔类
2023-06-05

Java的位运算实例代码分析

今天小编给大家分享一下Java的位运算实例代码分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。位运算很久以前学习过位运算,
2023-07-06

Promise实例代码分析

这篇文章主要介绍“Promise实例代码分析”,在日常操作中,相信很多人在Promise实例代码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Promise实例代码分析”的疑惑有所帮助!接下来,请跟着小编
2023-07-05

Python实例代码分析

这篇“Python实例代码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python实例代码分析”文章吧。1.交换两个变
2023-06-27

php实例代码分析

本文小编为大家详细介绍“php实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“php实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。常做的和常想的事情晦涩的if条件1)对于||的处理
2023-06-17

Java责任链模式实例代码分析

本文小编为大家详细介绍“Java责任链模式实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java责任链模式实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。优点1.降低耦合度。它将请求的发送
2023-06-29

Java观察者模式实例代码分析

这篇“Java观察者模式实例代码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java观察者模式实例代码分析”文章吧。优
2023-06-29

Java volatile关键字特性实例代码分析

这篇文章主要讲解了“Java volatile关键字特性实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java volatile关键字特性实例代码分析”吧!一、概述关键字vola
2023-07-04

Java数组代码的示例分析

本篇文章给大家分享的是有关Java数组代码的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。数组分类1. 一维数组1.1 一维数组的定义和初始化1.2 对一维数组的操作,
2023-06-02

Java字节码实例分析

这篇文章主要讲解了“Java字节码实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java字节码实例分析”吧!一:Java字节代码的组织形式类文件{OxCAFEBABE,小版本号,大版
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录