Java 打怪升级成长学习路线图,一定要收藏

113 篇文章 4 订阅

对于很多新手而言,为了不断提高技术的易用性、开发效率和可维护性、可扩展性,无数开源项目都是在这些原始技术的基础上封装、改进。

所以这个阶段不要盲目乐观地跑去找工作或者对实习挑三拣四,你会被打击到的,又或者找个小公司浑浑噩噩几年过去感觉跟新的技术栈脱节。

有人跟你说小公司学的东西多,他害你的,刚开始能去多大的去多大的,越大越好,你想你去了大的你想去小的分分钟的事情,但是你小的要去大的就相对难了。 所以技术要一步一步学,职位也要一步一步升,大家可以根据这篇学习路线进行学习。

好,初始阶段完成,开始进入WEB开发的正题,首先是传说中的框架,SSM(Spring SpringMVC Mybatis)成为熟练的增删改查程序员是必须的,在这个阶段你还要理解为什么要用这仨而不是那些Jsp、Servlet、Jdbc,你要体会到写MVC、三层架构的好处。

这个阶段不要轻易质疑框架的价值,也许刚开始你会觉得麻烦,觉得他们有时候是多此一举,我最开始这么写的时候发现,真的恶心,什么dao,service,Controller等等,分这么多干嘛。等过一两年后回过头来你会觉得少了这些框架你已经很难干活了,没有分层清晰的系统,你反而开口大骂项目的架构师的。

不过要提醒大家的是,这个阶段还要避免的心态是,能熟练地增删改查了,就自认为写程序不过如此,然后往简历上填个精通,这也是新手面试被批得体无完肤的原因之一。浅尝即止,是新手的大忌,为啥这么写,这么写有啥好处,有啥坏处,多问几个为什么,你多年后会感谢敖丙的。如果你学得好,这会应该能熟练地写个博客啊,小论坛啊之类的WEB项目了,也就是达到了就业的基本要求。

Tip:而且说一下作为一个应届生,你除了基础知识,如果你有自己的技术博客,还有像样的项目能展示给面试官看,是真的很加分,搭建个简单的项目,项目流程你也知道了,技术栈也熟悉了,还可以手机访问网页给面试官现场演示,很加分的。

像我身边的朋友Java3y,JavaGuide,我没有三颗心脏等,就是在这个阶段就已经开始写了自己的博客,并且各自都做出了成绩,这些以后都是你面试的议价能力的一部分,也是你的加分项,和你自身的财富。

我问了一下他们,都是靠博客就已经得到不少大公司的面试邀约了,反正有项目,有不错的履历,有不错的博客,都会给你加分,如果你什么都没有,现在动手去多学点,少打两局LOL等你到我这个年纪就会发现,索然无味。

我们说的 SSH 一般是指 Spring、Struts2以及 Hibernate。这三个里边,可以确认不用学习的Struts2,如果你大学刚毕业,进入到一家公司,用 Struts2 做开发,你进去干了三年,Struts2 用的滚瓜烂熟,出来跳槽却发现没有任何优势,所以我不建议大家在Struts2 上花时间.至于 Hibernate ,这个我持保留态度。为什么这么说呢?

因为 Hibernate 和 Jpa 之间有着千丝万缕的联系,Spring Data Jpa 结合 Spring Boot,还是有很多公司在用,而如果你掌握了 Hibernate,在后面使用 Jpa 的时候上手很快消息中间件学哪个?

就我目前了解到的情况,JavaEE 项目中,RabbitMQ 和 RocketMQ 使用较多,大数据中 Kafka 用的较多,传统的满足 JMS 规范的 ActiveMQ 使用较少。因此小伙伴们可以结合这样一个实际情况选择合适的消息中间件学习顺序。这个阶段的知识点都搞定了,做个毕设肯定是绰绰有余了,出了学校校门找个实习肯定也够用了。

学习 Spring Boot 的基础依然是 SSM,不建议跳过 SSM 直接学 Spring Boot.Spring Boot 学完之后,也可以做个项目巩固一下当你搞定了 SSM、搞定了 Redis、搞定了中间件,你再去学习 Spring Boot 就会发现他是如此简单!

至于 Spring Cloud,虽然 Netflix 公司的几个组件已经不打算继续开源了,但是对于大家而言,我觉得还是有必要去学习一下的,毕竟也不难,花不了多少时间,而且学习这些组件可以帮助大家快速建立一个 Spring Cloud 知识体系。出了这两大块之外,剩下的就不用我多说了

