Java+Springboot+Mybatis+Mysql+Bootstrap+Maven实现网上商城系统

public ResultBean del(int id) {

classificationService.delById(id);

return new ResultBean<>(true);

}

@RequestMapping(“/list.do”)

@ResponseBody

public ResultBean<List> findAll(int type,

int pageindex, @RequestParam(value = “pageSize”, defaultValue = “15”) int pageSize) {

List list = new ArrayList<>();

if (pageindex == -1)

list = classificationService.findAll(type);

else {

Pageable pageable = new PageRequest(pageindex, pageSize, null);

list = classificationService.findAll(type, pageable).getContent();

}

return new ResultBean<>(list);

}

@ResponseBody

@RequestMapping(“/getTotal.do”)

public ResultBean getTotal(int type) {

Pageable pageable = new PageRequest(1, 15, null);

int count = (int) classificationService.findAll(type, pageable).getTotalElements();

return new ResultBean<>(count);

}

}

AdminController


package priv.jesse.mall.web.admin;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import priv.jesse.mall.entity.AdminUser;

import priv.jesse.mall.entity.pojo.ResultBean;

import priv.jesse.mall.service.AdminUserService;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

@Controller

@RequestMapping(“/admin”)

public class AdminController {

@Autowired

private AdminUserService adminUserService;

/**

  • 访问首页

  • @return

*/

@RequestMapping(“/toIndex.html”)

public String toIndex() {

return “admin/index”;

}

/**

  • 访问登录页面

  • @return

*/

@RequestMapping(“/toLogin.html”)

public String toLogin() {

return “admin/login”;

}

/**

  • 登录请求

  • @param username

  • @param password

*/

//@ResponseBody

@RequestMapping(method = RequestMethod.POST, value = “/login.do”)

public void login(String username, String password, HttpServletRequest request, HttpServletResponse response) throws IOException {

AdminUser adminUser = adminUserService.checkLogin(request, username, password);

response.sendRedirect(“/mall/admin/toIndex.html”);

}

/**

  • 退出登录

  • @param request

  • @param response

  • @throws IOException

*/

@RequestMapping(“/logout.do”)

public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {

request.getSession().removeAttribute(“login_user”);

response.sendRedirect(“toLogin.html”);

}

}

AdminOrderController


package priv.jesse.mall.web.admin;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.domain.PageRequest;

import org.springframework.data.domain.Pageable;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.ResponseBody;

import priv.jesse.mall.entity.Order;

import priv.jesse.mall.entity.OrderItem;

import priv.jesse.mall.entity.pojo.ResultBean;

import priv.jesse.mall.service.OrderService;

import java.util.List;

@Controller

@RequestMapping(“/admin/order”)

public class AdminOrderController {

@Autowired

private OrderService orderService;

/**

  • 打开订单列表页面

  • @return

*/

@RequestMapping(“/toList.html”)

public String toList() {

return “admin/order/list”;

}

/**

  • 获取所有订单的总数

  • @return

*/

@ResponseBody

@RequestMapping(“/getTotal.do”)

public ResultBean getTotal() {

Pageable pageable = new PageRequest(1, 15, null);

int total = (int) orderService.findAll(pageable).getTotalElements();

return new ResultBean<>(total);

}

/**

  • 获取所有订单

  • @param pageindex

  • @param pageSize

  • @return

*/

@ResponseBody

@RequestMapping(“/list.do”)

public ResultBean<List> listData(int pageindex,

@RequestParam(value = “pageSize”, defaultValue = “15”) int pageSize) {

Pageable pageable = new PageRequest(pageindex, pageSize, null);

List list = orderService.findAll(pageable).getContent();

return new ResultBean<>(list);

}

/**

  • 获取订单项

  • @param orderId

  • @return

*/

@ResponseBody

@RequestMapping(“/getDetail.do”)

public ResultBean<List> getDetail(int orderId) {

List list = orderService.findItems(orderId);

return new ResultBean<>(list);

}

/**

  • 发货

  • @param id

  • @return

*/

@ResponseBody

@RequestMapping(“/send.do”)

public ResultBean send(int id) {

orderService.updateStatus(id,3);

return new ResultBean<>(true);

}

}

AdminProductController


