首页 文章 精选 留言 我的

精选列表

搜索[在线教育互动课堂],共8274篇文章
优秀的个人博客,低调大师

MeEdu v3.2 版本上线,在线教育点播系统

新增 added: 课程章节收缩 added: 用户协议,用户隐私协议,关于我们页面增加自定义Js代码 added: 课程和视频评论控制 added: 视频批量删除 added: 后台积分操作 added: 视频pc和h5的播放器指定 added: 视频试看 added: 视频快进控制 added: 试看标签 优化 优化:系统配置数据改为数据库存储 优化:阿里云相关依赖代码优化 修复 fixed: 搜索页面标题 fixed: helper.php的加载 fixed: 课程观看进度判断 fixed: 傻瓜安装 Github:https://github.com/Qsnh/meedu Gitee:https://gitee.com/myteng/MeEdu 官网:https://meedu.vip 当前功能概览 视频在线点播 课程评论/视频评论 支持阿里云视频点播、腾讯云视频点播服务 手机号注册/登录(短信登录)/密码找回/手机号绑定 QQ登录/Github登录/微信开放平台扫码登录 课程单独购买/视频单独购买/全站会员三种收费模式 站内消息 支付宝/微信/手动转账三种支付方式 积分功能 视频试看、视频禁止快进 视频播放跑马灯(防录屏) 视频播放统计/课程观看进度/用户观看统计 学习历史/观看记录/课程收藏 优惠码功能 邀请/一级返现/支付宝提现 阿里云短信/云片短信 系统缓存 图片本地存储/七牛云存储/阿里云oss存储 用户协议/用户隐私协议 后台多角色多权限管理 推广链接(用于第三方推广) 70%+的单元测试覆盖率 SEO优化 友情链接 插件系统 模板系统 微信小程序 MeEdu采用 MIT 开源许可证,你可以在商业项目中免费使用MeEdu或者基于MeEdu二次 开发而不必支付费用。

优秀的个人博客,低调大师

领课教育—在线教育系统(部署文档)

1、项目源码导入 源码地址:https://gitee.com/roncoocom/roncoo-education 觉得我们项目还不错的朋友记得给个Star哦! 2、项目导入问题解决方法 (1)pom.xml文件报错,如图。 解答:这个是因为jdk和maven导致的,需要把Eclipse改为使用本地JDK(默认为JRE),maven最低版本要求3.5+ (2)很多get、set方法报错,如图。 解答:由于本项目使用了lombok来优化代码,消除冗长代码,所以如果 Eclipse没配置有lombok这个jar会 报错,需要配置lombok。 在Eclipse根目录加入lombok,eclipse.ini文件加入-javaagent:lombok.jar,重启eclipse即可。 使用IDEA的同学,也可以安装对应的插件 3、数据库脚本导入 获取数据库脚本,请加群! 群查找请看:https://gitee.com/roncoocom/roncoo-education 4、项目运行 (1)模块介绍: 注册中心(roncoo-education-server-eureka)配置中心(roncoo-education-server-config)课程模块(roncoo-education-course)用户模块(roncoo-education-user)系统模块(roncoo-education-system)后台模块(roncoo-education-boss)定时器(roncoo-education-job)网关工程(roncoo-education-gateway)链路监控(roncoo-education-server-zipkin)应用监控(roncoo-education-server-admin) (2)修改注册中心(application-dev.properties): info.eureka.host=localhost # 设置不注册自身eureka.client.register-with-eureka=falseeureka.client.fetch-registry=false (3)修改课程、用户、系统、后台模块、应用监控,定时器,网关(bootstrap.properties): info.eureka.host01=localhostinfo.eureka.host02=localhostspring.profiles.active=dev (4)修改配置中心(application-dev.properties): spring.data.elasticsearch.cluster-nodes= 节点spring.data.elasticsearch.cluster-name=集群名称spring.redis.host=redis地址spring.redis.port=redis端口spring.redis.password=redis密码 (5)修改配置中心模块工程数据库连接(roncoo-education-course-service-dev.properties)、(roncoo-education-user-service-dev.properties)和(roncoo-education-system-service-dev.properties): spring.datasource.druid.url=本地数据库连接spring.datasource.druid.username=mysql账号spring.datasource.druid.password=mysql密码mysql密码使用durid加密:java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools 你的密码 (6)启动顺序:注册中心 → 配置中心→模块工程 → 定时器 → 网关工程 → 应用监控、链路监控(可以不启动) 注册中心地址:http://localhost:5761管理后台地址:http://localhost:5800网关服务地址:http://localhost:5840 5、运营后台运行 项目名称:roncoo-education-bossapi——主要存放了各个工程的接口config——主要配置网关地址,经过网关请求后台接口views——主要是存放页面修改config里index.js的dev为开发环境网关地址: 本地ip+网关端口修改config里build.js为开发环境网关地址: ip+网关端口 前端运行需要用到node Node版本:9.0.0以上 编译使用:安装依赖:npm install本地开发 启动项目:npm run dev打包正式环境:npm run build访问地址:http://localhost:5800/ 6、前端导入运行 前端源码地址:https://gitee.com/roncoocom/roncoo-education-webapi——主要存放了各个工程的接口config——主要配置网关地址,经过网关请求后台接口pages——主要是存放页面修改config里conf.js的开发环境网关地址: 本地ip+网关端口/#/ 前端运行需要用到Node Node版本: 9.0.0以上 编译使用:npm installnpm run dev前端访问地址:http://127.0.0.1:3000/

