zoukankan      html  css  js  c++  java
  • java开发3个月总结

    java后端3个月工作总结

    引言

    ​ 大三开始来实习 距今已经三个月了 眼看这个项目要做完了 这篇文章对此次后端开发经历的总结 也希望对想要进入码农这个行业的各位有一点学习思路把~

    ​ 三个月的时间非常感谢在工作中对我有指导的各位同事

    再次感谢

    java语法

    java纯是一门面向对象的编程语言,一提起面向对象,都知道抽象、封装、继承、和多态。但是在实际工作中体现在哪里外行人就不好说了...

    • 多态:说一个 最常见的 @Override 重写

      什么是重写? 得讲讲继承 既然讲继承 也得讲讲封装,封装都讲了,再提一嘴抽象吧...

      我觉得这就是java中面向对象编程的精华所在。耦合...我也不知道自己说的对不对,算我个人理解吧。

      耦合太强 这是在项目中绝对不能的,太过于耦合 一步错 整个程序都不能run起来 那是不行的

      一定要解耦...

      要让我解释面向对象 百度比我解释的好...

    • 集合:List,set,map

      我在学校就学过List集合 剩下这个两个集合是我在工作中学会的

      List的顺序性(封装的方法)

      增加元素:在线性表中指定位置插入指定元素

      删除元素:删除线性表中指定位置的元素

      修改元素:修改线性表中指定位置的元素

      查找元素:返回指定元素在线性表中的位置

      遍历元素:依次访问线性表中每个元素

      set的无重复(可有序,但不能重复,没有下标概念)

      LinkedHashSet:使用链表实现,元素的顺序和放入的顺序一致

      HsahSet:使用数组实现,元素的顺序和放入的顺序无关

      List与set都是继承于****Collection接口

      Map的键值对

      键对象(key):不能重复

      值对象(value):可以重复

      HashMap:无序的键值对的集合,为Hashtable的替代品,比HashTable效率高

      LinkedHashMap:使用链表实现的键值对的集合,键值对的顺序和放入的顺序一致

      jdk 1.7 与1.8的HashMap 是不一样的

    • 键值遍厉

      Iterator it = set.iterator( );
      
      while( it.hasNext( ) ) {
      
       **Map.Entry** **entry** = ( Map.Entry )it.next( );
      
       System.out.println( **entry.getKey****( )** );
      
       System.out.println( **entry.getValue****( )** );
      
      }
      
    • 增强for

      Student[ ] array = … // 创建数组
      for ( Student s : array ) {
      	System.out.println( s );
      }
      
      

      用不了循环的地方 试试递归!

    • 类型转换!!!

      这个太重要了 前端没准给你传个什么类型的数据,没准前端要个什么类型的数据,要个什么样的数据结构...

      string转long,

      List转string,long,Interger等等等等

      我记不住全百度...(等有时间看看源码怎么实现的...)

    • 封装

      这个还是挺重要的 百度上,git上扣下来的工具类,自己再封装一下用着可舒服(哈哈哈)

      这个怎么封装 不附加代码了

    • 异常

      try {
          log.info("try了?没问题奥铁子,反正不报错,不知道写的对不对");
       }
      catch(Exception e) {
          log.error("天天就知道写bug!这个接口错了 赶紧看看: lubrication, type:{}" type, e);
       }
      

      说起这个异常

      System.out.println("");
      

      System语句java规范不让用...

      那就整个 @slf4j (四拉风否借~哈哈哈)

      maven仓库里配置代码 我懒得找~

    • 多线程

      这个面试官很喜欢这个东西,非常抱歉,本人还真研究过这个...

      1.集成Thread类,重写(这里的重写指的是override)run方法,调用start方法执行。

      2.实现Runable接口,实现run方法,以Runable实例创建thread对象。

      3.实现Callable接口,实现call方法,FutureTask包装callable接口,FutureTask对象创建thread对象,常用语异步操作,建议使用匿名内部类,方便阅读和使用。

       额外需要说明的是:

      1.理解thread的join方法;

      2.不要认为volitate是线程安全的(不明白原因的建议去看jvm运行时刻内存分配策略);

      3.sleep时间片结束后并不保证立马获取cpu。

      4.ThreadLocal能够为每一个线程维护变量副本,常用于在多线程中用空间换时间。

      我博客还有我初期学习时候写的几个语句

      没搞明白是什么一回事呢...懂一点基础 不过还挺有意思的

    • 线程安全

      目前不太了解,不能乱讲...

    消息队列

    • RabbitMQ

      我用过的是这个中间件 不知道别的好不好用...

      没有啥太多的话 常用的四种工作模式多用用就会了

      简单,工作,订阅,路由

      跟web1.0那时候链接数据库一样

    Redis

    • 这个怎么讲呢 好用,得劲,持久化,减少数据库的压力

      整他就完了!

      List role = new List<> sysRoleService.listByMap(map);//调用DAO
      redisUtils.set("options_role", role, 3600);
      //先存
      -------------------------------------
      //再取
      redisUtils.hasKey("options_role");//get时候你得来个key
      redisUtils.get("options_role"); 
      
      

      简单点~写代码的方式简单点

    Mysql

    ​ 这个太顶了! 我太爱了

    ​ 左中右链接,多表联查,查索引,建索引

    ​ 有一说一Navicat真好用 就是有点贵~

    ​ 再有一说一 数据库建表设计是门艺术

    ​ 再再有一说一 谁建表不好好建 不考虑周到 我可能要吐血了...(数据库改版一次...重写好多sql语句)

    ​ 再再再问一句 脏数据处理有什么好办法...

    spring全家痛!!!没错是!!!

    • 就是一个框架

    spring boot 轻量级启动框架

    spring security 用户权限管理,根据角色和用户,实现UserDetailsService,进行自定义权限管理。

    spring task 代码级定时任务,注解方式,使用起来非常方便。需要注意的是,如果某次定时任务出了异常而没有进行处理,会导致接下来定时任务失效。如果各个任务相互独立,可以简单用try,catch包围(之前就吃过这方面的亏)。

    spring data 注解方式定义实体,属性等

    spring mvc 简单明了的mvc框架。url传值、数组传值、对象传值、对象数组等传值类型,上传/下载文件类型需要注意。

    spring RESTful 注意命名,对命名要求很严格。

    ​ 这个RESTful挺好 命名规范很重要 瞎起名真不行

    spring shell 命令行方式执行命令,救火、导入导出数据等用起来非常方便、制作报表。

    • springboot常用注解我有篇word文档 整理一下也给大家做个开源

    Mybatis

    • 得劲,好用 用就中了
    • 我喜欢用注解开发 不喜欢用xml文件
    • 注解好用 别弄那个xml不当jojo了(轻喷~)
    • 没少踩坑(脏数据太多...)

    Git 版本控制

    版本回溯简直不要太好用

    .代码冲突解决方案

    .分支管理。

     对于某个稳定版本上线后,如果在此基础上开发新功能,一定要新建分支,在新分支上提交代码,最后在新版发布时合并分支。修改运营环境bug切换到主分支进行修改(这个东西拆过坑,idea中切来切去分支代码切丢了

    vue.js+node.js

    本地装上用来测试接口比swagger好用

    未来规划与展望

    挣钱挣钱挣钱

    年纪轻轻当然要多学东西了~~

    深入了解一下线程安全 深入了解多线程开发 深入了解AOP

    学习oracle数据库

    学习前端一些框架 vue.js ,jQuery 补足短板 (找个时间写点css 给博客这个弄得像那种高级程序员的感觉...)

    不想干全栈的后端工程师不是一个好实习生(没毕业的)

    实习生->级开发->中高级开发->全栈->架构

    咳咳咳!

    float x, y;
          for (y = (float)1.5; y > -1.5; y -= 0.1) {
    		for (x = (float)-1.5; x < 1.5; x += 0.05) {
    			float a = x * x + y * y - 1;
    			      if ((a * a * a - x * x * y * y * y) <= 0.0) {
    			        System.out.print("*");
    		      } else {
    			System.out.print(" ");
    		}
    	}
          System.out.println();
    }
    
  • 相关阅读:
    【模拟练习】[一]
    【搜索练习】【二】
    【搜索练习】【一】
    模板整理 (施工中 2017.8.30更新)
    常用STL整理 (施工中 2017.8.11更新)
    剑指Offer 反转链表
    剑指Offer 链表中倒数第k个结点
    剑指Offer 斐波那契数列
    剑指Offer 用两个栈实现队列
    剑指Offer 从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/laowt/p/14151736.html
Copyright © 2011-2022 走看看