Day10_System类、StringBuilder、Integer

本文深入讲解了Java中的System类、StringBuilder类及Integer类的核心用法,包括如何利用System类进行时间测量、数组复制,StringBuilder类的高效字符串拼接技巧以及Integer类的装箱拆箱方法等。

一、System类

1.public static long currentTimeMillis()

    java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:
        public static long currentTimeMillis():返回以毫秒为单位的当前时间。
        public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。

验证for循环打印数字1-9999所需要使用的时间(毫秒)

    private static void demo01() {
        //程序执行前,获取一次毫秒值
        long s = System.currentTimeMillis();

        for (int i = 1; i <=9999 ; i++) {
            System.out.println(i);
        }
        
        //程序执行后,获取一次毫秒值
        long e = System.currentTimeMillis();
        System.out.println("程序共耗时:"+(e-s)+"毫秒");//程序共耗时:106毫秒
    }
2.public static void arraycopy

        public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。
        参数:
            src - 源数组。
            srcPos - 源数组中的起始位置(起始索引)。
            dest - 目标数组。
            destPos - 目标数据中的起始位置。
            length - 要复制的数组元素的数量。
        练习:
            将src数组中前3个元素,复制到dest数组的前3个位置上
                复制元素前:
                src数组元素[1,2,3,4,5],dest数组元素[6,7,8,9,10]
                复制元素后:
                src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]

    private static void demo02() {
        //定义源数组
        int[] src = {1,2,3,4,5};
        //定义目标数组
        int[] dest = {6,7,8,9,10};
        System.out.println("复制前:"+ Arrays.toString(dest));
        //使用System类中的arraycopy把源数组的前3个元素复制到目标数组的前3个位置上
        System.arraycopy(src,0,dest,0,3);
        System.out.println("复制后:"+ Arrays.toString(dest));
    }

二、StringBuilder类

在这里插入图片描述

1.StringBuilder的构造方法

    java.lang.StringBuilder类:字符串缓冲区,可以提高字符串的效率
    构造方法:
        StringBuilder() 构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。
        StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容。

public class Demo01StringBuilder {
    public static void main(String[] args) {
        //空参数构造方法
        StringBuilder bu1 = new StringBuilder();
        System.out.println("bu1:"+bu1);//bu1:""

        //带字符串的构造方法
        StringBuilder bu2 = new StringBuilder("abc");
        System.out.println("bu2:"+bu2);//bu2:abc
    }
}

2.StringBuilder的普通方法
    StringBuilder的常用方法:
        public StringBuilder append(...)
public class Demo02StringBuilder {
    public static void main(String[] args) {
        //创建StringBuilder对象
        StringBuilder bu = new StringBuilder();
		
		//方法一:
        bu.append("abc");
        bu.append(1);
        bu.append(true);
        bu.append(8.8);
        bu.append('中');
        System.out.println(bu);//abc1true8.8中

		//方法二:
        bu.append("abc").append(1).append(true).append(8.8).append('中');//abc1true8.8中
        System.out.println(bu);//abc1true8.8中
    }
}
    StringBuilder和String可以相互转换:
        String->StringBuilder:可以使用StringBuilder的构造方法
            StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容。
        StringBuilder->String:可以使用StringBuilder中的toString方法
            public String toString():将当前StringBuilder对象转换为String对象。
public class Demo03StringBuilder {
    public static void main(String[] args) {
        
        //String->StringBuilder
        String str = "hello";
        StringBuilder bu = new StringBuilder(str);
        
        //往StringBuilder中添加数据
        bu.append("world");
        System.out.println("bu:"+bu);//helloworld

        //StringBuilder->String
        String s = bu.toString();
        System.out.println("s:"+s);//helloworld
    }
}

三、Integer

在这里插入图片描述

1.装箱和拆箱

    装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)
        构造方法:
            Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。
            Integer(String s) 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
                传递的字符串,必须是基本类型的字符串,否则会抛出异常 "100" 正确  "a" 抛异常
        静态方法:
            static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例。
            static Integer valueOf(String s) 返回保存指定的 String 的值的 Integer 对象。
            
    拆箱:在包装类中取出基本类型的数据(包装类->基本类型的数据)
        成员方法:
            int intValue()int 类型返回该 Integer 的值。

在这里插入图片描述

2.自动装箱与自动拆箱

基本类型的数据和包装类之间可以自动的相互转换

在这里插入图片描述

3.基本类型与字符串类型之间的相互转换
    基本类型与字符串类型之间的相互转换
    基本类型->字符串(String)的方法:
        1.基本类型的值+""  最简单的方法(工作中常用)
        2.Integer的静态方法toString(参数),注意:不是Object类的toString() 重载
            static String toString(int i) 返回一个表示指定整数的 String 对象。
        3.String类的静态方法valueOf(参数)
            static String valueOf(int i) 返回 int 参数的字符串表示形式。
    字符串(String)->基本类型
        使用包装类的静态方法parseXXX("字符串");
            Integer类: static int parseInt(String s)
            Double类: static double parseDouble(String s)

