Java项目:精美网上音乐平台(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
源码获取:博客首页 "资源" 里下载!
一、项目简述
本系统功能包括: 音乐播放 用户登录注册 用户信息编辑、头像修改 歌曲、歌单搜索 歌单打分 歌单、歌曲评论 歌单列表、歌手列表分页显示 歌词同步显不 音乐收藏、下载、拖动控制、音粉制 后台对用户、歌曲、歌手、歌单信息的管理
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX (Webstorm也 行)+ Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts都支 持)。
项目技术: Springboot + Maven + Mybatis + Vue + Redis, B/S 模式+ Maven等等
收藏信息控制层:
@RestController
@Controller
public class CollectController {@Autowiredprivate CollectServiceImpl collectService;// 添加收藏的歌曲@ResponseBody@RequestMapping(value = "/collection/add", method = RequestMethod.POST)public Object addCollection(HttpServletRequest req){JSONObject jsonObject = new JSONObject();String user_id = req.getParameter("userId");String type = req.getParameter("type");String song_id=req.getParameter("songId");String song_list_id=req.getParameter("songListId");if (song_id == ""){jsonObject.put("code", 0);jsonObject.put("msg", "收藏歌曲为空");return jsonObject;} else if (collectService.existSongId(Integer.parseInt(user_id), Integer.parseInt(song_id))) {jsonObject.put("code", 2);jsonObject.put("msg", "已收藏");return jsonObject;}Collect collect = new Collect();collect.setUserId(Integer.parseInt(user_id));collect.setType(new Byte(type));if (new Byte(type) == 0) {collect.setSongId(Integer.parseInt(song_id));} else if (new Byte(type) == 1) {collect.setSongListId(Integer.parseInt(song_list_id));}collect.setCreateTime(new Date());boolean res = collectService.addCollection(collect);if (res){jsonObject.put("code", 1);jsonObject.put("msg", "收藏成功");return jsonObject;}else {jsonObject.put("code", 0);jsonObject.put("msg", "收藏失败");return jsonObject;}}// 返回所有用户收藏列表@RequestMapping(value = "/collection", method = RequestMethod.GET)public Object allCollection(){return collectService.allCollect();}// 返回的指定用户ID收藏列表@RequestMapping(value = "/collection/detail", method = RequestMethod.GET)public Object collectionOfUser(HttpServletRequest req){String userId = req.getParameter("userId");return collectService.collectionOfUser(Integer.parseInt(userId));}// 删除收藏的歌曲@RequestMapping(value = "/collection/delete", method = RequestMethod.GET)public Object deleteCollection(HttpServletRequest req){String user_id = req.getParameter("userId").trim();String song_id = req.getParameter("songId").trim();return collectService.deleteCollect(Integer.parseInt(user_id), Integer.parseInt(song_id));}// 更新收藏@ResponseBody@RequestMapping(value = "/collection/update", method = RequestMethod.POST)public Object updateCollectMsg(HttpServletRequest req){JSONObject jsonObject = new JSONObject();String id = req.getParameter("id").trim();String user_id = req.getParameter("userId").trim();String type = req.getParameter("type").trim();String song_id = req.getParameter("songId").trim();
// String song_list_id = req.getParameter("songListId").trim();Collect collect = new Collect();collect.setId(Integer.parseInt(id));collect.setUserId(Integer.parseInt(user_id));collect.setType(new Byte(type));collect.setSongId(Integer.parseInt(song_id));boolean res = collectService.updateCollectMsg(collect);if (res){jsonObject.put("code", 1);jsonObject.put("msg", "修改成功");return jsonObject;}else {jsonObject.put("code", 0);jsonObject.put("msg", "修改失败");return jsonObject;}}
}
歌曲控制层:
@RestController
@Controller
public class SongController {@Autowiredprivate SongServiceImpl songService;@Beanpublic MultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory = new MultipartConfigFactory();//文件最大10M,DataUnit提供5中类型B,KB,MB,GB,TBfactory.setMaxFileSize(DataSize.of(10, DataUnit.MEGABYTES));/// 设置总上传数据总大小10Mfactory.setMaxRequestSize(DataSize.of(10, DataUnit.MEGABYTES));return factory.createMultipartConfig();}@Configurationpublic class MyPicConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// registry.addResourceHandler("/img/songPic/**").addResourceLocations("file:/Users/hongweiyin/Documents/github-workspace/music-website/music-server/img/songPic/");// registry.addResourceHandler("/song/**").addResourceLocations("file:/Users/hongweiyin/Documents/github-workspace/music-website/music-server/song/");}}// 添加歌曲@ResponseBody@RequestMapping(value = "/song/add", method = RequestMethod.POST)public Object addSong(HttpServletRequest req, @RequestParam("file") MultipartFile mpfile){JSONObject jsonObject = new JSONObject();String singer_id = req.getParameter("singerId").trim();String name = req.getParameter("name").trim();String introduction = req.getParameter("introduction").trim();String pic = "/img/songPic/tubiao.jpg";String lyric = req.getParameter("lyric").trim();if (mpfile.isEmpty()) {jsonObject.put("code", 0);jsonObject.put("msg", "音乐上传失败!");return jsonObject;}String fileName = mpfile.getOriginalFilename();String filePath = System.getProperty("user.dir") + System.getProperty("file.separator") + "song";File file1 = new File(filePath);if (!file1.exists()){file1.mkdir();}File dest = new File(filePath + System.getProperty("file.separator") + fileName);String storeUrlPath = "/song/"+fileName;try {mpfile.transferTo(dest);Song song = new Song();song.setSingerId(Integer.parseInt(singer_id));song.setName(name);song.setIntroduction(introduction);song.setCreateTime(new Date());song.setUpdateTime(new Date());song.setPic(pic);song.setLyric(lyric);song.setUrl(storeUrlPath);boolean res = songService.addSong(song);if (res) {jsonObject.put("code", 1);jsonObject.put("avator", storeUrlPath);jsonObject.put("msg", "上传成功");return jsonObject;} else {jsonObject.put("code", 0);jsonObject.put("msg", "上传失败");return jsonObject;}} catch (IOException e) {jsonObject.put("code", 0);jsonObject.put("msg", "上传失败" + e.getMessage());return jsonObject;} finally {return jsonObject;}}// 返回所有歌曲@RequestMapping(value = "/song", method = RequestMethod.GET)public Object allSong(){return songService.allSong();}// 返回指定歌曲ID的歌曲@RequestMapping(value = "/song/detail", method = RequestMethod.GET)public Object songOfId(HttpServletRequest req){String id = req.getParameter("id");return songService.songOfId(Integer.parseInt(id));}// 返回指定歌手ID的歌曲@RequestMapping(value = "/song/singer/detail", method = RequestMethod.GET)public Object songOfSingerId(HttpServletRequest req){String singerId = req.getParameter("singerId");return songService.songOfSingerId(Integer.parseInt(singerId));}// 返回指定歌手名的歌曲@RequestMapping(value = "/song/singerName/detail", method = RequestMethod.GET)public Object songOfSingerName(HttpServletRequest req){String name = req.getParameter("name");return songService.songOfSingerName('%'+ name + '%');}// 返回指定歌曲名的歌曲@RequestMapping(value = "/song/name/detail", method = RequestMethod.GET)public Object songOfName(HttpServletRequest req){String name = req.getParameter("name").trim();return songService.songOfName(name);}// 删除歌曲@RequestMapping(value = "/song/delete", method = RequestMethod.GET)public Object deleteSong(HttpServletRequest req){String id = req.getParameter("id");return songService.deleteSong(Integer.parseInt(id));}// 更新歌曲信息@ResponseBody@RequestMapping(value = "/song/update", method = RequestMethod.POST)public Object updateSongMsg(HttpServletRequest req){JSONObject jsonObject = new JSONObject();String id = req.getParameter("id").trim();String singer_id = req.getParameter("singerId").trim();String name = req.getParameter("name").trim();String introduction = req.getParameter("introduction").trim();String lyric = req.getParameter("lyric").trim();Song song = new Song();song.setId(Integer.parseInt(id));song.setSingerId(Integer.parseInt(singer_id));song.setName(name);song.setIntroduction(introduction);song.setUpdateTime(new Date());song.setLyric(lyric);boolean res = songService.updateSongMsg(song);if (res){jsonObject.put("code", 1);jsonObject.put("msg", "修改成功");return jsonObject;}else {jsonObject.put("code", 0);jsonObject.put("msg", "修改失败");return jsonObject;}}// 更新歌曲图片@ResponseBody@RequestMapping(value = "/song/img/update", method = RequestMethod.POST)public Object updateSongPic(@RequestParam("file") MultipartFile urlFile, @RequestParam("id")int id){JSONObject jsonObject = new JSONObject();if (urlFile.isEmpty()) {jsonObject.put("code", 0);jsonObject.put("msg", "音乐上传失败!");return jsonObject;}String fileName = System.currentTimeMillis()+urlFile.getOriginalFilename();String filePath = System.getProperty("user.dir") + System.getProperty("file.separator") + "img" + System.getProperty("file.separator") + "songPic";File file1 = new File(filePath);if (!file1.exists()){file1.mkdir();}File dest = new File(filePath + System.getProperty("file.separator") + fileName);String storeUrlPath = "/img/songPic/"+fileName;try {urlFile.transferTo(dest);Song song = new Song();song.setId(id);song.setPic(storeUrlPath);boolean res = songService.updateSongPic(song);if (res){jsonObject.put("code", 1);jsonObject.put("avator", storeUrlPath);jsonObject.put("msg", "上传成功");return jsonObject;}else {jsonObject.put("code", 0);jsonObject.put("msg", "上传失败");return jsonObject;}}catch (IOException e){jsonObject.put("code", 0);jsonObject.put("msg", "上传失败" + e.getMessage());return jsonObject;}finally {return jsonObject;}}// 更新歌曲URL@ResponseBody@RequestMapping(value = "/song/url/update", method = RequestMethod.POST)public Object updateSongUrl(@RequestParam("file") MultipartFile urlFile, @RequestParam("id")int id){JSONObject jsonObject = new JSONObject();if (urlFile.isEmpty()) {jsonObject.put("code", 0);jsonObject.put("msg", "音乐上传失败!");return jsonObject;}String fileName = urlFile.getOriginalFilename();String filePath = System.getProperty("user.dir") + System.getProperty("file.separator") + "song";File file1 = new File(filePath);if (!file1.exists()){file1.mkdir();}File dest = new File(filePath + System.getProperty("file.separator") + fileName);String storeUrlPath = "/song/"+fileName;try {urlFile.transferTo(dest);Song song = new Song();song.setId(id);song.setUrl(storeUrlPath);boolean res = songService.updateSongUrl(song);if (res){jsonObject.put("code", 1);jsonObject.put("avator", storeUrlPath);jsonObject.put("msg", "上传成功");return jsonObject;}else {jsonObject.put("code", 0);jsonObject.put("msg", "上传失败");return jsonObject;}}catch (IOException e){jsonObject.put("code", 0);jsonObject.put("msg", "上传失败" + e.getMessage());return jsonObject;}finally {return jsonObject;}}
}
歌手信息控制层:
@RestController
@Controller
public class SingerController {@Autowiredprivate SingerServiceImpl singerService;@Configurationpublic class MyPicConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// registry.addResourceHandler("/img/singerPic/**").addResourceLocations("file:/Users/hongweiyin/Documents/github-workspace/music-website/music-server/img/singerPic/");}}// 添加歌手@ResponseBody@RequestMapping(value = "/singer/add", method = RequestMethod.POST)public Object addSinger(HttpServletRequest req){JSONObject jsonObject = new JSONObject();String name = req.getParameter("name").trim();String sex = req.getParameter("sex").trim();String pic = req.getParameter("pic").trim();String birth = req.getParameter("birth").trim();String location = req.getParameter("location").trim();String introduction = req.getParameter("introduction").trim();Singer singer = new Singer();DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Date myBirth = new Date();try {myBirth = dateFormat.parse(birth);}catch (Exception e){e.printStackTrace();}singer.setName(name);singer.setSex(new Byte(sex));singer.setPic(pic);singer.setBirth(myBirth);singer.setLocation(location);singer.setIntroduction(introduction);boolean res = singerService.addSinger(singer);if (res){jsonObject.put("code", 1);jsonObject.put("msg", "添加成功");return jsonObject;}else {jsonObject.put("code", 0);jsonObject.put("msg", "添加失败");return jsonObject;}}// 返回所有歌手@RequestMapping(value = "/singer", method = RequestMethod.GET)public Object allSinger(){return singerService.allSinger();}// 根据歌手名查找歌手@RequestMapping(value = "/singer/name/detail", method = RequestMethod.GET)public Object singerOfName(HttpServletRequest req){String name = req.getParameter("name").trim();return singerService.singerOfName(name);}// 根据歌手性别查找歌手@RequestMapping(value = "/singer/sex/detail", method = RequestMethod.GET)public Object singerOfSex(HttpServletRequest req){String sex = req.getParameter("sex").trim();return singerService.singerOfSex(Integer.parseInt(sex));}// 删除歌手@RequestMapping(value = "/singer/delete", method = RequestMethod.GET)public Object deleteSinger(HttpServletRequest req){String id = req.getParameter("id");return singerService.deleteSinger(Integer.parseInt(id));}// 更新歌手信息@ResponseBody@RequestMapping(value = "/singer/update", method = RequestMethod.POST)public Object updateSingerMsg(HttpServletRequest req){JSONObject jsonObject = new JSONObject();String id = req.getParameter("id").trim();String name = req.getParameter("name").trim();String sex = req.getParameter("sex").trim();String pic = req.getParameter("pic").trim();String birth = req.getParameter("birth").trim();String location = req.getParameter("location").trim();String introduction = req.getParameter("introduction").trim();Singer singer = new Singer();DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Date myBirth = new Date();try {myBirth = dateFormat.parse(birth);}catch (Exception e){e.printStackTrace();}singer.setId(Integer.parseInt(id));singer.setName(name);singer.setSex(new Byte(sex));singer.setPic(pic);singer.setBirth(myBirth);singer.setLocation(location);singer.setIntroduction(introduction);boolean res = singerService.updateSingerMsg(singer);if (res){jsonObject.put("code", 1);jsonObject.put("msg", "修改成功");return jsonObject;}else {jsonObject.put("code", 0);jsonObject.put("msg", "修改失败");return jsonObject;}}// 更新歌手头像@ResponseBody@RequestMapping(value = "/singer/avatar/update", method = RequestMethod.POST)public Object updateSingerPic(@RequestParam("file") MultipartFile avatorFile, @RequestParam("id")int id){JSONObject jsonObject = new JSONObject();if (avatorFile.isEmpty()) {jsonObject.put("code", 0);jsonObject.put("msg", "文件上传失败!");return jsonObject;}String fileName = System.currentTimeMillis()+avatorFile.getOriginalFilename();String filePath = System.getProperty("user.dir") + System.getProperty("file.separator") + "img" + System.getProperty("file.separator") + "singerPic" ;File file1 = new File(filePath);if (!file1.exists()){file1.mkdir();}File dest = new File(filePath + System.getProperty("file.separator") + fileName);String storeAvatorPath = "/img/singerPic/"+fileName;try {avatorFile.transferTo(dest);Singer singer = new Singer();singer.setId(id);singer.setPic(storeAvatorPath);boolean res = singerService.updateSingerPic(singer);if (res){jsonObject.put("code", 1);jsonObject.put("pic", storeAvatorPath);jsonObject.put("msg", "上传成功");return jsonObject;}else {jsonObject.put("code", 0);jsonObject.put("msg", "上传失败");return jsonObject;}}catch (IOException e){jsonObject.put("code", 0);jsonObject.put("msg", "上传失败" + e.getMessage());return jsonObject;}finally {return jsonObject;}}
}
源码获取:博客首页 "资源" 里下载!
相关文章:

UICollectionView的使用方法
1、遵守协议 <UICollectionViewDataSource,UICollectionViewDelegateFlowLayout> 2、创建 UICollectionViewFlowLayout * layout [[UICollectionViewFlowLayout alloc]init]; layout.minimumInteritemSpacing 10; //最小item之间的间距 layout.minimumLineSpaci…

python学习--服务期间通讯和mysql数据库操作
服务端import socket import json ssocket.socket(socket.AF_INET,socket.SOCK_STREAM,0) host port1234 s.bind((host,port)) s.listen(3) while True:client,ipaddrs.accept()print "Got a connect from %s" %str(ipaddr)dataclient.recv(1024)metadatajson.loads(…

[Angular JS教程] HeroService: getHeroes failed: undefined 问题解决方法
最近在学习入门Angular JS,学习资源是https://angular.cn/tutorial, 在学习到 “https://angular.cn/tutorial/toh-pt6模拟数据服务器” 阶段时,客户端访问http://localhost:4200/无法get到英雄列表,Message系统记录日志如下&…

BZOJ 4059: [Cerc2012]Non-boring sequences ( )
要快速在一段子序列中判断一个元素是否只出现一次 , 我们可以预处理出每个元素左边和右边最近的相同元素的位置 , 这样就可以 O( 1 ) 判断.考虑一段序列 [ l , r ] , 假如我们找到了序列中唯一元素的位置 p , 那我们只需检查 [ l , p - 1 ] & [ p 1 , r ] 是否 non-boring…

Java项目:小蜜蜂扩音器网上商城系统(java+JSP+Servlet+JDBC+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述 用户功能模块: 用户注册: 用户登录:商品模块:订单模块;后台管理系统功能:管理员模块: 商品模块:…

WebBrowserProgramming - Python Wiki
WebBrowserProgramming - Python WikiWeb Browser Programming in Python

C++ transform for_each
#include<iostream>#include<vector>#include <list>#include <algorithm>#include <functional> using namespace std; //不需拷贝,速度快void square(int &elementParam){ elementParam elementParam*elementParam;} //速度…

When should static_cast, dynamic_cast and reinterpret_cast be used?
这是我偶然在 http://stackoverflow.com/questions/ 网页上发现的一个问题(类似博客园的博问),问题主要是关于询问应该怎样使用,以及何时使用C里面的这几种类型转换操作符:static_case, dynamic_cast,以及 …

Java项目:养老院管理系统(java+SSM+JSP+Easyui+maven+mysql)
源码获取:博客首页 "资源" 里下载! 运行环境: JDK1.8、tomcat8、eclipse、mysql5.6、Navicat 功能实现: 用户: 用户名,登录密码,姓名,性别,出生日期,用户照片,联系电话,邮箱,家庭地址,注册时间 老人: 老人编号,姓名,…

Linux访问Windows磁盘实现共享
业务需求说明:公司在部署hadoop集群和DB server与SAN存储,公司的想法是前端通过DB Server能够将非结构化的数据能放进SAN存储当中,而hadoop集群也能够访问这个SAN存储。因此需要在SAN磁盘阵列中开辟一个共享区域,这个区域技能让DB…

ubuntu环境ceph配置入门(一)
为什么80%的码农都做不了架构师?>>> 环境:ubuntu server 14.04 64bit,安装ceph版本0.79 正常情况下应有多个主机,这里为了快速入门以一台主机为例,多台主机配置方式类似。 1. 配置静态IP及主机名 静态IP配…

mysql查看当前实时连接数
静态查看: SHOW PROCESSLIST; SHOW FULL PROCESSLIST; SHOW VARIABLES LIKE %max_connections%; SHOW STATUS LIKE %Connection%; 实时查看: mysql> show status like Threads%; -------------------------- | Variable_name | Value | ------------…

lsof 简介
lsof简介 lsof(listopen files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协…

Java项目:健身器材商城系统(java+Jdbc+Servlet+Ajax+Fileupload+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Jdbc Servlert html css JavaScrip…

Xcode中如何解决无法使用svn命令行的问题
今天在自己机器上安装了xp虚拟机,然后在xp虚拟机上安装了svn的服务器.发现原本Xcode5以后就自带的svn竟然在终端无法使用命令行,出现了以下的错误: xcrun: error: active developer path ("/Volumes/Xcode/Xcode.app/Contents/Developer") does not exist, use xcode…

查看和设置MySQL数据库字符集(转)
查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -iname *.cnf -print /usr/share/mysql/my-innodb-heavy-4G.cnf/usr/share/mysql/my-large.cnf/usr/sha…

数据库管理工具dbeaver
https://dbeaver.io/ 转载于:https://www.cnblogs.com/mingzhang/p/11016229.html

linux文件权限详解
linux文件权限详解 一、文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户…

linux定时器(crontab)实例
linux实验示例----实现每2分钟将“/etc”下面的文件打包存储到“/usr/lobal”目录下 Step1:编辑当前用户的crontab并保存终端输入:>crontab -u root -l #查看root用户设置的定时器>crontab -u root -e #进入vi编译模式 00-59/2 * * * * /bin/bash …

Java项目:晚会抽奖系统(java+Jdbc+Servlet+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Jdbc Servlert html css JavaScrip…

hdu 4587 2013南京邀请赛B题/ / 求割点后连通分量数变形。
题意:求一个无向图的,去掉两个不同的点后最多有几个连通分量。 思路:枚举每个点,假设去掉该点,然后对图求割点后连通分量数,更新最大的即可。算法相对简单,但是注意几个细节: 1&…

javascript中 (function(){})();如何理解?
javascript中 (function(){})();如何理解? javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。 (function(){})是一个标准的函数定义,但是…
通过IP地址和子网掩码与运算计算相关地址
知道ip地址和子网掩码后可以算出: 1、网络地址 2、广播地址 3、地址范围 4、本网有几台主机 例1:下面例子IP地址为1921681005子网掩码是2552552550。算出网络地址、广播地址、地址范围、主机数。 一)分步骤计算 1) 将IP地址和子网掩码换算为二进制…

Java项目:兼职平台系统(java+Springboot+ssm+HTML+maven+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: HTML Springboot SpringMVC MyBatis…

java实现时间的比较
时间大小的比较以及把String类型的时间转换为Date类是时间在开发中是非常常见的,下面的主要是一个工具方法 public class Test {public static void main(String[] args) {// TODO Auto-generated method stubString sTime "2015-07-13";String fTime &…

在eclipse中通过基于spring data的easyrest风格的maven项目操纵cassandra和lucene
一、项目前提步骤1>、创建键空间CREATE KEYSPACE mykeyspaceWITH REPLICATION { class : SimpleStrategy, replication_factor : 1 };2>、创建表和关系数据库一样,开发前需要先建表,再操纵CREATE TABLE tweet (id uuid PRIMARY KEY,nickName text…

JAVA 多线程实现包子铺(买包子,吃包子)
1 package baozi;2 3 /*4 生产者(包子铺)类:是一个 线程类,继承Thread5 设置线程任务(run):生产包子6 对包子 进行判断7 true:有包子8 包子铺调用wait方法进…

字符串面试题(一)字符串逆序
字符串逆序可以说是最经常考的题目。这是一道入门级的题目,相信80%的程序员经历过这道题。给定一个字符串s,将s中的字符顺序颠倒过来,比如s"abcd",逆序后变成s"dcba"。 普通逆序 基本上没有这么考的…

Java项目:在线淘房系统(租房、购房)(java+SpringBoot+Redis+MySQL+Vue+SpringSecurity+JWT+ElasticSearch+WebSocket)
源码获取:博客首页 "资源" 里下载! 该系统有三个角色,分别是:普通用户、房屋中介、管理员。普通用户的功能:浏览房屋信息、预约看房、和中介聊天、申请成为中介等等。房屋中介的功能:发布房屋信息…

Be a person
做人不能太实诚 尤其是干我们这行的 多久时间能做完 你自己心里要有个估算 然后把时间再往后延 别他妈给自己找罪受 转载于:https://www.cnblogs.com/wskgjmhh/p/4644840.html