package priv.jesse.mall.web.admin;

import org.apache.commons.lang.StringUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.domain.PageRequest;

import org.springframework.data.domain.Pageable;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.*;

import org.springframework.web.multipart.MultipartFile;

import priv.jesse.mall.entity.Classification;

import priv.jesse.mall.entity.Product;

import priv.jesse.mall.entity.pojo.ResultBean;

import priv.jesse.mall.service.ClassificationService;

import priv.jesse.mall.service.ProductService;

import priv.jesse.mall.utils.FileUtil;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.File;

import java.io.IOException;

import java.net.URLEncoder;

import java.nio.file.Files;

import java.nio.file.Paths;

import java.util.Date;

import java.util.List;

import java.util.Map;

@Controller

@RequestMapping(“/admin/product”)

public class AdminProductController {

@Autowired

private ProductService productService;

@Autowired

private ClassificationService classificationService;

@RequestMapping(“/toList.html”)

public String toList() {

return “admin/product/list”;

}

@RequestMapping(“/toAdd.html”)

public String toAdd() {

return “admin/product/add”;

}

@RequestMapping(“/toEdit.html”)

public String toEdit(int id, Map<String, Object> map) {

Product product = productService.findById(id);

Classification classification = classificationService.findById(product.getCsid());

product.setCategorySec(classification);

map.put(“product”, product);

return “admin/product/edit”;

}

@ResponseBody

@RequestMapping(“/list.do”)

public ResultBean<List> listProduct(int pageindex,

@RequestParam(value = “pageSize”, defaultValue = “15”) int pageSize) {

Pageable pageable = new PageRequest(pageindex, pageSize, null);

List list = productService.findAll(pageable).getContent();

return new ResultBean<>(list);

}

@ResponseBody

@RequestMapping(“/getTotal”)

public ResultBean getTotal() {

Pageable pageable = new PageRequest(1, 15, null);

int total = (int) productService.findAll(pageable).getTotalElements();

return new ResultBean<>(total);

}

@RequestMapping(“/del.do”)

@ResponseBody

public ResultBean del(int id) {

productService.delById(id);

return new ResultBean<>(true);

}

@RequestMapping(method = RequestMethod.POST, value = “/add.do”)

public void add(MultipartFile image,

String title,

Double marketPrice,

Double shopPrice,

int isHot,

String desc,

int csid,

HttpServletRequest request,

HttpServletResponse response) throws Exception {

Product product = new Product();

product.setTitle(title);

product.setMarketPrice(marketPrice);

product.setShopPrice(shopPrice);

product.setDesc(desc);

product.setIsHot(isHot);

product.setCsid(csid);

product.setPdate(new Date());

String imgUrl = FileUtil.saveFile(image);

product.setImage(imgUrl);

int id = productService.create(product);

if (id <= 0) {

request.setAttribute(“message”, “添加失败!”);

request.getRequestDispatcher(“toAdd.html”).forward(request, response);

} else {

request.getRequestDispatcher(“toEdit.html?id=” + id).forward(request, response);

}

}

@RequestMapping(method = RequestMethod.POST, value = “/update.do”)

public void update(int id,

String title,

Double marketPrice,

Double shopPrice,

String desc,

int csid,

int isHot,

MultipartFile image,

HttpServletRequest request,

HttpServletResponse response) throws Exception {

Product product = productService.findById(id);

product.setTitle(title);

product.setMarketPrice(marketPrice);

product.setShopPrice(shopPrice);

product.setDesc(desc);

product.setIsHot(isHot);

product.setCsid(csid);

product.setPdate(new Date());

String imgUrl = FileUtil.saveFile(image);

if (StringUtils.isNotBlank(imgUrl)) {

product.setImage(imgUrl);

}

boolean flag = false;

try {

productService.update(product);

flag = true;

} catch (Exception e) {

throw new Exception(e);

}

if (!flag) {

request.setAttribute(“message”, “更新失败!”);

}

response.sendRedirect(“toList.html”);

}

@RequestMapping(method = RequestMethod.GET, value = “/img/{filename:.+}”)

public void getImage(@PathVariable(name = “filename”, required = true) String filename,

HttpServletResponse res) throws IOException {

File file = new File(“file/” + filename);

if (file != null && file.exists()) {

res.setHeader(“content-type”, “application/octet-stream”);

res.setHeader(“Content-Disposition”, “attachment;filename=” + URLEncoder.encode(filename, “UTF-8”));

res.setContentLengthLong(file.length());

Files.copy(Paths.get(file.toURI()), res.getOutputStream());

}

}

}

