• [技术干货] Java8中的流处理不能使用break,continue等
    流处理中不能使用这些.用了idea会提示转成普通的循环处理
  • 昨天看了下java生态圈的直播,内容通俗易懂,给大家推荐下,想学java的看这里
    目前直播回放正在准备中,后期可以看看,据说鸿蒙系统可以运行java,期待6月鸿蒙推广。想学习java的可以点下方链接报名。【Java编程创造营】零基础入门,夯实Java基础!免费学习还有奖品拿!专属链接分享报名链接:https://developer.huaweicloud.com/signup/8b6b490ea5d74497ae36b5219409746a?invitation=859d6bdacc33437f981b3093f12e13df
  • [认证交流] 微认证之路 华为企业级JAVA编程规范
    ### 名称及链接 [华为企业级JAVA编程规范](https://edu.huaweicloud.com/certifications/9eeea7c524514eb58ebc169186813cf4)   ### 课程章节 1. "JAVA基础语句"编程规范 2. "类的使用"编程规范 3. "异常处理"编程规范   ### 证书 ![wrz-rjkf-zj-javaguifan.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202105/17/172510foafkmku4w5p5yo3.png)   ### 笔记 1. switch 1. 建议要有default分支,除非switch的条件变量是枚举类型 2. 当switch后面表达式的值和case语句后的值相同时,switch结构从该位置开始向下执行,直到遇到break语句或者switch语句块结束 2. if 1. 建议 if-else if 类型的条件判断。最后应包含一个else分支 3. 浮点数 1. 由三部分组成:符号位S、指数部分E(阶码)、尾数部分M 2. Float(32位) 1. S:1位 2. E:8位 3. M:23位 3. double(64位) 1. S:1位 2. E:11位 3. M:52位 4. IEEE二进制浮点数算数标准(IEEE 754) 5. 精确计算:BigDecimal 6. 类型转换 1. 自动类型/隐式类型转换 1. 明确地进行类型转换,不要依赖隐式类型转换 2. 强制类型转换 1. 从存储范围大的类型到存储范围小的类型。该类类型转换很可能存在精度的损失。 7. 使用类名调用静态方法,而不要使用实例来调用 8. 重用名字 1. 覆写(override) 2. 重载(overload) 3. 隐藏(hide) 4. 遮蔽(shadow) 5. 遮掩(obscure) 9. 当一个对象被存储在hash集合中后,不要修改与计算hashcode有关的字段 10. 在强制转换之前,使用instanceof进行判断 11. toArray、System.arraycopy 12. ReentrantLock(重入锁) 13. 防止通过异常泄露敏感信息 1. 敏感信息泄露来源 1. 文本消息 1. 例如 FileNotFoundException 异常会透露文件系统的结构信息 2. 异常类型 1. 通过异常本身的类型,可以得知所请求的文件不存在 2. 解决方法 1. 对敏感的异常消息和敏感的异常类型进行过滤 14. 在finally块中不要使用return、break或continue使finally块非正常结束   ### 备注 1. 感谢老师的教学与课件 2. 欢迎各位同学一起来交流学习心得^_^ 3. 在线课程、沙箱实验、博客和直播,其中包含了许多优质的内容,推荐了解与学习。
  • [全栈开发者] (活动已结束)【Java编程创造营】第一阶段·技术文章征集帖
    为了巩固大家的学习成果,紧跟学习进度请将需要完成的相关技术文章内容按要求回复到本帖下方按要求格式回复即可获得积分累计阶段奖品,还能有机会获得附加幸运奖哦~征集时间2021.05.17-2021.06.30 23:59征集要求1.本学习阶段任意时间内,在【华为云】-【博客】发表与Java相关的任意博客内容,可以是开发技术技巧,可以是开发心得体会,不可以发布课程笔记作为博文,将文章链接回复至本帖内2.文章需为原创,在发布博客时,需要勾选文章创作类型:原创文章一项。用户承诺,发表的文章不存在任何知识产权问题并自行承担全部责任3.文章字数≥600字,图文并茂,不得抄袭网站课程,需写自己的理解和技术分享4.回复格式:华为云ID+博客文章链接5.如果曾在外部博客发表过的文章,可将文章迁移到华为云博客即可6.技术文章由华为技术专家评审,评审通过会对应的积分,不过专家会给出对应的评语且积分为0奖励方式每阶段每篇有效博客文章可获得5积分,每阶段获取上限10分,每阶段评选1篇最佳博文,奖励定制机械键盘~ 》》》限时活动《《《【有奖征文】奔跑吧,JAVA!-- 26周年特别策划今年五月,编程语言—JAVA迎来了自己的第26个生日。华为云社区特举办 Java主题征文活动,来庆祝这个属于技术的节日参与征文活动将会有机会获得精美礼品,优秀的文章还将被汇编成册,提供实践参考。报名【Java编程创造营】并参与此有奖征文活动将会获得额外积分加分发表文章+5分/篇(上限20分),TOP20文章 +10分/篇(上限20分)参与本次征文活动后,将参与活动的文章链接私信给小助手视为参与成功,活动时间与征文时间同步。征文活动参与详情请见:https://bbs.huaweicloud.com/blogs/265241如果文章同时参加了征文比赛在回复中备注(已参赛)全系列活动奖励本次活动不仅免费跟大牛学习技术,更有积分大礼等着大家~每次有效提交的学习任务都会得到对应积分,赢取智能硬件,还有华为无线耳机、机械键盘等你拿!点击了解Java编程创造营专属福利活动注意事项1. 学习任务提交后,小助手会在本阶段学习周期内,按序完成审核,并增加活动积分;2. 本次活动通过完成客观题打卡任务,可获得的积分上限为5分/每篇;3. 请务必按照上述要求提交内容,以免影响积分增加;4. 若积分值相同则以完成学习任务的时间先后排序,其中任务完成时间的判定优先级为:相关微认证>阶段沙箱实验>每周学习笔记>问答官排位赛>每章随堂测验打卡5. 其他积分获取方式请查看活动社群公告。想了解更多关于课程内容请移步主帖:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=125761
  • [全栈开发者] (活动已结束)【Java编程创造营】第一阶段·每周学习笔记分享打卡贴
    为了巩固大家的学习成果,紧跟学习进度请按需要完成的每周读书笔记内容按要求回复到本帖下方按要求格式回复即可获得积分累计阶段奖品,还能有机会获得附加幸运奖哦~打卡时间2021.05.17-2021.06.30 23:59打卡要求在本帖中,回复每周读书笔记和心得 ↓回复格式:华为云ID+第几周笔记+笔记内容,并分享些读书心得(字数≥200字)回复示例如下:奖励方式每周每次有效打卡可获得2积分阶段学习将以积分排行榜的形式,对符合条件的小伙伴进行奖励!点击了解Java编程创造营专属福利活动注意事项 由于本帖回复内容为随堂测试结果,已设置回帖仅版主可见1. 学习任务提交后,小助手会在本阶段学习周期内,按序完成审核,并增加活动积分;2. 本次活动通过完成提交学习笔记任务,可获得的积分上限为2分/每周;3. 请务必按照上述要求提交内容,以免影响积分增加;4. 若积分值相同则以完成学习任务的时间先后排序,其中任务完成时间的判定优先级为:相关微认证>阶段沙箱实验>每周学习笔记>问答官排位赛>每章随堂测验打卡5. 其他积分获取方式请查看活动社群公告。想了解更多关于课程内容请移步主帖:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=125761
  • [全栈开发者] (活动已结束)【Java编程创造营】第一阶段·问答官排位赛活动帖
    【Java编程创造营】第一阶段正在进行中为了巩固大家的学习成果,紧跟学习进度为大家提供学习交流的平台,推出问答官排位赛活动按要求格式回复即可获得积分累计阶段奖品,还能有机会获得附加幸运奖哦打卡时间2021.05.17-2021.06.30 23:59  参与方式:用户在本帖里发布自己在Java学习中产生的疑惑或实践问题,其他用户可通过在楼层下评论参与回答。  参与规则:1. 同一ID不可自问自答;2. 同一ID可回复其他同一ID问题数量需≤3次,如,A最多可回答B的三个问题,但A可回答B、C、D、E、F等多人次问题。3. 每个人最多可发布10个有效问题,不可重复,不可灌水。4. 每个ID回答次数不设上限,但是否被采纳要依据专家评审后的结果。  活动奖励:◎每个有效提问可获得5积分。上限为2个问题,最高10分。◎每个有效回答可获得2积分,上限为2个回答,最高4分。不得灌水,不得与他人显示,问题具有意义,占楼无效。有效提问示例:无效提问示例:◎最终会全部每阶段参与互动的用户中,抽取3位幸运用户,送出旅行本套装*1活动奖励点击了解Java编程创造营专属福利活动注意事项1. 学习任务提交后,小助手会在本阶段学习周期内,按序完成审核,并增加活动积分;2. 本次活动通过完成提交问答官问题,可获得的积分上限为5积分/每有效问题(最高10分)2积分/每有答复(最高4分);3. 请务必按照上述要求提交内容,以免影响积分增加;4. 若积分值相同则以完成学习任务的时间先后排序,其中任务完成时间的判定优先级为:相关微认证>阶段沙箱实验>问答官排位赛>每章随堂测验打卡5. 其他积分获取方式请查看活动社群公告。想了解更多关于课程内容请移步主帖:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=125761&page=1&extra=#pid1161471
  • [全栈开发者] (活动已结束)【Java编程创造营】第一阶段·每章随堂测验打卡帖
    【Java编程创造营】第一阶段正在进行中为了巩固大家的学习成果,紧跟学习进度请将需要完成的每章随堂测验内容按要求回复到本帖下方按要求格式回复即可获得积分累计阶段奖品,还能有机会获得附加幸运奖哦~打卡时间2021.05.17-2021.06.30 23:59打卡要求在本帖中,回复对应章节的随堂测验并提交截图 ↓回复格式:自己的华为云ID+课堂章节序号+课程完成截图(露出右上角华为云ID,随堂测验为绿色对勾完成状态)回复示例:华为云帐号:grandmaster+第一章 测试题截图奖励方式每章节每次有效打卡可获得2积分阶段学习将以积分排行榜的形式,对符合条件的小伙伴进行奖励!附加福利:每周在本周内提交随堂测试的用户中,抽取1名幸运奖励华为云定制鼠标*1点击了解Java编程创造营专属福利活动注意事项 由于本帖回复内容为随堂测试结果,已设置回帖仅版主可见1. 学习任务提交后,小助手会在本阶段学习周期内,按序完成审核,并增加活动积分;2. 本次活动通过完成每章习题打卡任务,可获得的积分上限为2分/每章节;3. 请务必按照上述要求提交内容,以免影响积分增加;4. 若积分值相同则以完成学习任务的时间先后排序,其中任务完成时间的判定优先级为:相关微认证>阶段沙箱实验>每周学习笔记>问答官排位赛>每章随堂测验打卡5. 其他积分获取方式请查看活动社群公告。想了解更多关于课程内容请移步主帖:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=125761
  • [全栈开发者] Java课程
    【Java编程创造营】已上线报名现已开启>>>>>>>点击此处了解详情当然我们一定不会只有学习课程这么简单我们准备了“带着好友一起学习,一起进步,一起“赢好礼”的超大惊喜01. 活动详情 -邀请活动时间:即日起至全阶段课程更新结束止-邀请行为:本人成功报名后,点击分享有礼,选择一种方式邀请好友成功报名即可。具体操作流程如下:步骤一:邀请人成功报名Java编程创造营后(点击去报名),点击图示中的“分享有礼”按钮步骤二:通过生成的专属链接/邀请二维码,即可邀请好友报名活动三、有效邀请的定义(邀请的好友):所有被邀请人员需满足以下条件才可算成功邀请,纳入奖励数量:1.拥有华为云账号,并完成实名认证2.邀请人与被邀请人在参与过程中有学习任务打卡动作3.邀请人需在课程全阶段学习积分榜前200名内4.分享链接需回复到本帖评论区以上条件缺一不可不要忘记的PS:参与邀请活动需自己先实名 活动结束后将统计最终排名及获奖结果,如核查发现存在邀请账号为机器注册账号或无效账号将取消此部分邀请数据。如出现邀请人数并列的情况,按最先达成人数的时间优先排名。02.奖励等级及奖品◎分享邀请人数第1名(通过邀请链接报名≥300人)( 人数相同时,以最先到达的为准)华为 FreeLace Pro 无线耳机◎分享邀请人数第2-3名(通过邀请链接报名≥100人)( 人数相同时,以最先到达的为准)JBL音乐金砖◎分享邀请人数第4-10名(通过邀请链接报名≥60人)( 人数相同时,以最先到达的为准)定制双肩包◎分享邀请人数第11-30名(通过邀请链接报名≥30人)( 人数相同时,以最先到达的为准)无线鼠标◎所有邀请人和被邀请人报名参与活动,即可获得 100 码豆数量和名额都很有限,先到先得!谁快谁先享豪礼哦~抓紧动起来!03. 活动说明   1) 参与“邀友一起学”活动的用户需进行课程报名与学习,参与学习任务打卡,并在课程学习积分榜前200名内;   2) 本次邀请活动为Java编程创造营全阶段期间活动,全阶段结束后会在20个工作日内结算并发布,发放时间根据实际情况动态调整,如有延期敬请见谅;   3)奖励标准优先判断奖励限制是否达成,同一奖励标准内再计算排名,并按照实际达到的邀请人数发放对应奖励。   4) 活动结束后将统计最终排名及获奖结果,如核查发现存在邀请账号为机器注册账号或无效账号将取消此部分邀请数据。如出现邀请人数并列的情况,按最先达成人数的时间优先排名。04. 活动注意事项·   活动从即日起至全阶段课程更新结束止,此外时间内邀请人数不算有效邀请·   专属链接/二维码禁止在本期课程学习群内露出,如发现群内露出将取消活动邀请资格·   参与活动需获取专属链接,专属链接需大家按照上述活动步骤自行获取,然后在本帖下方回复您的链接,否则视为放弃获奖资格!·   活动结束后10个工作日内公布详细结果,公示期5个工作日,公示期结束开始兑奖·   请勿使用论坛私聊或类似功能骚扰其它华为云用户,违者直接取消活动资格·   如遇奖品库存不足会进行同价位奖品调换,介意者谨慎参与活动·   如发现使用他人身份恶意重复报名活动,或采取机器批量注册/虚拟手机号注册/购买账号等恶意注册行为进行违规行为,华为云社区有权取消相应人员的活动参与权利,并收回相关奖励·   本次活动所有回帖内容需满足华为云论坛发帖规范:https://bbs.huaweicloud.com/forum/thread-23077-1-1.html·   本活动规则由华为云在法律规定范围内进行解释。华为云保留不时更新、修改或删除本活动规则的权利。
  • [技术干货] Java发送邮箱验证码、session校验功能
    1、引入的jar包是mail-1.4.jar2、java底层发送邮箱方法12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849public boolean sendEMail(Map<String, Object> map) {    log.info("電子郵件接口執行開始!");    String from = Cache.getInstance().getParamsConstant.EMAIL_FROM);    String pwd = Cache.getInstance().getParams(Constant.EMAIL_PWD);    String to = String.valueOf(map.get("mail"));    String subject = String.valueOf(map.get("subject"));    String content = String.valueOf(map.get("content"));    String smtpHost = Cache.getInstance().getParams(Constant.EMAIL_SMTPHOST);    if(StringUtils.isBlank(to) || StringUtils.isBlank(subject) || StringUtils.isBlank(content)){      log.info("郵件地址("+to+")、主題("+subject+")、內容("+content+")有為空項,不符合發送條件");      return false;    }    try{       Properties props = new Properties();       props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)       props.setProperty("mail.smtp.host", smtpHost); // 发件人的邮箱的 SMTP服务器地址       props.setProperty("mail.smtp.auth", "true"); // 请求认证,参数名称与具体实现有关       // 创建Session实例对象       Session session = Session.getDefaultInstance(props);       // 创建MimeMessage实例对象       MimeMessage message = new MimeMessage(session);       // 设置发件人       message.setFrom(new InternetAddress(from));       // 设置收件人       message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));       // 设置发送日期       message.setSentDate(new Date());       // 设置邮件主题       message.setSubject(subject);       // 设置纯文本内容的邮件正文       message.setText(content);       // 保存并生成最终的邮件内容       message.saveChanges();       // 设置为debug模式, 可以查看详细的发送 log       session.setDebug(true);       // 获取Transport对象       Transport transport = session.getTransport("smtp");       // 第2个参数需要填写的是QQ邮箱的SMTP的授权码,什么是授权码,它又是如何设置?       transport.connect(from, pwd);       // 发送,message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人       transport.sendMessage(message, message.getAllRecipients());       transport.close();    }catch(Exception e){      log.error(e.getMessage(), e);      return false;    }    log.info("電子郵件接口執行完成,執行成功!");    return true;  }3、java业务逻辑层调用发送邮箱、验证码加密存储在session中1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374@RequestMapping("/sendEMail.do")  public void sendEMail(HttpServletRequest request, HttpServletResponse response) {    String json = "{\"success\":false,\"message\":\"操作失败\",\"returnVal\":\"\"}";    boolean res = false;//发送邮件标记     Map<String, Object> map = new HashMap<String, Object>();    try {      String username = request.getParameter("username");      User user = this.userService.findUserByLoginname(username);      if(null == user){        json = "{\"success\":false,\"message\":\"无此人员\",\"returnVal\":\"\"}";        return;      }      //获取当前绑定邮箱地址      String mail = user.getEmail();      //验证邮箱地址      if(StringUtils.isBlank(mail) || "null".equals(mail)){        json = "{\"success\":false,\"message\":\"当前用户尚未绑定邮箱\",\"returnVal\":\"\"}";        return;      }      //生成验证码      String checkcode = Common.getCode();      //发送验证码      String _debug = Cache.getInstance().getParams(Constant.UIAS_DEBUG);      if("1".equals(_debug)){//调试模式 不真发送 直接回显        map.put("checkcode", checkcode);        res = true;      }else{//非调试模式 真实发送邮件        //验证是否频繁发送验证码请求  单位 秒        String intervalTime = Cache.getInstance().getParams(Constant.EMAIL_INTERVAL_TIME);        Object emailTimeFlag = request.getSession().getAttribute("emailTimeFlag");        boolean checkTime = true;        if (emailTimeFlag != null) {          int miao = (int) (((new Date()).getTime() - (Long) emailTimeFlag) / 1000);          if (miao <= Integer.parseInt(intervalTime)) {            checkTime=false;          }         }         if(checkTime){          //组装数据          String email_validity = Cache.getInstance().getParams(Constant.EMAIL_VALIDITY);          String vartime= String.valueOf((Integer.parseInt(email_validity)/60000));          String content = Cache.getInstance().getParams(Constant.EMAIL_CONTENT);          String subject = Cache.getInstance().getParams(Constant.EMAIL_SUBJECT);          content = content.replaceAll("\\$code", checkcode);          content = content.replaceAll("\\$time",vartime);          map.put("mail", mail);          map.put("subject", subject);          map.put("content", content);          //调用发送          res = ieMailService.sendEMail(map);        }else{          json = "{\"success\":false,\"message\":\"请耐心等待,不要频繁发送验证码申请\",\"returnVal\":\"\"}";          return;        }      }      //发送成功后续操作      if(res){        //把验证时间放在session里        request.getSession().setAttribute("emailTimeFlag", new Date().getTime());        //把验证码放在session里  md5 2次加密验证码        String codeMd5 = DigestUtils.md5Hex((DigestUtils.md5Hex(checkcode).toLowerCase()));        request.getSession().setAttribute("emailCodeFlag", codeMd5);        if("1".equals(_debug)){          json = "{\"success\":true,\"message\":\"邮箱验证码发送成功,已经待填到验证码框!\",\"returnVal\":\"\",\"checkcode\":\""+checkcode+"\"}";        }else{          json = "{\"success\":true,\"message\":\"邮箱验证码发送成功,请查收邮件!\",\"returnVal\":\"\"}";        }      }    } catch (Exception e) {      logger.error("发送邮件验证码异常", e);    }finally{      renderHtml(response, json, "encoding:UTF-8");    }  } 4、java验证邮箱,比对session中的验证码和提交上来的验证码12345678910111213141516171819202122232425262728293031@RequestMapping("/check.do")  public void check(HttpServletRequest request, HttpServletResponse response) {    String json = "{\"success\":false,\"message\":\"操作失败\",\"returnVal\":\"\"}";    try {      //验证码有效期校验      String email_validity = Cache.getInstance().getParams(Constant.EMAIL_VALIDITY);      Object emailTimeFlag = request.getSession().getAttribute("emailTimeFlag");      if (emailTimeFlag != null) {        int miao = (int) (((new Date()).getTime() - (Long) emailTimeFlag) / 1000);        if (miao >= Integer.parseInt(email_validity)) {          json = "{\"success\":false,\"message\":\"验证码已过有效期,请重新获取!\",\"returnVal\":\"\"}";        }else{          //在有效期内 比对验证码准确性          String checkcode = request.getParameter("checkcode");          // md5 2次加密验证码          String codeMd5 = DigestUtils.md5Hex((DigestUtils.md5Hex(checkcode).toLowerCase()));          Object emailCodeFlag = request.getSession().getAttribute("emailCodeFlag");          boolean res = codeMd5.equals(String.valueOf(emailCodeFlag));          if(res){            json = "{\"success\":true,\"message\":\"验证码通过!\",\"returnVal\":\"\"}";          }else{            json = "{\"success\":false,\"message\":\"验证码不匹配,请重新核对!\",\"returnVal\":\"\"}";          }        }      }     } catch (Exception e) {      logger.error("验证码异常", e);    }finally{      renderHtml(response, json, "encoding:UTF-8");    }  }5、小插曲,java处理要展示到页面的邮箱和手机号加*号隐藏的正则表达式1234// 括号表示组,被替换的部分$n表示第n组的内容        mail = mail.replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?)", "$1****$3$4");// 括号表示组,被替换的部分$n表示第n组的内容        phone = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");6、HTML 获取验证码按钮                 1<input id="btnMail" type="button" onclick="start_mail_button();" value="获取邮件验证码" />7、js 函数调用  按钮60秒倒计时1234567891011121314151617181920212223242526272829303132333435363738//获取邮箱验证码function start_mail_button(){  var username = $('#username').val().trim();//用戶名  if('' == username){    ErrorMsg("请输入用户名");    return;  }  $.ajax({    url: basePath+'/sendEMail.do',type: 'post',dataType: 'json',    data: {username: username},    success: function(data){      if(data.success){        SuccMsg(data.message);        //页面获取验证码按钮样式处理         $("#btnMail").attr('disabled','disabled');         var count = 1 ;         var sum = 60;         var i = setInterval(function(){          if(count > 60){           $("#btnMail").attr('disabled',false);           $("#btnMail").val("获取邮箱验证码");           clearInterval(i);          }else{           $("#btnMail").val("剩余"+parseInt(sum - count)+'秒');          }          count++;         },1000);         //debug模式待填         if(data.checkcode){           $("#checkcode").val(data.checkcode);         }      }else{        ErrorMsg("获取失败!"+data.message);      }    }  });   }8、提交验证码的js没什么特别的,就不上代码了。
  • [问题求助] 求 mqtt 怎么对接华为云IoT 示例代码(java)
    求 mqtt 怎么对接华为云IoT  示例代码(java)
  • [全栈开发者] 【Java编程创造营】零基础入门,夯实Java基础!免费学习还有奖品拿!
    使用简单、编程简洁,让Java成为常年“霸榜”的编程语言随着5G时代的到来,越来越多的行业也更需要Java程序员,上升空间更大,未来发展前景广阔。华为云推出【Java编程创造营】零基础入门,夯实Java基础免费学习!完成学习任务还可以获得华为云认证!还有更过精彩好礼等你拿! 01.活动介绍&适合人群 ▶课程时间:第一阶段:2021年5月10日-2021年6月30日  》第一阶段最终积分排行榜和最终考核成绩公示《第二阶段:2021年7月05日-2021年8月20日  》第二阶段最终积分排行榜和最终考核成绩公示《第三阶段:2021年9月6日-2021年10月24日  》第三阶段最终积分排行榜和最终考核成绩公示《▶适合人群:高校开发者、想学习Java的零基础开发者▶课程亮点:亮点1:为了让大家拥有更专业的指导,特意邀请了华为金牌讲师金牌讲师授课,丰富开发经验,直播点评+论坛/社群答疑,专家引导少走弯路亮点2:沙箱实验+华为官方微认证加持,学习实践相结合报名课程即可获得沙箱实验&华为云官方微认证机会,官方微认证加持更具权威!亮点3:和好友一起学习,得“豪”豪礼,一起进步还有奖品邀请好友一起报名学习本次课程,就有机会得到实物奖品!一起学习,共享成果!亮点4:现在报名就送码豆,打卡即有无线耳机等实物奖励免费报名!免费报名!免费报名!数量有限,先到先得!现在完成课程报名送100码豆,码豆数量有限先到先得完成对应学习任务,累计排名达标也有奖品哦~ 02.活动参与流程 ▶报名活动&课程列表:- 活动报名入口(报名活动才能参加积分排名):   点此报名- 课程入口:- 阶段一:Java编程基础课程:点此学习- 阶段二:Java面向对象编程:点此学习- 阶段三:Java高级实战编程:点此学习▶加入学习社群:有小助手随时随地更新最新课程/学习动态,有同类别的开发者一起分享学习心得和排忧解惑,更有华为云专家不定时空降和大家聊聊课程最IN进度!你还不来么?扫描下方二维码,回复:Java+姓名,加入学习群吧~ 03.课程安排&学习任务  一、阶段三课程安排:》第三阶段最终积分排行榜和最终考核成绩公示《二、学习任务&附加奖励:序号阶段任务详情活动积分奖励附加奖励提交入口1每章随堂测试任务完成方式:在随堂测试打卡帖中,回复对应章节的随堂    回复格式:华为云ID+截图(露出右上角华为云ID,且有效回复次数≥1)2分 /每有效打卡/每章节在提交随堂测试的用户中,抽取1名幸运奖励华为云定制鼠标*1点击前往2每周学习笔记分享任务完成方式:在学习笔记征集帖中,回复本周课程内容的学习笔记    回复格式:华为云ID+笔记内容(字数≥200字)2分 /每有效打卡/每周在本提交学习笔记的用户中,抽取1名幸运奖励华为云定制鼠标*1敬请期待点击前往3相关文章征集任务完成方式:本学习阶段任意时间内,在“华为云-博客”,发表与学习内容相关的任意原创博客内容,将文章链接回复到指定帖内    回复格式:华为云ID+博客文章链接(字数≥600字)5积分 /每篇有效心得/每阶段 最高10/每阶段每阶段选取1篇最佳博文,奖励机械键盘*1点击前往4问答官排位赛任务完成方式:用户可在相关活动帖中发布自己学习中的疑惑或实践问题,其他用户可参与回答。由专家评审,同一问题下确定一名最佳答案。回复格式:华为云ID+提问的问题/解答答案5积分/每有效问题(最高10分)2积分/每有答复(最高4分)最终会全部每阶段参与互动的用户中,抽取3位幸运奖奖励华为云定制鼠标*1点击前往5完成阶段沙箱实验完成规定的沙箱实验20分/ 沙箱实验/点击前往6完成相关微认证完成规定的微认证并获得微认证证书30分/认证/点击前往03.活动奖励本次活动不仅免费跟大牛学习技术,更有积分大礼等着大家~每次有效提交的学习任务都会得到对应积分,赢取智能硬件,还有华为无线耳机、机械键盘等你拿~(以下奖励获取需满足积分≥30分)点击了解Java编程创造营专属福利 04.活动注意事项 ○所有活动奖品将在活动结束后将进行奖项公式公示后15个工作日内完成发放;○活动奖品颜色、型号随机,且部分奖品数量有限发完即止,,若有缺货或其他情况将替换为同价值的其他奖品;○本次活动回帖内容需满足华为云论坛发帖规范:https://bbs.huaweicloud.com/forum/thread-23077-1-1.html○码豆奖励活动规则:1)码豆可在DevCloud会员中心兑换实物礼品;2)码豆奖励将于活动结束后的3个工作日内充值到账,请到会员中心的“查看明细”中查看到账情况;3)码豆只能用于会员中心的礼品兑换,不得转让,具体规则请到会员中心阅读“码豆规则”;4)为保证码豆成功发放,请先登录一次会员中心。会员中心入口:https://devcloud.huaweicloud.com/bonususer/home○活动期间请勿更改昵称、华为云ID等信息,如出现无法发放码豆的情况视为自愿放弃。
  • [技术干货] Java中对象操作流
    ObjectOutputStream构造方法ObjectOutputStream(OutputStream out)创建一个写入指定的OutputStream的ObjectOutputStream对象成员方法void writeObject(Object obj)将指定的对象写入ObjectOutputStream示例代码import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;public class ObjectOutputStreamTest1 {    public static void main(String[] args) throws IOException {        User user1 = new User("tangsan","123456");        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("io-practice\\user1.txt"));                oos.writeObject(user1);        oos.close();    }}ObjectInputStream构造方法ObjectInputStream(InputStream in)创建从指定的InputStream读取的ObjectInputStream成员方法Object readObject()从ObjectInputStream读取一个对象示例代码import java.io.FileInputStream;import java.io.IOException;import java.io.ObjectInputStream;public class ObjectInputStreamTest1 {    public static void main(String[] args) throws IOException, ClassNotFoundException {        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("io-practice\\user1.txt"));        //此处ois读取出来的数据是Object类型的,需要强转为User类型        User user1 = (User) ois.readObject();        //System.out.println(user1.toString());        System.out.println(user1);        ois.close();    }}
  • [技术干货] 【LeetCode】07 整数反转(java)
    给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。代码:/**     * 07 整数反转     * 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。     * 如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0。     * 假设环境不允许存储 64 位整数(有符号或无符号)。     * 输入:x = 123     * 输出:321     */    @Test    public void test7(){        System.out.println(reverse(1534236469));    }    public int reverse(int x) {        //注意捕获异常        if(x>0){            StringBuffer s=new StringBuffer(String.valueOf(x));            s = s.reverse();            try {                return Integer.parseInt(String.valueOf(s));            } catch (NumberFormatException e) {                return 0;            }        }        if(x<0){            StringBuffer s=new StringBuffer(String.valueOf((0-x)));            s =s.reverse();            try {                return (0-Integer.parseInt(String.valueOf(s)));            } catch (NumberFormatException e) {                return 0;            }        }        return x;    }
  • [技术干货] java之 io流
                               第10课 I/O流================================================简介:       流是程序与外部进行数据交换的通道。       输入流,程序从程序外部读取数据的通道,流的指向称为源。                       源可以是文件、输入设备、网络端口、一块内存。       输出流,程序把程序中的数据写到外部的通道,流的指向称为目的地。                        目的地可以是文件、输出设备、网络端口、一块内存。       通道中传输数据的基本单位:字节、字符。        字节流,通道中传输数据的基本单位是字节。        字符流,通道中传输数据的基本单位是字符。        流相关的接口、类都在java.io包中。------------------------------------------------------------------------------流分类-------------------------------------------------------------------------------------字节流        字节输入流  InputStream                     public abstract int read() throws java.io.IOException;                     public int read(byte[]) throws java.io.IOException;                     public int read(byte[], int, int) throws java.io.IOException;                     public void close() throws java.io.IOException;         字节输出流 OutputStream                     public abstract void write(int) throws java.io.IOException;                     public void write(byte[]) throws java.io.IOException;                     public void write(byte[], int, int) throws java.io.IOException;                     public void flush() throws java.io.IOException;                     public void close() throws java.io.IOException;字符流        字符输入流  Reader                   public int read() throws java.io.IOException;                   public int read(char[]) throws java.io.IOException;                   public abstract int read(char[], int, int) throws java.io.IOException;                   public long skip(long) throws java.io.IOException;                   public abstract void close() throws java.io.IOException;       字符输出流 Writer                  public void write(int) throws java.io.IOException;                  public void write(char[]) throws java.io.IOException;                  public abstract void write(char[], int, int) throws java.io.IOException;                  public abstract void flush() throws java.io.IOException;                  public abstract void close() throws java.io.IOException;具体的流四上面4个流的子类或子孙类。-------------------------------------------------------------------------------------File类=============================================简介:        File类描述了文件、文件夹。        File类没有对文件的读写方法。-------------------------------------------------------------------------------构造方法  public java.io.File(java.lang.String pathname);          public java.io.File(java.lang.String dir, java.lang.String filename);  public java.io.File(java.io.File dir, java.lang.String filename);------------------------------------------------------------------------实例方法:public String getName() 获取文件的名字。public boolean canRead() 判断文件是否是可读的。public boolean canWrite() 判断文件是否可被写入。public boolean exits() 判断文件是否存在。public long length() 获取文件的长度(单位是字节)。public String getAbsolutePath() 获取文件的绝对路径。public String getParent() 获取文件的父目录。public boolean isFile() 判断文件是否是一个普通文件,而不是目录。public boolean isDirectroy() 判断文件是否是一个目录。public boolean isHidden() 判断文件是否是隐藏文件。public long lastModified() 获取文件最后修改的时间。  public java.lang.String[] list();  public java.lang.String[] list(java.io.FilenameFilter);  public java.io.File[] listFiles();  public java.io.File[] listFiles(java.io.FilenameFilter);  public java.io.File[] listFiles(java.io.FileFilter);-------------过滤器接口------------------public interface java.io.FileFilter {  public abstract boolean accept(java.io.File);}public interface java.io.FilenameFilter {  public abstract boolean accept(java.io.File, java.lang.String);}----------------------------------------------------------------------------------------------文件流============================================文件字节流     FileInputStream    文件字节流可以调用从父类继承的read方法顺序地读取文件,只要不关闭流,每次调用read方法就顺序地读取文件中的其余内容,直到文件的末尾或文件字节输入流被关闭。int read() 读取单个字节的数据,返回字节值(0~255整数),如果未读出字节就返回-1。int read(byte b[]) 读取b.length个字节到字节数组b中,返回实际读取的字节数。如果到达文件的末尾,则返回-1。int read(byte b[], int off, int len) 读取len个字节到字节数组b中,并返回实际读取的字节数目。如果到达文件的末尾,则返回-1,参数off指定从字节数组的某个位置开始存放读取的数据。        FileOutputStream   输出流的wirie方法以字节单位向目的地写数据。FileOutputStream流顺序地写文件,只要不关闭流,每次调用write方法就顺序地向目的地写入内容,直到流被关闭。    void write(int n) 向目的地写入单个字节。   void write(byte b[]) 向目的地写入一个字节数组。   void write(byte b[],int off,int len) 从字节数组中偏移量off处取len个字节写到目的地。文件字符流    FileReader    FileWriter缓冲流=============================================缓冲字符流BufferedReaderBufferedWriter**掌握流的套接文件随机读写流=============================================使用RandomAccessFile类来创建一个随机访问文件流。RandomAccessFile类创建的流的指向既可以作为源也可以作为目的地。     构造方法:RandomAccessFile(String name,String mode) ; RandomAccessFile(File file,String mode) ;相关方法:seek(long a)  定位RandomAccessFile流的读写位置 getFilePointer() 获取流的当前读写位置   public native long getFilePointer() throws java.io.IOException;  public void seek(long) throws java.io.IOException;  public final boolean readBoolean() throws java.io.IOException;  public final byte readByte() throws java.io.IOException;  public final short readShort() throws java.io.IOException;  public final char readChar() throws java.io.IOException;  public final int readInt() throws java.io.IOException;  public final long readLong() throws java.io.IOException;  public final float readFloat() throws java.io.IOException;  public final double readDouble() throws java.io.IOException;  public final java.lang.String readLine() throws java.io.IOException;  public final void writeBoolean(boolean) throws java.io.IOException;  public final void writeByte(int) throws java.io.IOException;  public final void writeShort(int) throws java.io.IOException;  public final void writeChar(int) throws java.io.IOException;  public final void writeInt(int) throws java.io.IOException;  public final void writeLong(long) throws java.io.IOException;  public final void writeFloat(float) throws java.io.IOException;  public final void writeDouble(double) throws java.io.IOException;
  • [技术干货] javaGUI之对话框
                               第09课 GUI-对话框================================================简介:        JDialog类创建的对话框必须要依赖于某个窗口。       对话框分为无模式和有模式两种。            有模式的对话框:当这个对话框处于激活状态时,只让程序响应对话框内部的事件,                                           而且将堵塞其它线程的执行,用户不能再激活对话框所在程序中的其它窗口,直到该对话框消失不可见。           无模式对话框:当这个对话框处于激活状态时,能再激活其它窗口,也不堵塞其它线程的执行。 ------------------------------------------------------------------------------消息对话框----------------------------------------------javax.swing包中的JOptionPane类的静态方法:    public static void showMessageDialog(                       Component parentComponent,                       String message,                       String title,                       int messageType)------------------------------------------------------------输入对话框-------------------------------------------可以用javax.swing包中的JOptionPane类的静态方法:  public static  String showInputDialog(Component parentComponent,                                      Object message,                                      String title,                                      int messageType)-----------------------------------------------------------------------------------------确认对话框---------------------------------------------------------------------可以用javax.swing包中的JOptionPane类的静态方法:public static int showConfirmDialog(Component parentComponent,                                    Object message,                                    String title,                                    int optionType)------------------------------------------------------------颜色对话框-----------------------------------------------------------------------------可以用javax.swing包中的JColorChooser类的静态方法:                        public static Color showDialog(Component component,                                                String title,                                        Color initialColor)----------------------------------------------------------------------------------------------------自定义对话框--------------------------------------------------------------------------创建对话框与创建窗口类似,通过建立JDialog的子类来建立一个对话框类,然后这个类的一个实例,即这个子类创建的一个对象,就是一个对话框。对话框是一个容器,它的默认布局是BorderLayout,对话框可以添加组件,实现与用户的交互操作。 ---------------------------------------------------------------------------构造对话框的2个常用构造方法JDialog() 构造一个无标题的初始不可见的对话框,对话框依赖一个默认的不可见的窗口,该窗口由Java运行环境提供。JDialog(JFrame owner) 构造一个无标题的初始不可见的无模式的对话框,owner是对话框所依赖的窗口,如果owner取null,对话框依赖一个默认的不可见的窗口,该窗口由Java运行环境提供。
总条数:2294 到第 页
上滑加载中