网站首页 > java教程 正文
一、 初级:巩固基础,熟悉API
- 简易计算器
- 功能:支持加减乘除、括号、连续运算。
- 技术点:Swing/JavaFX(图形界面), 事件监听, 表达式解析(可以尝试用栈来实现,挑战自己)。
- 挑战:加入历史记录功能(涉及文件I/O)。
- 个人日记本/记事本
- 功能:创建、编辑、删除、搜索日记;按日期分类。
- 技术点:Java Swing/JavaFX, 文件读写(File, FileWriter等), 日期处理(LocalDate)。
- 挑战:为日记增加加密功能(学习简单的加密算法)。
- 命令行版的图书馆管理系统
- 功能:在控制台操作,实现图书的增删改查、借阅、归还。
- 技术点:面向对象编程(设计Book, User, Library等类), 集合框架(ArrayList, HashMap存储数据), 控制台输入输出。
- 挑战:将数据持久化到文本文件或CSV文件中,程序启动时再加载回来。
二、 中级:引入数据库、网络和框架
- Web版客户关系管理系统(CRM)或博客系统
- 功能:用户登录注册、数据的增删改查、分页展示。
- 技术栈:
- 后端:Servlet + JSP -> (进阶) Spring Boot + MyBatis/JPA
- 前端:HTML, CSS, JavaScript, Bootstrap
- 数据库:MySQL / PostgreSQL
- 技术点:MVC架构、数据库连接(JDBC)、CRUD操作、会话管理(HttpSession)、密码加密(BCrypt)。
- 挑战:增加文件上传(用户头像)、数据验证、导出Excel报表。
- 网络爬虫
- 功能:抓取某个网站(如豆瓣电影)的数据,解析并存储到数据库或导出为Excel。
- 技术栈:Jsoup(HTML解析库), HttpClient(HTTP请求库), 数据库或POI(操作Excel)。
- 技术点:HTTP协议、HTML DOM解析、多线程(提高爬取效率)、异常处理。
- 挑战:绕过简单的反爬机制(如设置User-Agent、间隔时间)。
- RESTful API 服务
- 功能:构建一个提供API接口的后端服务,不写页面,只返回JSON/XML数据。例如一个天气预报API、一个笑话API。
- 技术栈:Spring Boot + Spring Web。
- 技术点:RESTful设计风格、JSON处理(Jackson)、API设计(端点、版本、状态码)。
- 挑战:添加API认证(如JWT)、接口限流、Swagger文档。
三、 高级:分布式、高并发和源码级
这个阶段的目标是解决复杂业务场景,关注性能、可用性和可扩展性。
- 分布式电商秒杀系统
- 功能:模拟高并发下的商品抢购。
- 技术栈:Spring Boot, Redis(缓存和计数), RabbitMQ/Kafka(流量削峰), MySQL(最终数据落地)。
- 技术点:Redis分布式锁、接口限流(RateLimiter/Sentinel)、缓存击穿/穿透/雪崩解决方案、消息队列。
- 挑战:进行压测(JMeter),分析系统瓶颈并优化。
- 简易RPC框架
- 功能:自己实现一个类似Dubbo的简易RPC(远程过程调用)框架。
- 技术点:动态代理(生成客户端存根)、网络传输(Netty)、服务注册与发现(ZooKeeper/Nacos)、序列化(Protobuf/JSON)。
- 为什么做:这是提升对分布式系统理解深度的终极项目之一,能让你透彻理解框架底层原理。
- JVM调优实战
- 项目:故意写一个存在内存泄漏、频繁GC的程序。
- 工具:使用jstack, jmap, jstat, VisualVM等工具分析问题。
- 技术点:JVM内存模型、GC算法、线程Dump分析、性能监控。
- 目标:通过修改代码和调整JVM参数(-Xms, -Xmx, -XX:UseG1GC等)来解决性能问题。
- 源码阅读与仿写
- 选择:选择一些经典库的部分源码进行阅读和仿写,例如:
- 手写一个Spring IOC容器(实现Bean的创建和依赖注入)。
- 手写一个MyBatis核心流程(实现SQL解析和结果集映射)。
- 收获:从“会用”到“懂原理”的质变,面试中的巨大优势。
猜你喜欢
- 2025-09-21 工控必备:5个免费的PLC通讯检测工具!
- 2025-09-21 零基础可以学编程,如果你信,你会掉进深渊。
- 2025-09-21 Java算不了超大数?用字符串当“草稿纸”,再大的数也能加!
- 2025-09-21 使用ANTLR开发自己的DSL语言(一)_antlr llvm
- 2025-09-21 Java:有哪些快速学习Java语言的技巧?
- 2025-09-21 由ArcMap属性字段自增引出字段计算器使用Python的技巧
- 2025-09-21 制作简易页面计算器的详细教程和代码分享
- 2025-09-21 java swing 开发简单计算器代码_利用java swing编写一个计算器界面
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)