AdminUserController


package priv.jesse.mall.web.admin;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.domain.PageRequest;

import org.springframework.data.domain.Pageable;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.*;

import priv.jesse.mall.entity.User;

import priv.jesse.mall.entity.pojo.ResultBean;

import priv.jesse.mall.service.UserService;

import java.util.List;

import java.util.Map;

@Controller

@RequestMapping(“/admin/user”)

public class AdminUserController {

@Autowired

private UserService userService;

/**

  • 打开用户列表页面

  • @return

*/

@RequestMapping(“/toList.html”)

public String toList() {

return “admin/user/list”;

}

/**

  • 打开编辑页面

  • @param id

  • @param map

  • @return

*/

@RequestMapping(“/toEdit.html”)

public String toEdit(int id, Map<String, Object> map) {

User user = userService.findById(id);

map.put(“user”, user);

return “admin/user/edit”;

}

/**

  • 获取所有用户列表

  • @param pageindex

  • @return

*/

@ResponseBody

@RequestMapping(“/list.do”)

public ResultBean<List> findAllUser(int pageindex,

@RequestParam(value = “pageSize”, defaultValue = “15”) int pageSize) {

Pageable pageable = new PageRequest(pageindex, pageSize, null);

List users = userService.findAll(pageable).getContent();

return new ResultBean<>(users);

}

@ResponseBody

@RequestMapping(“/getTotal.do”)

public ResultBean geTotal() {

Pageable pageable = new PageRequest(1, 15, null);

int total = (int) userService.findAll(pageable).getTotalElements();

return new ResultBean<>(total);

}

@ResponseBody

@RequestMapping(“/del.do”)

public ResultBean del(int id) {

userService.delById(id);

return new ResultBean<>(true);

}

@ResponseBody

@RequestMapping(method = RequestMethod.POST, value = “/update.do”)

public ResultBean update(int id,String username,

String password,String name,

String phone,String email,

String addr) {

// 更新前先查询

User user = userService.findById(id);

user.setId(id);

user.setName(name);

user.setUsername(username);

user.setPassword(password);

user.setAddr(addr);

user.setEmail(email);

user.setPhone(phone);

userService.update(user);

return new ResultBean<>(true);

}

}

ClassificationController


package priv.jesse.mall.web.user;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

@RequestMapping(“/classification”)

public class ClassificationController {

}

IndexController


package priv.jesse.mall.web.user;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;

@Controller

public class IndexController {

/**

  • 打开首页

  • @return

*/

@RequestMapping(“/index.html”)

public String toIndex() {

return “mall/index”;

}

/**

  • 访问根目录转发到首页

  • @return

*/

@RequestMapping(“/”)

public String index(){

return “forward:/index.html”;

}

}

OrderController


package priv.jesse.mall.web.user;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import priv.jesse.mall.entity.Order;

import priv.jesse.mall.entity.OrderItem;

import priv.jesse.mall.entity.pojo.ResultBean;

import priv.jesse.mall.service.OrderService;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.List;

@Controller

@RequestMapping(“/order”)

