Java实习半年的经验总结分享

news/2025/3/20 20:55:09/文章来源:https://www.cnblogs.com/arioya/p/18783941

实习经验分享 这个视频的笔记

面试

总结一个属于自己的思维导图,里面包含了所以面试相关的知识点,分门别类整理,不要全部照搬网络上的八股文啊,或者是直接拿别人的八股文来背诵,例如:直接拿javaguide,牛客八股文打下来下背诵。要有自己的思考,自己进行归纳总结,印象才足够深刻

还有一点,在面试的时候,没必要去纠结,没必要一定要学完了springcloud 等微服务技术栈,才敢去面试

  • 有些时候,公司并不一定要会到微服务技术栈(绝大部分小公司)
  • 如果企业需要springcloud,都是入职企业后再进行学习,有这种压迫感,反而能学的更快且印象更深刻。很多技术栈是我在入职已经在学的,每家公司采用的技术栈都不同,没必要所有的技术栈都学完才有敢去面试。

Git(入职企业必备)

自己平时开发项目,都是直接在本地进行开发,很少经常去就自己的代码通过git命令,或IDEA里面界面按钮进行提交到远程操作,有也只是进行了很简单的push 和 pull命令,再有就是个人的项目都是一个人的情况下,很少产生合并代码冲突等问题。也没有解决过什么代码冲突。而企业项目一般都是多人进行开发,在每次推送代码前,一定要记得先拉取远程最新的代码,然后再进行push

git操作不熟练,操作失误,会造成代码合并出现问题,合错了分支之类的。其实也就那个几个命令,多看几篇文章就搞定了!

  • git命令基本操作

    • git checkout dev:切换分支
    • git add ./xx:将代码提交到暂存区
    • git commit -m“ 备注信息”:提代码时候的备注信息
    • git push origin dev:推送代码(每次push的时候,先要pull代码)
    • git pull origin dev:拉去代码
    • git reset --hard:回退代码(合并或者提交错了,撤回)
    • git merge dev:合并dev分支代码
    • git cherry-pick:拷贝另一个分支的某次提交代码到当前分支
    • git stash:暂存未提交的代码(不想提交代码但要切换分支时,先暂存一下,避免丢失)
    • git stash pop:恢复暂存未提交的代码
  • IDEA中git的的基本操作(同上)

    • merge into current:合并某个分支到当前分支
    • 入箭头:拉去代码
    • 出剪头:push代码
  • 工作中git的分支管理

    • master主分支(生产prod)

    • release 预发布(灰度grey,测试稳定后再发布)

    • dev 开发测试阶段(测试test)

    • yrp-login、zhangsan-service(具体需求模块的开发)