优秀的个人博客,低调大师

杨老师课堂之JavaSe 部分面试题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kese7952/article/details/80535100 Java基础面试题 Java基础面试题 1.简述 path 和 classpath 的区别 2.请说说你对 JVM 的理解 3.char 型变量中能不能存贮一个中文汉字?请说出理由 4.简述 break、continue 和 return 语句的区别。 5.请简述方法重写和方法重载的区别? 6.请简述 Error 和 Exception 有什么区别? 7.请简述 synchronized 和 java.util.concurrent.locks.Lock 的异同点 8.进程和线程之间有什么不同 9.请简述装箱和拆箱的概念。 10.请简述 Hashtable 和 HashMap 的区别。 11.请简述使用泛型的优点。 12.简述 TCP/IP 协议的层次结构 1.简述 path 和 classpath 的区别 path:path 环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径, 每个路径之间以分号分隔。当在命令行窗口运行一个可执行文件时,操作系统首先会在当前 目录下查找是否存在该文件,如果不存在会继续在 path 环境变量中定义的路径下去寻找这 个文件,如果仍未找到,系统会报错。 classpath:classpath 环境变量也是系统环境变量中的一种,它用于保存一系列类(.class) 文件的路径。当 Java 虚拟机需要运行一个类时,会先在 classpath 环境变量中所定义的路径 下去寻找所需的 class 文件。如果 classpath 的路径最后有分号,则在 classpath 中找不到时, 再到当前路径查找;如果最后无分号,则只在 classpath 设置的路径中查找。 2.请说说你对 JVM 的理解 ​ JVM 是 JavaVirtual Machine 的缩写,全称是 Java 虚拟机。Java 语言的一个非常重要的 特性就是跨平台性,而 Java 虚拟机是实现这一特性的关键。不同的操作系统需要使用不同 版本的虚拟机,这种方式使得 Java 语言能够“一次编写,到处运行”。Java 语言编译程序只 需生成在 Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。 3.char 型变量中能不能存贮一个中文汉字?请说出理由 ​ char 型变量中能不能存贮一个中文汉字?请说出理由。 char 型变量是用来存储 Unicode 编码的字符的, Unicode 编码字符集中包含了汉字,所以,char 型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在 Unicode 编码 字符集中,那么,这个 char 型变量中就不能存储这个特殊汉字。补充说明:Unicode 编码占 用两个字节,所以 char 类型的变量也是占用两个字节。 4.简述 break、continue 和 return 语句的区别。 break 语句:在 switch 条件语句和循环语句中都可以使用 break 语句。当它出现在 switch 条件语句中时,作用是终止某个 case 并跳出 switch 结构。当它出现在循环语句中,作用是 跳出循环语句,执行后面的代码 continue 语句:continue 语句用在循环语句中,它的作用是终止本次循环,执行下一次循 环。 return 语句:return 语句可以用于从当前的方法中退出,返回到该调用的方法的语句处, 继续执行。return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中 的返回值的类型一致。 5.请简述方法重写和方法重载的区别? 方法重写(Overriding)和方法重载(Overloading)是 Java 多态性的不同表现。 重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一 种表现。 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。 子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义 如同被“屏蔽”了。 如果在同一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类 型,则称为方法的重载(Overloading) 6.请简述 Error 和 Exception 有什么区别? Error 表示恢复不是不可能但很困难的情况下的一种严重问题,比如说内存溢出,仅靠修 改程序本身是不能处理这样的情况的。 Exception 表示程序本身可以处理的错误,在开发 Java 程序中进行的异常处理,都是针 对 Excption 类及其子类。在 Exception 类的众多子类中有一个特殊的 RuntimeException 类, 该类及其子类用于表示运行时异常,除了此类,Exception 类下所有其它的子类都用于表示 编译时异常。 7.请简述 synchronized 和 java.util.concurrent.locks.Lock 的异同点 相同点:Lock 能完成 synchronized 所实现的所有功能。 不同点:总的来说,Lock 更加灵活。Lock 有比 synchronized 更精确的线程予以和更好的 性能。synchronized 会自动释放锁,但是 Lock 一定要求程序员手工释放,并且必须在 finally 从句中释放。synchronized 修饰方法时表示同一个对象在不同的线程中表现为同步队列。如 果实例化不同的对象 那么 synchronized 就不会出现同步效果了。 8.进程和线程之间有什么不同 在一个操作系统中,每个独立执行的程序都可以称为一个进程,也就是“正在运行的程 序”。而在进程中还可以有多个执行单元同时执行,这些执行单元可以看作程序执行的一条 条线索,被称为线程。 Java 运行环境是一个包含了不同的类和程序的单一进程。线程可以被 称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。 9.请简述装箱和拆箱的概念。 ​ 包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本 数据类型的值转为引用数据类型,反之,拆箱是指将引用数据类型的对象转为基本数据类型。 10.请简述 Hashtable 和 HashMap 的区别。 ​ Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map 接口的一个实现 HashMap允许将null作为一个entry的key或者value,而Hashtable不允许还有就是, HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。 ​ 最大的不同是, Hashtable 的方法是线程安全的,而 HashMap 不是,在多个线程访问 Hashtable 时,不需要 自己为它的方法实现同步,而 HashMap 就必须为之提供外同步。 11.请简述使用泛型的优点。 (1)提高了 Java 程序的类型安全,在编译时期解决错误,避免程序在运行时期发生错 误。 (2)消除强制类型转换。 (3)泛型可以替代 Object 类型的参数和变量的使用,带来性 能的大幅提高并增加代码的可读性。 12.简述 TCP/IP 协议的层次结构 ​ TCP/IP 协议的层次结构比较简单,共分为四层,分别是应用层、传输层、网络层和链 路层。其中链路层是用于定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如 针对光纤、双绞线提供的驱动。 ​ 网络层是整个 TCP/IP 协议的核心,它主要用于将传输的数 据进行分组,将分组数据发送到目标计算机或者网络。运输层主要使网络程序进行通信,在 进行网络通信时,可以采用 TCP 协议,也可以采用 UDP 协议。应用层主要负责应用程序的 协议,例如 HTTP 协议、FTP 协议等。 作者: 杨校 出处: https://blog.csdn.net/kese7952 分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询。