MySQL 的进阶我是建议放在这个阶段学习的,像数据优化、主从搭建、读写分离等,我建议放在这个阶段。

如果新手成功度过了这几个阶段,就可以成功脱离新手的领域啦,小伙伴们可以自行代入,精进学习。

文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A:好的,以下是一个基于Java实现的打怪升级小游戏示例: 首先,我们需要设计游戏中所需的角色和怪物类,以及它们的属性和方法。假设我们的游戏中有玩家角色和怪物角色,它们都有姓名、等级、血量、攻击力和防御力属性。 ``` // 角色类 public abstract class Character { String name; int level; int health; int attack; int defense; public abstract void attack(Character target); public abstract void levelUp() } // 玩家类 public class Player extends Character { int experience; public Player(String name, int level, int health, int attack, int defense) { this.name = name; this.level = level; this.health = health; this.attack = attack; this.defense = defense; this.experience = 0; } public void attack(Character target) { int damage = this.attack - target.defense; target.health -= damage; System.out.println(this.name + "攻击了" + target.name + ", 造成了" + damage + "点伤害!"); if (target.health <= 0) { System.out.println(target.name + "已经不能战斗了!"); this.experience += target.level * 10; levelUp(); } } public void levelUp() { if (this.experience >= this.level * 100) { this.experience -= this.level * 100; this.level++; System.out.println(this.name + "升级了,当前等级为" + this.level + "!") this.health += 10; this.attack += 5; this.defense += 5; } } } // 怪物类 public class Monster extends Character { public Monster(String name, int level, int health, int attack, int defense) { this.name = name; this.level = level; this.health = health; this.attack = attack; this.defense = defense; } public void attack(Character target) { int damage = this.attack - target.defense; target.health -= damage; System.out.println(this.name + "攻击了" + target.name + ", 造成了" + damage + "点伤害!"); if (target.health <= 0) { System.out.println(target.name + "已经不能战斗了!"); } } } ``` 接着,我们设计游戏管理类,负责控制游戏的流程和事件。在游戏初始化时,随机生成若干只怪物,并让玩家与它们进行战斗。当玩家击败所有怪物后,玩家等级提升,再次与新的怪物战斗,直到达到最高等级或失败。 ``` //游戏管理类 public class GameEngine { List<Character> enemies; Player player; public GameEngine(String playerName) { List<Integer> levels = Arrays.asList(1, 2, 3, 4, 5); List<Integer> healths = Arrays.asList(10, 20, 30, 40, 50); List<Integer> attacks = Arrays.asList(5, 10, 15, 20, 25); List<Integer> defenses = Arrays.asList(5, 10, 15, 20, 25); Random random = new Random(); enemies = new ArrayList<Character>(); for (int i = 0; i < 5; i++) { Monster monster = new Monster("怪物" + (i+1), levels.get(random.nextInt(levels.size())), healths.get(random.nextInt(healths.size())), attacks.get(random.nextInt(attacks.size())), defenses.get(random.nextInt(defenses.size()))); enemies.add(monster); } player = new Player(playerName, 1, 50, 20, 10); } public void start() { System.out.println("游戏开始!"); for (Character enemy : enemies) { while (player.health > 0 && enemy.health > 0) { player.attack(enemy); if (enemy.health <= 0) { break; } enemy.attack(player); } } System.out.println("当前等级为" + player.level + ", 经验值为" + player.experience + ", 准备下一场战斗!"); while (player.health > 0 && player.level < 5) { Monster monster = new Monster("怪物" + (player.level + 1), player.level + 1, 50 + player.level * 10, 20 + player.level * 5, 10 + player.level * 5); System.out.println("出现新的怪物:" + monster.name + "!"); while (player.health > 0 && monster.health > 0) { player.attack(monster); if (monster.health <= 0) { break; } monster.attack(player); } } if (player.health <= 0) { System.out.println(player.name + "被击败了,游戏结束!"); } else { System.out.println("恭喜" + player.name + "升到了最高等级" + player.level + ",游戏结束!"); } } } ``` 最后,在主函数中创建游戏管理对象并启动游戏: ``` public static void main(String[] args) { String playerName = "玩家1"; GameEngine game = new GameEngine(playerName); game.start(); } ``` 以上是一个简单的打怪升级小游戏示例,您可以根据自己的需求和想法添加更多的游戏元素和玩法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值