真实企业项目

  • Devops 云效(代码托管)

    • 项目环境
      • dev 本地开发的环境
      • test 测试(有专门的数据库)
      • grey 恢复环境(预发布阶段,与生产共用同一套数据库)
      • prod(生产环境)
  • 枚举类(替换常量)

    • 去掉魔法数字,可读性增强
    • 可维护性增强,易于管理
  • 线程池

    • 异步的执行某个任务(提升接口的性能)
  • 设计模式

    • 责任链模式(纵向扩展 加一条链路)。
      • List(value = 处理逻辑链路)
      • 用户登录逻辑
        • 登录参数校验
        • XXX(新加入功能)
        • 登录参数准备
        • 封禁校验
        • 身份认证(db)
        • 操作db
        • 操作redis
        • 操作es
    • 策略模式(横向扩展 多种登录方式)
      • Map(key value)
        • key = qq登录,value = qq登录处理逻辑
        • key = 微信登录,value = 微信登录处理逻辑
        • key = 手机号登录 value = 处理手机号登录的逻辑
  • redis 实现功能

    • pub sub 或者rabbit mq去实现,用于刷新本地缓存
    • 在设计中采用redis基本数据结构去实现功能,结合key的过期时间
      • set
      • string
      • zset
      • hash
      • list
  • 定时任务(xxl-job)

    • corn表达式,定期的去干某件事情
  • Caffine本地缓存(高性能)

    • 采用Caffine作为本地缓存,定期的去db加载数据,若db有变动,通过redis / mq的pub sub机制去reload本地缓存中的数据
    • 可以理解成一个特殊的map,带定时器的map,定期去db 加载数据
    • 补充:spring自带的定时任务,也能定期的去刷新缓存,也可以设置时间间隔,例如每5分钟执行一次
  • Elasticsearch

    • 一个索引(对应mysql中的一张表)
    • Kibana 可视化
    • query dsl(对应Java里用RestHighLevelClient)
    • 实现功能:附近的人
  • MySQL

    • 索引的创建,什么时候需要添加索引,又应该添加什么类型的索引

      • 普通索引
      • 唯一所谓
    • 联合索引(顺序性)ab添加联合索引,如果where后面只有b,则无法命中

    • union all 后order by 会失效(踩坑)

    • insert ignore 忽略插入失败报错,继续执行后续代码,不中断程序

    • insert ... on duplicate key update 只能用于加了唯一索引的字段

      • 先执行更新操作,如果更新失败,则执行插入操作
  • MyBatis XXXMapper.xml

    • 小于号可以用 <![CDATA[ ]]>替换
    • 动态sql
      • foreach用的比较多
      • where
      • if
  • Spring事务

    • 事务只有在一些安全性要求比较高(订单等,账户等)比较核心的业务的时候,才会给代码添加事务,不是任何情况下串行的操作DB都要去加事务(这样反而会影响性能)
  • Java新特性

    • Stream流
      • Optional
    • Lamdba表达式
  • Guava 工具包

    • 不可变集合
  • Apache Common工具包

    • 集合、对象、字符串判空
  • Java8日期处理

    • LocalDateTime
      • 获取当前的时间戳
      • 获取当前年、月、日、时、分、秒
    • System.currentTimeMillis(
    • LocalDateTime与时间戳转化

学习进度(实习期间)

带学习,可能现在用不到

  • Elasticsearch

    • Query DSL语句
    • kibana 可视化(写增删改查语句)
    • RestHeihtLevel
  • Rabbit mq

  • EasyExcel

  • stream和lamdba

  • spring cloud netflix/ alibaba 微服务

  • docker

  • xxl-job

  • Caffeine

  • Guva 工具包

  • Apache Common工具包

    • ImmutableMap(最多能添加5组 key,value对)
    • lmmutableSet
    • mmutableList
    • lmmutablePair
  • golang语言

    • golang基础语法
    • gin 框架 web项目
    • orm 框架
  • k8s

  • 对接第三方支付(支付宝 微信)

感想

  • 定要多问,自己没法解决,网上找不到相关解决方式的话ǐ那就直接 大胆 的 去问,或者是一些业务上的问题,可以直接去问
  • 继续保持学习(一边做项目开发,边学习企业项目中的自己没有掌握的技术栈和知识点)。
  • 定要学会总结,将问题的解决过程转化成文档,并且归纳分类。下次在遇到就能快速的解决

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/902209.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SqlServer 中行转列PIVOT函数用法

SqlServer 中行转列PIVOT函数用法 前言 最近在面试的时候,碰到了手写sql的题目,这让我这个面向AI的程序员着实难看。只见我面露难色,绞尽脑汁的情况下,终于还是放弃了。 这道题目不难,但是由于平时几乎没有遇到行转列的情况,导致在手写时忘记了PIVOT函数怎么使用😩。 面…

第五周第四天

所用时间:180分钟 代码量(行):15 博客量(篇):1 了解到的知识点: 1.matplotlib的配置 因为要参加数学建模大赛,今天配置了python和matplotlib环境,尝试运行了程序,代码如下: import matplotlib.pyplot as plt import numpy as np# 生成数据 x = np.linspace(0, 10, …

Vue3中使用TinyMce编辑器

Vue3中使用TinyMce编辑器 - 知乎 一,安装TinyMce富文本vue npm install @tinymce/tinymce-vue -S npm install tinymce -STinyMce本身是英文编辑器,所以还需要下载中文本地化文件:https://www.tiny.cloud/get-tiny/language-packages/下载完成后放入node_modules下的tinymce…

入门Dify平台:如何根据需求选择与创建最合适的应用

今天我们将继续深入讲解Dify,重点介绍如何创建应用。具体来说,我们将探讨如何根据不同的需求来决定选择什么类型的应用最为合适,帮助大家更好地理解在Dify平台上构建应用的最佳实践。 创建空白应用 首先,我们需要进入Dify的首页选择工作室,并创建空白应用。如图所示:点击…

月暗推出音频模型 AudioX:任意内容生成音频和配乐;开源 TTS 模型 Orpheus,可生成叹息、笑声等非文本线索丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观点 」、「有看点的 活动 」,但内容仅代表编辑…

202110211215 - IT项目管理笔记

IT项目管理中的百慕大 资源 、范围、进度 三角平衡 项目管理 -- 做事 启动、规划、执行、控制、收尾 项目管理 -- 四个层次: 复杂的事情简单化:分解 简单的事情量化:临界值 量化的事情专业化:规律 专业的事情模板化:框架模板 项目: 为创造特定产品或服务的一项有时限的任…

k8s拉取私有镜像的2种方式

k8s 在拉取私有镜像时 ,传递认证信息目录通过secret通过ServiceAccount 通过secret01-image-pull.yamlkind: Pod apiVersion: v1 metadata:name: imagepull-nginxlabels:group: imagepull spec:containers:- name: nginximage: registry.cn-beijing.aliyuncs.com/hkui_dev/ngi…

202110111235 - 软件工程笔记

1. 概述 1.1 开发只占冰山一角 1.2 计算机科学、数学,工程,管理 1.3 软件开发的本质:实现问题域中的概念和处理逻辑 到 运行平台的概念和处理逻辑的映射。系统建模 需求 -> 设计 -> 实现1.4 软件工程的目标:生产具有正确性、可用性、以及开销合宜的产品。 1.5 软件工…

202109060657 - hadoop架构和读写流程

1. 整体架构 hdfs架构zkmonode高可用。HA的工作原理?是否需要每个datanode监听zk?namenodeNameNode(nn):Hdfs集群的管理者,Master 管理Hdfs的名称空间(NameSpace) 维护副本策略 记录文件块(Block)的映射信息 负责处理客户端读写请求datanodeDataNode:NameNode下达命令,…

基于风险的完整性和检查建模(RBIIM)MATLAB仿真

1.程序功能描述 基于风险的完整性和检查建模(Risk-Based Integrity and Inspection Modeling ,RBIIM)MATLAB仿真,对比prior density,posterior perfect inspection,posterior imp inpection,cummulative posterior imperfect inspection四个指标。 2.测试软件版本以及…

202108151156 - kafka消费积压案例

0. 背景 上游厂家生产信令数据,我方消费kafka数据,过滤后插入HBase。 上游生产的信令数据分了4个主题,每个主题有若干分区,这4个主题的数据消费后都插入同一张HBase表。 问题:kafka消息积压达到百亿。 以下以topic1为例,有6个分区。 1. 查看消费滞后情况 kafka-consumer-…

mysql 多表怎么连接的

前言 简单描述一下多表怎么连接的。 正文 首先,我们得抛开我们一些自以为是的想法。 我想过这个问题,就是为什么我们背乘法口诀的时候,我们总是背: 22 = 4, 99=81 这样背下去,似乎这是口诀。然而这是缓存,不是计算,既然不是计算那么就不是逻辑学。 我们理所当然的想9*9…