public class OrderController {

@Autowired

private OrderService orderService;

/**

  • 打开订单列表页面

  • @return

*/

@RequestMapping(“/toList.html”)

public String toOrderList() {

return “mall/order/list”;

}

/**

  • 查询用户订单列表

  • @param request

  • @return

*/

@RequestMapping(“/list.do”)

@ResponseBody

public ResultBean<List> listData(HttpServletRequest request) {

List orders = orderService.findUserOrder(request);

return new ResultBean<>(orders);

}

/**

  • 查询订单详情

  • @param orderId

  • @return

*/

@RequestMapping(“/getDetail.do”)

@ResponseBody

public ResultBean<List> getDetail(int orderId) {

List orderItems = orderService.findItems(orderId);

return new ResultBean<>(orderItems);

}

/**

  • 提交订单

  • @param name

  • @param phone

  • @param addr

  • @param request

  • @param response

*/

@RequestMapping(“/submit.do”)

public void submit(String name,

String phone,

String addr,

HttpServletRequest request,

HttpServletResponse response) throws Exception {

orderService.submit(name, phone, addr, request, response);

}

/**

  • 支付方法

  • @param orderId

*/

@RequestMapping(“pay.do”)

@ResponseBody

public ResultBean pay(int orderId, HttpServletResponse response) throws IOException {

orderService.pay(orderId);

return new ResultBean<>(true);

}

/**

  • 确认收货

  • @param orderId

  • @param response

  • @return

  • @throws IOException

*/

@RequestMapping(“receive.do”)

@ResponseBody

public ResultBean receive(int orderId, HttpServletResponse response) throws IOException {

orderService.receive(orderId);

return new ResultBean<>(true);

}

}

ProductController


package priv.jesse.mall.web.user;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.domain.PageRequest;

import org.springframework.data.domain.Pageable;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import priv.jesse.mall.entity.Classification;

import priv.jesse.mall.entity.OrderItem;

import priv.jesse.mall.entity.Product;

import priv.jesse.mall.entity.pojo.ResultBean;

import priv.jesse.mall.service.ClassificationService;

import priv.jesse.mall.service.ProductService;

import priv.jesse.mall.service.ShopCartService;

import javax.servlet.http.HttpServletRequest;

import java.util.List;

import java.util.Map;

@Controller

@RequestMapping(“/product”)

public class ProductController {

@Autowired

private ProductService productService;

@Autowired

private ClassificationService classificationService;

@Autowired

private ShopCartService shopCartService;

/**

  • 获取商品信息

  • @param id

  • @return

*/

@RequestMapping(“/get.do”)

public ResultBean getProduct(int id) {

Product product = productService.findById(id);

return new ResultBean<>(product);

}

/**

  • 打开商品详情页面

  • @param id

  • @param map

  • @return

*/

@RequestMapping(“/get.html”)

public String toProductPage(int id, Map<String, Object> map) {

Product product = productService.findById(id);

map.put(“product”, product);

return “mall/product/info”;

}

/**

  • 查找热门商品

  • @return

*/

@ResponseBody

@RequestMapping(“/hot.do”)

public ResultBean<List> getHotProduct() {

List products = productService.findHotProduct();

return new ResultBean<>(products);

}

/**

  • 查找最新商品

  • @param pageNo

  • @param pageSize

  • @return

*/

@ResponseBody

@RequestMapping(“/new.do”)

public ResultBean<List> getNewProduct(int pageNo, int pageSize) {

Pageable pageable = new PageRequest(pageNo, pageSize);

List products = productService.findNewProduct(pageable);

return new ResultBean<>(products);

}

/**

  • 打开分类查看商品页面

  • @return

*/

@RequestMapping(“/category.html”)

public String toCatePage(int cid, Map<String, Object> map) {

Classification classification = classificationService.findById(cid);

map.put(“category”, classification);

return “mall/product/category”;

}

@RequestMapping(“/toCart.html”)

public String toCart(){

return “mall/product/cart”;

}

/**

  • 按一级分类查找商品

  • @param cid

  • @param pageNo

  • @param pageSize

  • @return

*/

@ResponseBody

@RequestMapping(“/category.do”)

public ResultBean<List> getCategoryProduct(int cid, int pageNo, int pageSize) {

Pageable pageable = new PageRequest(pageNo, pageSize);

List products = productService.findByCid(cid, pageable);

return new ResultBean<>(products);

}

/**

  • 按二级分类查找商品

  • @param csId

  • @param pageNo

  • @param pageSize

  • @return

*/

@ResponseBody

@RequestMapping(“/categorySec.do”)

public ResultBean<List> getCategorySecProduct(int csId, int pageNo, int pageSize) {

Pageable pageable = new PageRequest(pageNo, pageSize);

List products = productService.findByCsid(csId, pageable);

return new ResultBean<>(products);

}

/**

  • 根据一级分类查询它所有的二级分类

  • @param cid

  • @return

*/

@ResponseBody

@RequestMapping(“/getCategorySec.do”)

public ResultBean<List> getCategorySec(int cid){

List list = classificationService.findByParentId(cid);

return new ResultBean<>(list);

}

/**

  • 加购物车

  • @param productId

  • @param request

  • @return

*/

@ResponseBody

@RequestMapping(“/addCart.do”)

public ResultBean addToCart(int productId, HttpServletRequest request) throws Exception {

shopCartService.addCart(productId, request);

return new ResultBean<>(true);

}

/**

  • 移除购物车

  • @param productId

  • @param request

  • @return

*/

@ResponseBody

@RequestMapping(“/delCart.do”)

public ResultBean delToCart(int productId, HttpServletRequest request) throws Exception {

shopCartService.remove(productId, request);

return new ResultBean<>(true);

}

/**

  • 查看购物车商品

  • @param request

  • @return

*/

@ResponseBody

@RequestMapping(“/listCart.do”)

public ResultBean<List> listCart(HttpServletRequest request) throws Exception {

List orderItems = shopCartService.listCart(request);

return new ResultBean<>(orderItems);

}

}