在这里插入图片描述

欢迎纠错和指导,感谢浏览和收藏

package com.example.meal_ordering_system.controller; import com.example.meal_ordering_system.entity.*; import com.example.meal_ordering_system.service.MenusService; import com.example.meal_ordering_system.service.OrdersService; import com.example.meal_ordering_system.service.UsersService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * (Orders)表控制层 * * @author makejava * @since 2021-02-04 12:51:20 */ @Controller @RequestMapping("orders") public class OrdersController { /** * 服务对象 */ @Autowired @Qualifier("ordersService") private OrdersService ordersService; @Autowired @Qualifier("menusService") private MenusService menusService; @Autowired @Qualifier("usersService") private UsersService usersService; //获取全部订单信息 /** * 获取全部订单信息(优化版) */ @RequestMapping("ordergetall") public String ordergetall(HttpServletRequest request) { try { // 每页显示记录数 final int PAGE_SIZE = 5; // 获取总记录数 Integer totalCount = ordersService.pageCount(); System.out.println("总订单数:" + totalCount); // 计算总页数 Integer allpage = totalCount / PAGE_SIZE; if (totalCount % PAGE_SIZE != 0) { allpage++; } System.out.println("总页数:" + allpage); // 获取当前页码,默认第1页 String currentPageStr = request.getParameter("currentpage"); int currentPage = 1; if (currentPageStr != null && !currentPageStr.isEmpty()) { currentPage = Integer.parseInt(currentPageStr); // 防止页码越界 if (currentPage <= 0) { currentPage = 1; System.out.println("页码修正为第1页"); } else if (currentPage > allpage) { currentPage = allpage; System.out.println("页码修正为最后一页:" + allpage); } } // 计算数据库查询起始索引(从0开始) int startIndex = (currentPage - 1) * PAGE_SIZE; System.out.println("当前页码:" + currentPage + ",查询起始索引:" + startIndex); // 执行分页查询 List<Orders> orderList = ordersService.pageList(startIndex, PAGE_SIZE); if (orderList == null) { orderList = new ArrayList<>(); System.out.println("查询结果为空,初始化空列表"); } System.out.println("本次查询获取订单数:" + orderList.size()); // 传递数据到前端 request.setAttribute("ordersearch", orderList); // 统一使用ordersearch属性名 // 构建分页信息 Pages pageInfo = new Pages(String.valueOf(currentPage), allpage); request.setAttribute("pages", pageInfo); System.out.println("分页信息已设置:当前页=" + currentPage + ",总页数=" + allpage); return "/admin/order"; // 跳转到订单页面 } catch (NumberFormatException e) { System.err.println("页码格式错误:" + e.getMessage()); request.setAttribute("errorMsg", "页码格式错误,请检查参数"); return "error/errorPage"; // 跳转到错误页面 } catch (Exception e) { System.err.println("订单查询异常:" + e.getMessage()); e.printStackTrace(); request.setAttribute("errorMsg", "订单查询失败,请联系管理员"); return "error/errorPage"; } } //确认订单 确认则将deliverys设置为一否则删除 @RequestMapping("OrderComfirm") public String OrderComfirm( HttpServletRequest request){ int id=Integer.parseInt(request.getParameter("id")); String reqtype=request.getParameter("reqtype"); if(reqtype.equals("delivery")){ ordersService.updatedeliveryById(id); }else if(reqtype.equals("del")){ ordersService.deleteById(id); }else{ System.out.println("错误"); } return "redirect:/orders/ordergetall"; } @RequestMapping("order_search") public String order_search( HttpServletRequest request) { return "/admin/order_search"; } @RequestMapping("ordergetallbydelivery") public String ordergetallbydelivery(HttpServletRequest request){ String delivery=request.getParameter("delivery"); Integer d=Integer.parseInt(delivery); List<Orders> list=ordersService.pageListByDelivery(d); HttpSession session=request.getSession(); session.setAttribute("ordersearch", list); return "/qiantai/order"; } @RequestMapping(value="order_qiantai",method = RequestMethod.POST) public String order_qiantai( HttpServletRequest request) throws UnsupportedEncodingException { List<Orders> list=null; HttpSession session=request.getSession(); request.setCharacterEncoding("utf-8"); Integer id=null; String menuname=null; String day1=null; if(request.getParameter("menuname")!=null&&(!request.getParameter("menuname").equals(""))){ menuname=request.getParameter("menuname"); list=ordersService.pageListByMenue(menuname); }else if(request.getParameter("date")!=null&&(!request.getParameter("date").equals(""))){ day1=request.getParameter("date"); Integer a=Integer.parseInt(day1.substring(9,10)); String aa=""+(a+1); StringBuilder day=new StringBuilder(day1); day.replace(9,10,aa); String day2=day.toString(); list=ordersService.pageListByDate(day1,day2); }else { System.out.println("未提交"); } session.setAttribute("ordersearch", list); System.out.println(id); System.out.println(menuname); System.out.println(day1); return "/qiantai/order"; } @RequestMapping(value="order_searchs",method = RequestMethod.POST) public String order_searchs( HttpServletRequest request) throws UnsupportedEncodingException { List<Orders> list=null; HttpSession session=request.getSession(); request.setCharacterEncoding("utf-8"); Integer id=null; String menuname=null; String day1=null; if(request.getParameter("userid")!=null&&(!request.getParameter("userid").equals(""))){ id=Integer.parseInt(request.getParameter("userid")); list=ordersService.pageListByID(id); }else if(request.getParameter("menuname")!=null&&(!request.getParameter("menuname").equals(""))){ menuname=request.getParameter("menuname"); list=ordersService.pageListByMenue(menuname); }else if(request.getParameter("date")!=null&&(!request.getParameter("date").equals(""))){ day1=request.getParameter("date"); Integer a=Integer.parseInt(day1.substring(9,10)); String aa=""+(a+1); StringBuilder day=new StringBuilder(day1); day.replace(9,10,aa); String day2=day.toString(); list=ordersService.pageListByDate(day1,day2); }else { System.out.println("未提交"); } session.setAttribute("ordersearch", list); System.out.println(id); System.out.println(menuname); System.out.println(day1); return "/admin/order_search"; } //跳转到statistic页面 @RequestMapping("order_statistic") public String order_statistic( HttpServletRequest request) throws UnsupportedEncodingException { List<Orders> list=null; HttpSession session=request.getSession(); request.setCharacterEncoding("utf-8"); SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(System.currentTimeMillis()); String day1=formatter.format(date); Integer a=Integer.parseInt(day1.substring(9,10)); String aa=""+(a+1); StringBuilder day=new StringBuilder(day1); day.replace(9,10,aa); String day2=day.toString(); System.out.println(a); System.out.println(day1); System.out.println(day2); list=ordersService.pageListByDate(day1,day2); session.setAttribute("orderstatistic", list); return "/admin/order_statistic"; } @RequestMapping("orderqiantai") public String orderqiantai( HttpServletRequest request){ return "/qiantai/order"; } //放入购物车 @RequestMapping("order_addshoppingcar") public String order_addshoppingcar(HttpServletRequest request){ HttpSession session=request.getSession(); String menuId = request.getParameter("menuId"); Integer id=Integer.parseInt(menuId); Integer sum=(Integer) session.getAttribute("sum"); if(sum==null){ sum=1; session.setAttribute("sum",sum); } Menus menus = menusService.queryById(id); String name=menus.getName(); float price=menus.getPrice1(); ShoppingCart shoppingCart1=new ShoppingCart(id,name,price,sum); List<ShoppingCart> shoppingCarts=new ArrayList(); if(session.getAttribute("shoppingcar")!=null){ shoppingCarts=(List<ShoppingCart>)session.getAttribute("shoppingcar"); for (ShoppingCart shoppingCart:shoppingCarts) { if(name.equals(shoppingCart.getName())){ sum=shoppingCart.getSums()+1; shoppingCarts.remove(shoppingCart); break; } } shoppingCart1=new ShoppingCart(id,name,price,sum); shoppingCarts.add(shoppingCart1); session.setAttribute("shoppingcar",shoppingCarts); }else{ shoppingCart1=new ShoppingCart(id,name,price,sum); shoppingCarts.add(shoppingCart1); session.setAttribute("shoppingcar",shoppingCarts); } return "redirect:/menus/qiantai/allMenus"; } //购物车单个取消 @RequestMapping("order_shoppingcardel") public String order_shoppingcardel(HttpServletRequest request){ HttpSession session=request.getSession(); List<ShoppingCart> shoppingCarts=(List<ShoppingCart>)session.getAttribute("shoppingcar"); Integer id=Integer.parseInt(request.getParameter("del")); Integer i=0; for (ShoppingCart shoppingCart:shoppingCarts) { if(i.equals(id)){ shoppingCarts.remove(shoppingCart); break; } i++; } return "redirect:/menus/qiantai/allMenus"; } @RequestMapping("order_addshoppingcartoOrder") //提交或取消订单 public String order_addshoppingcartoOrder(HttpServletRequest request) { HttpSession session=request.getSession(); List<ShoppingCart> shoppingCarts=(List<ShoppingCart>)session.getAttribute("shoppingcar"); if(session.getAttribute("user_session")!=null) { Users user = (Users) session.getAttribute("user_session"); Integer userid = usersService.queryByname(user.getName()); Integer delivery = 0; String remove = request.getParameter("remove"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(System.currentTimeMillis()); String day = formatter.format(date); Integer id = null; if (shoppingCarts != null) { for (ShoppingCart shoppingCart : shoppingCarts) { Integer sums = shoppingCart.getSums(); Integer menuid = shoppingCart.getId(); Orders orders = new Orders(id, userid, menuid, sums, day, delivery); ordersService.insert(orders); } session.removeAttribute("shoppingcar"); } if(remove!=null) { if (remove.equals("1")) { session.removeAttribute("shoppingcar"); } } }else{ return "redirect:../public/qiantai/login.jsp"; } return "redirect:/menus/qiantai/allMenus"; } }package com.example.meal_ordering_system.service; import com.example.meal_ordering_system.entity.Orders; import java.util.List; /** * (Orders)表服务接口 * * @author makejava * @since 2021-02-04 12:49:14 */ public interface OrdersService { //分页查询销售订单信息 List<Orders> pageList(int a,int b); //返回页面个数 int pageCount(); //更新delivery int updatedeliveryById(Integer id); //删除订单 int deleteById(Integer id); //查询全部订单通过id List<Orders> pageListByID(int id); //查询全部订单通过日期 List<Orders> pageListByDate(String times1,String times2); //查询全部订单通过menu List<Orders> pageListByMenue(String name); //查找所有订单通过delivery List<Orders> pageListByDelivery(Integer delivery); //增加order int insert(Orders orders); }package com.example.meal_ordering_system.service.impl; import com.example.meal_ordering_system.dao.OrdersDao; import com.example.meal_ordering_system.entity.Orders; import com.example.meal_ordering_system.entity.Pages; import com.example.meal_ordering_system.service.OrdersService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import java.util.List; /** * (Orders)表服务实现 * * @author makejava * @since 2021-02-04 12:49:15 */ @Service("ordersService") public class OrdersServiceImpl implements OrdersService { @Autowired @Qualifier("ordersDao") private OrdersDao ordersDao; private Pages pages; @Override public List<Orders> pageList(int a,int b){ return this.ordersDao.pageList(a,b); } @Override public int pageCount() { return this.ordersDao.pageCount(); } @Override public int updatedeliveryById(Integer id) { return this.ordersDao.updatedeliveryById(id); } @Override public int deleteById(Integer id) { return this.ordersDao.deleteById(id); } @Override public List<Orders> pageListByID(int id) { return this.ordersDao.pageListByID(id); } @Override public List<Orders> pageListByDate(String times1,String times2) { return this.ordersDao.pageListByDate(times1,times2); } @Override public List<Orders> pageListByMenue(String name) { return this.ordersDao.pageListByMenue(name); } @Override public List<Orders> pageListByDelivery(Integer delivery) { return this.ordersDao.pageListByDelivery(delivery); } @Override public int insert(Orders orders) { return this.ordersDao.insert(orders); } }package com.example.meal_ordering_system.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; public class Orders { private Integer id; private Integer userid; private Integer menuid; private Integer menusum; private String times; private Integer delivery; private Users users; private Menus menus; public Orders() { } public Orders(Integer id, Integer userid, Integer menuid, Integer menusum, String times, Integer delivery, Users users, Menus menus) { this.id = id; this.userid = userid; this.menuid = menuid; this.menusum = menusum; this.times = times; this.delivery = delivery; this.users = users; this.menus = menus; } public Orders(Integer id, Integer userid, Integer menuid, Integer menusum, String times, Integer delivery) { this.id = id; this.userid = userid; this.menuid = menuid; this.menusum = menusum; this.times = times; this.delivery = delivery; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getUserid() { return userid; } public void setUserid(Integer userid) { this.userid = userid; } public Integer getMenuid() { return menuid; } public void setMenuid(Integer menuid) { this.menuid = menuid; } public Integer getMenusum() { return menusum; } public void setMenusum(Integer menusum) { this.menusum = menusum; } public String getTimes() { return times; } public void setTimes(String times) { this.times = times; } public Integer getDelivery() { return delivery; } public void setDelivery(Integer delivery) { this.delivery = delivery; } public Users getUsers() { return users; } public void setUsers(Users users) { this.users = users; } public Menus getMenus() { return menus; } public void setMenus(Menus menus) { this.menus = menus; } }根据这个可以不进行加入DTO吗,就直接使用实体进行数据传递。
最新发布
06-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlackTurn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值