优秀的个人博客,低调大师

杨老师课堂之ArrayList集合常用方法解析

ArrayList集合常用方法的解析 1.概述 ​ 在前面我们学习了数组,数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变。例如,要保存一个学校的学生,由于不停有新生来报道,同时也有学生毕业离开学校,这时学生的数目很难确定。为了保存这些数目不确定的元素,JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合。在这里,我们先介绍ArrayList集合,其他集合在后续课程中学习。 ​ ArrayList集合是程序中最常见的一种集合,它属于引用数据类(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。 1.1集合的创建 创建集合的常用格式在此说明一下: 导包:import java.util.ArrayList; 创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型: ArrayList<要存储元素的数据类型>变量名 = new ArrayList<要存储元素的数据类型>(); 1、集合中存储的元素,只能为<>括号中指定的数据类型元素; 2、“<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型; 我们通过举几个例子,来明确集合的创建方式: 存储String类型的元素 ArrayList list = new ArrayList(); 存储int类型的数据 ArrayList list = new ArrayList(); 存储Phone类型的数据 ArrayListlist = new ArrayList(); 1.2 集合中常用方法 ​ 接下来,我们来学习下ArrayList集合提供的一些常用方法,如下表: 通过代码演示上述方法的使用:ArrayListDemo01.java package cn.javabs.list.demo; import java.util.ArrayList; public class ArrayListDemo01 { public static void main(String[] args) { // 创建ArrayList集合 ArrayList<String> list = new ArrayList<String>(); // 向集合中添加元素 list.add("stu1"); list.add("stu2"); list.add("stu3"); list.add("stu4"); // 获取集合中元素的个数 System.out.println("集合的长度:" + list.size()); // 取出并打印指定位置的元素 System.out.println("第1个元素是:" + list.get(0)); System.out.println("第2个元素是:" + list.get(1)); System.out.println("第3个元素是:" + list.get(2)); System.out.println("第4个元素是:" + list.get(3)); } } 代码运行后截图: 1.3 集合中常用方法 通过集合遍历,得到集合中每个元素,这是集合中最常见的操作。集合的遍历与数组的遍历很像,都是通过索引的方式,集合遍历方式如下:ArrayListDemo02.java package cn.javabs.list.demo; import java.util.ArrayList; public class ArrayListDemo02 { public static void main(String[] args) { //创建ArrayList集合 ArrayList<Integer> list = new ArrayList<Integer>(); //添加元素到集合 list.add(13); list.add(15); list.add(22); list.add(29); //遍历集合 for (int i = 0; i < list.size() ; i++) { //通过索引,获取到集合中每个元素 int n = list.get(i) ; System.out.println(n); } } 上述代码中,第5行定义了一个可以存储int元素的集合;第7-10行,实现将int类型数值存储到集合中; ​ 第12-16行,实现遍历集合元素。这里要强调一点,get方法返回值的类型为集合中元素的类型。 1.4 集合中的常用方法补充 ArrayList集合提供的一些常用方法,如下表: boolean add(int index, Object obj) 功能:在集合中指定index位置,添加新元素obj 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用add(1,“javaWeb”)后,集合list中的元素为[“java”,“javaWeb”,“JavaEE”]。 Object set(int index, Object obj) 功能:用指定元素obj替代集合中指定index位置的元素 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用set(0,“javaWeb”)后,集合list中的元素为[“javaWeb”,“JavaEE”]。 Object remve(int index) 功能:从集合中删除指定index处的元素,返回该元素 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用remove(0)后,集合list中的元素为[“JavaEE”],返回值为“java”。 void clear() 功能:清空集合中所有元素 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用clear()后,集合list中的元素为空[ ]。 作者: 杨校 出处:https://blog.csdn.net/kese7952 分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询。

优秀的个人博客,低调大师

Microduino王镇山:将物联网带进课堂

创意过剩的时代,每个人都有造物的诉求。但各方面的门槛让很多人永远停留在幻想的层面,只有极少数的人一直走在将梦想‘造’进现实的路上。我们称之为极客。 但极客何其少,唯有读书高。随着硬件厂商这两年在国内的兴起,创客文化在国内日益浓郁。如何最大限度地降低创客们的开发成本,成了很多极客去思考的问题,王镇山的Microduino就是在这样的思考中得出的结果。 创客不一定是极客 据王镇山介绍,microduino有两个特性——尺寸小、模块化。开发者只需将自己的功能模块拼接起来,就可以组成一个硬件解决方案。操作起来远没有极客般令人不明觉厉。如今,Microduino已经推出50余款硬件产品。用Microduino做项目的开发者在海外有1万多名,而国内相对较少。 当王镇山回忆起自己的读书时代,他坦言道,在学校做项目的时候,很难从中得到成就感。究其原

优秀的个人博客,低调大师

uexam v3.8.0 发布,在线教育学习考试系统

学之思简介: 学之思开源考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持 web 端和微信小程序,能覆盖到 pc 机和手机等设备。 支持多种部署方式:集成部署、前后端分离部署、docker 部署。 本次更新内容: 1. 升级前端node版本至16,兼容v12-v16版本 2. 升级element ui框架版本 3. 修复微信小程序兼容问题 4. 修复部分系统登录失败问题 5. 接口、教程文档更新 学生端功能: 模块 介绍 登录 用户名、密码 注册 年级、用户名、密码 任务中心 管理员发布的年级任务,每个学生只能做一次 考试 题干支持文本、图片、数学公式、表格等,学生答题支持:文本 固定试卷 可重复练习、自行批改的试卷 时段试卷 在时间限制内,可重复练习、自行批改的试卷 考试记录 查看答卷记录和试卷信息 错题本 答错题目会自动进入错题本,显示题目基本信息 个人信息 显示学生个人资料 更新信息 修改个人资料、头像 个人动态 显示用户最近的个人动态 消息中心 用于接收管理员发送的消息 管理端功能: 模块 介绍 登录 用户名、密码 主页 试卷总数、题目总数、用户活跃度、题目月数量 学生列表 显示系统所有的学生,新增、修改、删除、禁用 管理员列表 显示系统所有的管理员,新增、修改、删除、禁用 学科列表 学科查询、修改、删除 学科创编 创建学科 试卷列表 试卷查询、修改、删除 试卷创编 创建的试卷为时段试卷、固定试卷、任务试卷 题目列表 题目查询、修改、删除 题目创建 题目支持单选题、多选题、判断题、填空题、简答题,题干支持文本、图片、表格、数学公式 任务列表 任务查询、修改、删除 消息列表 显示已发送的消息,消息已读人数等信息 消息发送 发送消息给多个用户 用户日志 显示所有用户日志 个人资料 显示管理员用户名、真实姓名 时间线 显示管理员创建时间 修改资料 修改姓名、手机号 小程序功能: 模块 介绍 登录 用户登录登出功能,登录会自动绑定微信账号,登出会解绑 注册 年级、用户名、密码 任务中心 管理员发布的年级任务,每个学生只能做一次 考试 题干支持文本、图片、数学公式、表格等,学生答题支持:文本 固定试卷 可重复练习、自行批改的试卷 时段试卷 在时间限制内,可重复练习、自行批改的试卷 考试记录 查看答卷记录和试卷信息 错题本 答错题目会自动进入错题本,显示题目基本信息 个人信息 显示学生个人资料 更新信息 修改个人资料、头像 个人动态 显示用户最近的个人动态 消息中心 用于接收管理员发送的消息

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册