UserController


package priv.jesse.mall.web.user;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import priv.jesse.mall.entity.User;

import priv.jesse.mall.entity.pojo.ResultBean;

import priv.jesse.mall.service.UserService;

import priv.jesse.mall.service.exception.LoginException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.List;

@Controller

@RequestMapping(“/user”)

public class UserController {

@Autowired

private UserService userService;

/**

  • 打开注册页面

  • @return

*/

@RequestMapping(“/toRegister.html”)

public String toRegister() {

return “mall/user/register”;

}

/**

  • 打开登录页面

  • @return

*/

@RequestMapping(“/toLogin.html”)

public String toLogin() {

return “mall/user/login”;

}

/**

  • 登录

  • @param username

  • @param password

*/

@RequestMapping(“/login.do”)

public void login(String username,

String password,

HttpServletRequest request,

HttpServletResponse response) throws IOException {

User user = userService.checkLogin(username, password);

if (user != null) {

//登录成功 重定向到首页

request.getSession().setAttribute(“user”, user);

response.sendRedirect(“/mall/index.html”);

} else {

throw new LoginException(“登录失败! 用户名或者密码错误”);

}

}

/**

  • 注册

*/

@RequestMapping(“/register.do”)

public void register(String username,

String password,

String name,

String phone,

String email,

String addr,

HttpServletResponse response) throws IOException {

User user = new User();

user.setUsername(username);

user.setPhone(phone);

user.setPassword(password);

user.setName(name);

user.setEmail(email);

user.setAddr(addr);

userService.create(user);

// 注册完成后重定向到登录页面

response.sendRedirect(“/mall/user/toLogin.html”);

}

/**

  • 登出

*/

@RequestMapping(“/logout.do”)

public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {

request.getSession().removeAttribute(“user”);

response.sendRedirect(“/mall/index.html”);

}

/**

  • 验证用户名是否唯一

  • @param username

  • @return

*/

@ResponseBody

@RequestMapping(“/checkUsername.do”)

public ResultBean checkUsername(String username){

List users = userService.findByUsername(username);

if (users==null||users.isEmpty()){

return new ResultBean<>(true);

}

return new ResultBean<>(false);

}

/**

  • 如发生错误 转发到这页面

  • @param response

  • @param request

  • @return

*/

@RequestMapping(“/error.html”)

public String error(HttpServletResponse response, HttpServletRequest request) {

return “error”;

}

}

login.html


欢迎登录商城后台管理

请登录

重置

登录

2021-2021

index.html


商城后台管理

商城后台管理系统

  • 注销
    • 用户管理

    • 分类管理

    • 一级分类

    • 二级分类

    • 订单管理

    • 商品管理

      2017 © Jesse

      edit.html


      用户列表

      用户管理

    • 用户管理

    • 编辑用户

      编辑用户信息

      username

      name

      phone

      password

      email

      确定 

      重置 

      返回

      list.html


      用户列表

      用户管理

    • 用户管理

    • 用户列表

      用户列表

      自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

      因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

      由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

      如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

      img

      最后

      ActiveMQ消息中间件面试专题

      • 什么是ActiveMQ?
      • ActiveMQ服务器宕机怎么办?
      • 丢消息怎么办?
      • 持久化消息非常慢怎么办?
      • 消息的不均匀消费怎么办?
      • 死信队列怎么办?
      • ActiveMQ中的消息重发时间间隔和重发次数吗?

      ActiveMQ消息中间件面试专题解析拓展:

      BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


      redis面试专题及答案

      • 支持一致性哈希的客户端有哪些?
      • Redis与其他key-value存储有什么不同?
      • Redis的内存占用情况怎么样?
      • 都有哪些办法可以降低Redis的内存使用情况呢?
      • 查看Redis使用情况及状态信息用什么命令?
      • Redis的内存用完了会发生什么?
      • Redis是单线程的,如何提高多核CPU的利用率?

      BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


      Spring面试专题及答案

      • 谈谈你对 Spring 的理解
      • Spring 有哪些优点?
      • Spring 中的设计模式
      • 怎样开启注解装配以及常用注解
      • 简单介绍下 Spring bean 的生命周期

      Spring面试答案解析拓展

      BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


      高并发多线程面试专题

      • 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
      • Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
      • Java 中 wait 和 sleep 方法有什么区别?
      • 如何在 Java 中实现一个阻塞队列?
      • 如何在 Java 中编写代码解决生产者消费者问题?
      • 写一段死锁代码。你在 Java 中如何解决死锁?

      高并发多线程面试解析与拓展

      BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


      jvm面试专题与解析

      • JVM 由哪些部分组成?
      • JVM 内存划分?
      • Java 的内存模型?
      • 引用的分类?
      • GC什么时候开始?

      JVM面试专题解析与拓展!

      BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM

      《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
      lable=0" name=“viewport” />

      用户管理

    • 用户管理

    • 用户列表

      用户列表

      自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

      因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-26p8R9lp-1713396619876)]

      [外链图片转存中…(img-esiKQm1h-1713396619877)]

      [外链图片转存中…(img-hfH9L0LU-1713396619877)]

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

      由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

      如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

      img

      最后

      ActiveMQ消息中间件面试专题

      • 什么是ActiveMQ?
      • ActiveMQ服务器宕机怎么办?
      • 丢消息怎么办?
      • 持久化消息非常慢怎么办?
      • 消息的不均匀消费怎么办?
      • 死信队列怎么办?
      • ActiveMQ中的消息重发时间间隔和重发次数吗?

      ActiveMQ消息中间件面试专题解析拓展:

      [外链图片转存中…(img-f2VO9UVs-1713396619877)]


      redis面试专题及答案

      • 支持一致性哈希的客户端有哪些?
      • Redis与其他key-value存储有什么不同?
      • Redis的内存占用情况怎么样?
      • 都有哪些办法可以降低Redis的内存使用情况呢?
      • 查看Redis使用情况及状态信息用什么命令?
      • Redis的内存用完了会发生什么?
      • Redis是单线程的,如何提高多核CPU的利用率?

      [外链图片转存中…(img-stXQgiTz-1713396619878)]


      Spring面试专题及答案

      • 谈谈你对 Spring 的理解
      • Spring 有哪些优点?
      • Spring 中的设计模式
      • 怎样开启注解装配以及常用注解
      • 简单介绍下 Spring bean 的生命周期

      Spring面试答案解析拓展

      [外链图片转存中…(img-FyAiVXEo-1713396619878)]


      高并发多线程面试专题

      • 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
      • Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
      • Java 中 wait 和 sleep 方法有什么区别?
      • 如何在 Java 中实现一个阻塞队列?
      • 如何在 Java 中编写代码解决生产者消费者问题?
      • 写一段死锁代码。你在 Java 中如何解决死锁?

      高并发多线程面试解析与拓展

      [外链图片转存中…(img-nbf1Ng1q-1713396619878)]


      jvm面试专题与解析

      • JVM 由哪些部分组成?
      • JVM 内存划分?
      • Java 的内存模型?
      • 引用的分类?
      • GC什么时候开始?

      JVM面试专题解析与拓展!

      [外链图片转存中…(img-pnWhwIIh-1713396619878)]

      《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

    • 10
      点赞
    • 8
      收藏
      觉得还不错? 一键收藏
    • 1
      评论
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值