03 2020 档案
摘要:步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:编写 HeroUpdateServlet步骤4:配置web.xml步骤 1 : 先运行,看到效果,再学习老规矩,先下载下载区(点击进入)的可运行项目,配...
阅读全文
摘要:步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:修改HeroListServlet步骤4:配置web.xml步骤5:准备HeroEditServlet步骤 1 : 先运行,看到效果,再学习老规矩,先下...
阅读全文
摘要:步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:效果步骤4:资源步骤5:GetManyServlet步骤6:web.xml步骤7:getMany.html步骤8:测试步骤 1 : 先运行,看到效果,再...
阅读全文
摘要:步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:效果步骤4:资源步骤5:GetOneServlet步骤6:web.xml步骤7:getOne.html步骤8:测试步骤 1 : 先运行,看到效果,再学习...
阅读全文
摘要:步骤1:先运行,看到效果,再学习 步骤2:模仿和排错步骤3:效果步骤4:资源步骤5:submit.html步骤6:SubmitServlet步骤7:web.xml步骤8:测试步骤 1 : 先运行,看到效果,再学...
阅读全文
摘要:步骤1:使用Servlet进行CRUD开发的弊端步骤 1 : 使用Servlet进行CRUD开发的弊端用到这里,大家对使用Servlet进行CRUD开发就有比较全面感性认识了。 其中一个比较明显的弊端就是在Se...
阅读全文
摘要:步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:提供delete超链步骤4:修改HeroListServlet步骤5:配置web.xml步骤6:编写HeroDeleteServlet步骤7:测试步骤 ...
阅读全文
摘要:通过Servlet 实现增加功能步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:准备增加的页面 addHero.html步骤4:编写 HeroAddServlet步骤5:配置web.xml步骤6:测试...
阅读全文
摘要:CRUD是常见的页面功能,即我们常说的增删改查 C - Creation 增加 R - Retrieve 查询 U - Update 修改 D - DELETE 删除 本章节将介绍如何与JDBC结合,通过ser...
阅读全文
摘要:步骤1:现象步骤2:解决办法步骤 1 : 现象有时候点击Eclipse中的Tomcat启动,会弹出这么个对话框,表示启动失败步骤 2 : 解决办法解决办法粗暴一点:菜单-Window->Show View->O...
阅读全文
摘要:步骤1:现象步骤2:解决办法步骤 1 : 现象步骤 2 : 解决办法定位到 E:\project\.metadata\.plugins\org.eclipse.core.runtime\.settings ...
阅读全文
摘要:步骤1:导入动态Web步骤2:下载动态Web项目步骤3:导入到Eclipse中1步骤4:导入到Eclipse中2步骤5:动态Web项目J2EE步骤6:启动Tomcat步骤 1 : 导入动态Web在前面讲解了如何...
阅读全文
摘要:步骤1:切换到动态Web项目步骤2:准备java project步骤3:项目转换步骤4:设置content directory步骤5:点击确认步骤6:转换成功步骤 1 : 切换到动态Web项目前一个教程创建讲了...
阅读全文
摘要:步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:说明步骤4:新建Dynamic Web Project步骤5:Servlet类步骤6:解决HttpServlet找不到问题步骤7:刷新项目步骤8:web...
阅读全文
摘要:步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:首先准备上传页面 upload.html步骤4:接着准备 UploadPhotoServlet步骤5:配置web.xml步骤6:复制jar包步骤7:在项...
阅读全文
摘要:response是HttpServletResponse的实例,用于提供给浏览器的响应信息步骤1:设置响应内容步骤2:设置响应格式步骤3:设置响应编码步骤4:301或者302客户端跳转步骤5:设置不使用缓存示例...
阅读全文
摘要:request对象的类是HttpServletRequest,提供了很多有实用价值的方法步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:request的常见方法步骤4:获取参数步骤5:获取头信息步骤6...
阅读全文
摘要:有的时候会有这样的业务需求: tomcat一启动,就需要执行一些初始化的代码,比如校验数据库的完整性等。 但是Servlet的生命周期是在用户访问浏览器对应的路径开始的。如果没有用户的第一次访问,就无法执行相关...
阅读全文
摘要:页面跳转是开发一个web应用经常会发生的事情。 比如登录成功或是失败后,分别会跳转到不同的页面。 跳转的方式有两种,服务端跳转和客户端跳转步骤1:首先准备两个页面 success.html fail.html步...
阅读全文
摘要:步骤1:生命周期步骤2:实例化步骤3:初始化步骤4:提供服务步骤5:销毁步骤6:被回收步骤 1 : 生命周期一个Servlet的生命周期由 实例化,初始化,提供服务,销毁,被回收 几个步骤组成步骤 2 : 实例...
阅读全文
摘要:步骤1:获取中文的参数步骤2:返回中文的响应示例 1 : 获取中文的参数为了成功获取中文参数,需要做如下操作1. login.html中加上 这句话的目的是告诉浏览器,等下发消息给服务器的时候,使...
阅读全文
摘要:Servlet 需要提供对应的doGet() 与 doPost()方法步骤1:doGet()步骤2:doPost()步骤3:service()步骤 1 : doGet()当浏览器使用get方式提交数据的时候,s...
阅读全文
摘要:做到目前为止,已经可以使用简单的Servlet完成一些功能了。 接下来,把Servlet的调用流程整理一遍,让大家的思路更清晰一些。步骤1:流程图步骤2:login.html步骤3:/login路径步骤4:找到...
阅读全文
摘要:根据浏览器提交的账号密码返回登录成功或者失败 这一步本来应该通过访问数据库来实现,这里简化一下,直接在内存中进行校验 如果账号是 admin,密码是123, 就返回登录成功,否则返回登录失败步骤1:先运行,看到...
阅读全文
摘要:本例通过登录行为,演示servlet如何获取从浏览器提交的账号密码步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:创建 login.html步骤4:创建 LoginServlet步骤5:映射Login...
阅读全文
摘要:Servlet 本身不能独立运行,需要在一个web应用中运行的而一个web应用是部署在tomcat中的所以开发一个servlet需要如下几个步骤创建web应用项目编写servlet代码部署到tomcat中开发的...
阅读全文
摘要:步骤1:本知识点目的步骤2:下载步骤3:测试端口步骤4:成功启动截图步骤5:下载一个J2EE应用步骤6:部署步骤7:重启tomcat,并测试步骤 1 : 本知识点目的在接下来的课程中有大量的J2EE应用,比如s...
阅读全文
摘要:学员常常碰到启动Tomcat失败的问题,这里对Tomcat做了些调整. 1. 移除了对换变量中配置的CATALINA_HOME和CATALINE_BASE的依赖,运行startup.bat就一定是启动当前的to...
阅读全文
摘要:Tomcat启动的时候会报一个Exception loading sessions from persistent storage异常,但是又不影响正常的业务。步骤1:启动报错步骤 1 : 启动报错Tomcat...
阅读全文
摘要:端口被占用就无法启动tomcat所以要找到端口被占用的程序是哪一个然后再关闭对应的程序即可步骤1:查看80端口被哪些程序占用了步骤2:根据pid(进程id) 查询对应的应用程序步骤3:根据名称 结束该程序步骤 ...
阅读全文
摘要:步骤1:404问题步骤2:正确的端口号步骤3:环境变量步骤4:确定Web应用是否成功启动步骤5:webapps下的ROOT目录步骤6:访问地址的时候是否加了web应用的名称步骤7:是否访问对资源了步骤8:不能访...
阅读全文
摘要:列罗出了Tomcat常见的问题,如不能启动,屏幕一闪而过,启动之后,访问总是出现404等等常见问题。 以下排查手段都是针对通过startup.bat 独立方式启动的Tomcat,集成开发环境IDE(IDEA,E...
阅读全文
摘要:tomcat默认的端口号是8080,可以通过配置把端口号修改成80步骤1:server.xml步骤2:80端口步骤3:80端口被占用步骤 1 : server.xmltomcat的端口配置相关信息在 serve...
阅读全文
摘要:Tomcat是常见的免费的web服务器. Tomcat 这个名字的来历,Tomcat是一种野外的猫科动物,不依赖人类,独立生活。 Tomcat的作者,取这个名字的初衷是希望,这一款服务器可以自力更生,自给自足,...
阅读全文
摘要:通过反射机制,调用一个对象的方法步骤1:调用方法步骤2:练习-调用方法步骤3:答案-调用方法步骤 1 : 调用方法首先为Hero的name属性,增加setter和getter通过反射机制调用Hero的setNa...
阅读全文
摘要:反射非常强大,但是学习了之后,会不知道该如何使用,反而觉得还不如直接调用方法来的直接和方便。 通常来说,需要在学习了Spring 的依赖注入,反转控制之后,才会对反射有更好的理解,但是刚学到这里的同学,不一定接...
阅读全文
摘要:通过反射机制修改对象的属性步骤1:Hero.java步骤2:TestRelection步骤3:getField和getDeclaredField的区别步骤 1 : Hero.java为了访问属性,把name修改...
阅读全文
摘要:与传统的通过new 来获取对象的方式不同 反射机制,会先拿到Hero的“类对象”,然后通过类对象获取“构造器对象” 再通过构造器对象创建一个对象步骤1:创建一个对象步骤2:练习-通过配置文件获取对象步骤3:答案...
阅读全文
摘要:类对象概念: 所有的类,都存在一个类对象,这个类对象用于提供类本身的信息,比如有几种构造方法, 有多少属性,有哪些普通方法。步骤1:什么是类对象步骤2:获取类对象步骤3:获取类对象的时候,会导致类属性被初始化步...
阅读全文
摘要:如果使用单线程开发Socket应用,那么同一时间,要么收消息,要么发消息,不能同时进行。 为了实现同时收发消息,就需要用到多线程步骤1:同时收发消息步骤2:练习-有图形界面的聊天程序步骤3:答案-有图形界面的聊...
阅读全文
摘要:使用 Socket(套接字)进行不同的程序之间的通信步骤1:建立连接 步骤2:收发数字步骤3:收发字符串步骤4:使用Scanner步骤5:练习-服务端和客户端互聊步骤6:答案-服务端和客户端互聊步骤7:练习-聊...
阅读全文
摘要:IP地址与端口概念步骤1:IP地址步骤2:端口步骤3:获取本机IP地址步骤4:ping命令步骤5:使用java 执行ping命令步骤6:练习-判断本网段有多少可用的ip地址步骤7:答案-判断本网段有多少可用的i...
阅读全文
摘要:swing没有自带的日期控件,需要第三方的类 jar包可以在右侧下载步骤1:DatePicker步骤2:JXDatePicker步骤3:练习-统计文件数量步骤4:答案-统计文件数量步骤 1 : DatePick...
阅读全文
摘要:Java提供了非常便捷的方式切换界面风格步骤1:设置皮肤步骤 1 : 设置皮肤只需要提供一句代码 javax.swing.UIManager.setLookAndFeel("com.birosoft.liq...
阅读全文
摘要:步骤1:三种线程步骤2:事件调度线程是单线程的步骤3:初始化线程步骤4:事件调度线程步骤5:长耗时任务线程步骤6:练习-查找文件内容步骤7:答案-查找文件内容步骤 1 : 三种线程在Swing程序的开发中,需要...
阅读全文
摘要:步骤1:基本表格步骤2:JScrollPane步骤3:列宽步骤4:TableModel步骤5:进一步理解TableModel步骤6:TableModel 与DAO结合步骤7:TableSelectionMode...
阅读全文
摘要:步骤1:明确引用类型与对象类型的概念 步骤2:子类转父类(向上转型)步骤3:父类转子类(向下转型)步骤4:没有继承关系的两个类,互相转换步骤5:实现类转换成接口(向上转型)步骤6:接口转换成实现类(向下转型)步骤7:instanceof步骤8:练习-类型转换步骤9:答案-类型转换 示例 1 : 明确
阅读全文
摘要:工具栏用于存放常用的按钮步骤1:工具栏步骤2:给按钮设置提示信息步骤3:禁止工具栏拖动步骤 1 : 工具栏 package gui; import java.awt.BorderLayout; ...
阅读全文
摘要:GUI的菜单分为 菜单栏,菜单和菜单项步骤1:菜单栏和菜单步骤2:菜单项步骤3:练习-完成一个完整的记事本界面步骤4:答案-完成一个完整的记事本界面步骤 1 : 菜单栏和菜单菜单栏和菜单 package g...
阅读全文
摘要:步骤1:基本面板步骤2:ContentPane步骤3:SplitPanel步骤4:JScrollPanel步骤5:TabbedPanel步骤6:CardLayerout步骤7:练习-SplitPanel步骤8:...
阅读全文
摘要:JAVA的图形界面下有两组控件,一组是awt,一组是swing。 一般都是使用swing步骤1:标签步骤2:使用JLabel显示图片步骤3:按钮步骤4:复选框步骤5:单选框步骤6:按钮组步骤7:下拉框步骤8:对...
阅读全文
摘要:布局器是用在容器上的。 用来决定容器上的组件摆放的位置和大小步骤1:绝对定位步骤2:FlowLayout步骤3:BorderLayout步骤4:GridLayout步骤5:setPreferredSize步骤6...
阅读全文
摘要:JAVA的图形界面下有两组控件,一组是awt,一组是swing。 一般都是使用swing步骤1:标签步骤2:使用JLabel显示图片步骤3:按钮步骤4:复选框步骤5:单选框步骤6:按钮组步骤7:下拉框步骤8:对话...
阅读全文
摘要:布局器是用在容器上的。 用来决定容器上的组件摆放的位置和大小步骤1:绝对定位步骤2:FlowLayout步骤3:BorderLayout步骤4:GridLayout步骤5:setPreferredSize步骤6...
阅读全文
摘要:java的图形界面中,容器是用来存放 按钮,输入框等组件的。 窗体型容器有两个,一个是JFrame,一个是JDialog步骤1:JFrame步骤2:JDialog步骤3:模态JDialog步骤4:窗体大小不可变...
阅读全文
摘要:步骤1:按钮监听步骤2:键盘监听步骤3:鼠标监听步骤4:适配器步骤5:练习-切换显示步骤6:答案-切换显示步骤7:练习-上下左右移动步骤8:答案-上下左右移动示例 1 : 按钮监听创建一个匿名类实现ActionL...
阅读全文
摘要:GUI-Graphic User Interface 图形用户界面步骤1:简单的例子步骤2:练习-在上次关闭位置启动窗口步骤3:答案-在上次关闭位置启动窗口步骤 1 : 简单的例子JFrame是GUI中的容器 J...
阅读全文
摘要:在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击 这时候,就可以使用接口来实现这个效果。 接口就像是一种约定,我们约定某些英雄是物理系英雄,那么他们就一定能够进行物理攻击。 步骤1:物理攻击接口步骤2:设计一类英雄,能够使用物理攻击步骤3:魔法攻击接口步骤4:设计一类
阅读全文
摘要:与线程池类似的,数据库也有一个数据库连接池。 不过他们的实现思路是不一样的。 本章节讲解了自定义数据库连接池类:ConnectionPool,虽然不是很完善和健壮,但是足以帮助大家理解ConnectionPool...
阅读全文
摘要:DAO=DataAccess Object数据访问对象实际上就是运用了练习-ORM中的思路,把数据库相关的操作都封装在这个类里面,其他地方看不到JDBC的代码步骤1:DAO接口步骤2:HeroDAO步骤3:练习-...
阅读全文
摘要:ORM=Object Relationship Database Mapping 对象和关系数据库的映射 简单说,一个对象,对应数据库里的一条记录步骤1:根据id返回一个Hero对象步骤2:练习-ORM步骤3:答...
阅读全文
摘要:步骤1:不使用事务的情况步骤2:使用事务步骤3:MYSQL 表的类型必须是INNODB才支持事务步骤4:练习-事务步骤5:答案-事务步骤 1 : 不使用事务的情况没有事务的前提下假设业务操作是:加血,减血各做一次...
阅读全文
摘要:步骤1:获取自增长id步骤2:获取表的元数据步骤3:练习-自增长id步骤4:答案-自增长id步骤 1 : 获取自增长id在Statement通过execute或者executeUpdate执行完插入语句后,MyS...
阅读全文
摘要:execute与executeUpdate的区别步骤1:相同点步骤2:不同点步骤3:练习-分页查询步骤4:答案-分页查询步骤 1 : 相同点execute与executeUpdate的相同点:都可以执行增加,删除...
阅读全文
摘要:步骤1:使用PreparedStatement步骤2:PreparedStatement的优点1-参数设置步骤3:PreparedStatement的优点2-性能表现步骤4:PreparedStatement的优...
阅读全文
摘要:执行查询SQL语句步骤1:查询语句步骤2:SQL语句判断账号密码是否正确步骤3:获取总数步骤4:练习-分页查询步骤5:答案-分页查询步骤 1 : 查询语句executeQuery 执行SQL查询语句注意: 在取第...
阅读全文
摘要:CRUD是最常见的数据库操作,即增删改查 C 增加(Create) R 读取查询(Retrieve) U 更新(Update) D 删除(Delete) 在JDBC中增加,删除,修改的操作都很类似,只是传递不同的...
阅读全文
摘要:与synchronized类似的,lock也能够达到同步的效果步骤1:回忆 synchronized 同步的方式步骤2:使用Lock对象实现同步效果步骤3:trylock方法步骤4:线程交互步骤5:总结Lock和...
阅读全文
摘要:每一个线程的启动和结束都是比较消耗时间和占用资源的。 如果在系统中用到了很多的线程,大量的启动和结束动作会导致系统的性能变卡,响应变慢。 为了解决这个问题,引入线程池这种设计思想。 线程池的模式很像生产者消费者模...
阅读全文
摘要:线程之间有交互通知的需求,考虑如下情况: 有两个线程,处理同一个英雄。 一个加血,一个减血。 减血的线程,发现血量=1,就停止减血,直到加血的线程为英雄加了血,才可以继续减血步骤1:不好的解决方式步骤2:使用wa...
阅读全文
摘要:步骤1:为项目导入mysql-jdbc的jar包步骤2:初始化驱动步骤3:建立与数据库的连接步骤4:创建Statement步骤5:执行SQL语句步骤6:关闭连接步骤7:使用try-with-resource的方式...
阅读全文
摘要:JDBC (Java DataBase Connection) 是通过JAVA访问数据库 所以需要对数据库有基本的理解和应用步骤1:MySQL步骤 1 : MySQLMysql是常见的数据库,在中小型网站经常被使...
阅读全文
摘要:步骤1:原子性操作概念步骤2:AtomicInteger步骤3:同步测试步骤4:练习-使用AtomicInteger来替换Hero类中的synchronized步骤5:答案-使用AtomicInteger来替换H...
阅读全文
摘要:当业务比较复杂,多线程应用里有可能会发生死锁步骤1:演示死锁步骤2:练习-死锁步骤3:答案-死锁步骤 1 : 演示死锁1. 线程1 首先占有对象1,接着试图占有对象22. 线程2 首先占有对象2,接着试图占有对象...
阅读全文
摘要:常见的线程安全相关的面试题步骤1:HashMap和Hashtable的区别步骤2:StringBuffer和StringBuilder的区别步骤3:ArrayList和Vector的区别步骤4:把非线程安全的集合...
阅读全文
摘要:步骤1:当前线程暂停步骤2:加入到当前线程中步骤3:线程优先级步骤4:临时暂停步骤5:守护线程步骤6:练习-英雄充能步骤7:答案-英雄充能步骤8:练习-破解密码步骤9:答案-破解密码示例 1 : 当前线程暂停Th...
阅读全文
摘要:多线程即在同一时间,可以做多件事情。 创建多线程有3种方式,分别是继承线程类,实现Runnable接口,匿名类步骤1:线程概念步骤2:创建多线程-继承线程类步骤3:创建多线程-实现Runnable接口步骤4:创建...
阅读全文
摘要:步骤1:传统方式与聚合操作方式遍历数据步骤2:Stream和管道的概念步骤3:管道源步骤4:中间操作步骤5:结束操作步骤6:练习-聚合操作步骤7:答案-聚合操作步骤 1 : 传统方式与聚合操作方式遍历数据遍历数据...
阅读全文
摘要:多线程的同步问题指的是多个线程同时修改一个数据的时候,可能导致的问题 多线程的问题,又叫Concurrency 问题步骤1:演示同步问题步骤2:分析同步问题产生的原因步骤3:解决思路步骤4:synchronize...
阅读全文
摘要:步骤1:引用静态方法步骤2:引用对象方法步骤3:引用容器中的对象的方法步骤4:引用构造器步骤5:练习-引用静态方法步骤6:答案-引用静态方法步骤7:练习-引用容器中的对象的方法步骤8:答案-引用容器中的对象的方法...
阅读全文
摘要:假设一个情景: 找出满足条件的Hero 本教程将从使用普通方法,匿名类,以及Lambda这几种方式,逐渐的引入Lambda的概念步骤1:普通方法步骤2:匿名类方式步骤3:Lambda方式步骤4:设置eclipse...
阅读全文
摘要:步骤1:对象转型步骤2:子类泛型转父类泛型步骤3:假设可以转型成功步骤4:练习-父类泛型能否转换为子类泛型?步骤5:答案-父类泛型能否转换为子类泛型?步骤 1 : 对象转型根据面向对象学习的知识,子类转父类 是一...
阅读全文
摘要:步骤1:? extends步骤2:? super步骤3:泛型通配符?步骤4:总结步骤5:练习- extends步骤6:答案- extends步骤7:练习-二叉树步骤8:答案-二叉树示例 1 : ? extends...
阅读全文
摘要:步骤1:不支持泛型的Stack步骤2:支持泛型的Stack步骤3:练习-支持泛型的二叉树步骤4:答案-支持泛型的二叉树步骤 1 : 不支持泛型的Stack以Stack栈为例子,如果不使用泛型当需要一个只能放Her...
阅读全文
摘要:步骤1:不使用泛型步骤2:使用泛型步骤3:子类对象步骤4:泛型的简写步骤5:练习-泛型步骤6:答案-泛型示例 1 : 不使用泛型不使用泛型带来的问题ADHero(物理攻击英雄) APHero(魔法攻击英雄)都是H...
阅读全文
摘要:步骤1:聚合操作 步骤 1 : 聚合操作 JDK8之后,引入了对集合的聚合操作,可以非常容易的遍历,筛选,比较集合中的元素。像这样: String name =heros .stream() ...
阅读全文
摘要:步骤1:HashSet LinkedHashSet TreeSet步骤2:练习-既不重复,又有顺序步骤3:答案-既不重复,又有顺序步骤 1 : HashSet LinkedHashSet TreeSetHashS...
阅读全文
摘要:步骤1:Comparator步骤2:Comparable步骤3:练习-自定义顺序的TreeSet步骤4:答案-自定义顺序的TreeSet步骤5:练习-Comparable步骤6:答案-Comparable步骤 1...
阅读全文
摘要:步骤1:List查找的低效率步骤2:HashMap的性能表现步骤3:HashMap原理与字典步骤4:分析HashMap性能卓越的原因步骤5:HashSet判断是否重复步骤6:练习-自定义字符串的hashcode步...
阅读全文
摘要:步骤1:是否有顺序步骤2:能否重复步骤3:练习-不重复的随机数步骤4:答案-不重复的随机数示例 1 : 是否有顺序ArrayList: 有顺序HashSet: 无顺序HashSet的具体顺序,既不是按照插入顺序,...
阅读全文
摘要:步骤1:HashMap和Hashtable的区别步骤2:练习-反转key和value步骤3:答案-反转key和value步骤 1 : HashMap和Hashtable的区别HashMap和Hashtable都实...
阅读全文
摘要:步骤1:ArrayList和LinkedList的区别步骤2:插入数据步骤3:定位数据步骤4:练习-在后面插入数据步骤5:答案-在后面插入数据步骤6:练习-在中间插入数据步骤7:答案-在中间插入数据步骤 1 : ...
阅读全文
摘要:Collections是一个类,容器的工具类,就如同Arrays是数组的工具类步骤1:反转步骤2:混淆步骤3:排序步骤4:交换步骤5:滚动步骤6:线程安全化 步骤7:练习-统计概率步骤8:答案-统计概率步骤 1 ...
阅读全文
摘要:Collection是一个接口步骤1:Collection步骤 1 : CollectionCollection是 Set List Queue和 Deque的接口Queue: 先进先出队列Deque: 双向链表...
阅读全文
摘要:步骤1:元素不能重复步骤2:没有顺序步骤3:遍历步骤4:HashSet和HashMap的关系步骤5:练习-HashSet步骤6:答案-HashSet示例 1 : 元素不能重复Set中的元素,不能重复 pack...
阅读全文
摘要:步骤1:HashMap的键值对步骤2:键不能重复,值可以重复步骤3:练习-查找内容性能比较步骤4:答案-查找内容性能比较示例 1 : HashMap的键值对HashMap储存数据的方式是—— 键值对 pack...
阅读全文
摘要:步骤1:二叉树概念步骤2:二叉树排序-插入数据步骤3:二叉树排序-遍历步骤4:练习-英雄二叉树步骤5:答案-英雄二叉树步骤6:练习-比较冒泡法,选择法以及二叉树排序的性能区别步骤7:答案-比较冒泡法,选择法以及二...
阅读全文
摘要:序列分先进先出FIFO,先进后出FILO FIFO在Java中又叫Queue 队列 FILO在Java中又叫Stack 栈步骤1:LinkedList 与 List接口步骤2:双向链表 - Deque步骤3:队列...
阅读全文
摘要:步骤1:用for循环遍历步骤2:迭代器遍历步骤3:用增强型for循环步骤4:练习-删除ArrayList中的数据步骤5:答案-删除ArrayList中的数据步骤 1 : 用for循环遍历通过前面的学习,知道了可以...
阅读全文
摘要:步骤1:泛型 Generic步骤2:泛型的简写步骤3:泛型的系统学习步骤4:练习-支持泛型的ArrayList步骤5:答案-支持泛型的ArrayList步骤 1 : 泛型 Generic不指定泛型的容器,可以存放...
阅读全文
摘要:步骤1:ArrayList和List步骤2:List接口的方法步骤 1 : ArrayList和ListArrayList实现了接口List常见的写法会把引用声明为接口List类型注意:是java.util.Li...
阅读全文
摘要:步骤1:增加步骤2:判断是否存在步骤3:获取指定位置的对象步骤4:获取对象所处的位置步骤5:删除步骤6:替换步骤7:获取大小步骤8:转换为数组步骤9:把另一个容器所有对象都加进来步骤10:清空步骤11:练习-判断...
阅读全文
摘要:步骤1:使用数组的局限性步骤2:ArrayList存放对象示例 1 : 使用数组的局限性如果要存放多个对象,可以使用数组,但是数组有局限性比如 声明长度是10的数组不用的数组就浪费了超过10的个数,又放不下Tes...
阅读全文
摘要:Reader字符输入流 Writer字符输出流 专门用于字符的形式读取和写入数据步骤1:使用字符流读取文件步骤2:使用字符流把字符串写入到文件步骤3:练习-文件加密步骤4:答案-文件加密步骤5:练习-文件解密步骤...
阅读全文
摘要:所有的流,无论是输入流还是输出流,使用完毕之后,都应该关闭。 如果不关闭,会产生对资源占用的浪费。 当量比较大的时候,会影响到业务的正常开展。步骤1:在try中关闭步骤2:在finally中关闭步骤3:使用try...
阅读全文
摘要:InputStream字节输入流 OutputStream字节输出流 用于以字节的形式读取和写入数据步骤1:ASCII码 概念步骤2:以字节流的形式读取文件内容步骤3:以字节流的形式向文件写入数据步骤4:练习-写...
阅读全文
摘要:什么是流(Stream),流就是一系列的数据步骤1:什么是流步骤2:文件输入流步骤3:练习-流步骤4:答案-流步骤 1 : 什么是流当不同的介质之间有数据交互的时候,JAVA就使用流来实现。数据源可以是文件,还可...
阅读全文
摘要:文件和文件夹都是用File代表步骤1:创建一个文件对象步骤2:文件常用方法1步骤3:文件常用方法2步骤4:练习-遍历文件夹步骤5:答案-遍历文件夹步骤6:练习-遍历子文件夹步骤7:答案-遍历子文件夹步骤 1 : ...
阅读全文
摘要:步骤1:创建自定义异常步骤2:抛出自定义异常步骤3:练习-自定义异常步骤4:答案-自定义异常示例 1 : 创建自定义异常一个英雄攻击另一个英雄的时候,如果发现另一个英雄已经挂了,就会抛出EnemyHeroIsDe...
阅读全文
摘要:步骤1:Throwable步骤2:练习-Throwable步骤3:答案-Throwable步骤 1 : ThrowableThrowable是类,Exception和Error都继承了该类所以在捕捉的时候,也可以...
阅读全文
摘要:异常分类: 可查异常,运行时异常和错误3种 其中,运行时异常和错误又叫非可查异常步骤1:可查异常步骤2:运行时异常步骤3:错误步骤4:三种分类步骤5:练习-异常分类步骤6:答案-异常分类步骤 1 : 可查异常可查...
阅读全文
摘要:异常处理常见手段: try catch finally throws步骤1:try catch步骤2:使用异常的父类进行catch步骤3:多异常捕捉办法1步骤4:多异常捕捉办法2步骤5:finally步骤6:th...
阅读全文
摘要:异常定义: 导致程序的正常流程被中断的事件,叫做异常步骤1:文件不存在异常步骤2:练习-异常步骤3:答案-异常步骤 1 : 文件不存在异常比如要打开d盘的LOL.exe文件,这个文件是有可能不存在的 Java中通...
阅读全文
摘要:步骤1:两本书籍步骤2:关于其他书籍的评论步骤3:关于书籍下载步骤 1 : 两本书籍本站的学习是基于实践和练习为主,在理论知识的讲解方面有欠缺。 所以辅以相应的书籍学习,会双管齐下,两条腿走路,取得更好的效果。关...
阅读全文
摘要:Calendar类即日历类,常用于进行“翻日历”,比如下个月的今天是多久步骤1:Calendar与Date进行转换步骤2:翻日历步骤3:练习-Calendar步骤4:答案-Calendar示例 1 : Calen...
阅读全文
摘要:SimpleDateFormat 日期格式化类步骤1:日期转字符串步骤2:字符串转日期步骤3:练习-日期格式化步骤4:答案-日期格式化示例 1 : 日期转字符串 y 代表年 M 代表月 d 代表日 ...
阅读全文
摘要:Date类 注意:是java.util.Date; 而非 java.sql.Date,此类是给数据库访问的时候使用的步骤1:时间原点概念步骤2:创建日期对象步骤3:getTime步骤4:System.curren...
阅读全文
摘要:StringBuffer第二道练习题答案步骤1:IStringBuffer接口步骤2:value和capacity步骤3:带参构造方法步骤4:反转 reverse步骤5:插入insert 和 append步骤6:...
阅读全文
摘要:StringBuffer是可变长的字符串步骤1:追加 删除 插入 反转步骤2:长度 容量步骤3:练习-StringBuffer性能步骤4:答案-StringBuffer性能步骤5:练习-MyStringBuffe...
阅读全文
摘要:步骤1:是否是同一个对象步骤2:是否是同一个对象-特例步骤3:内容是否相同步骤4:是否以子字符串开始或者结束步骤5:练习-比较字符串步骤6:答案-比较字符串示例 1 : 是否是同一个对象str1和str2的内容一...
阅读全文
摘要:步骤1:获取字符步骤2:获取对应的字符数组步骤3:截取子字符串步骤4:分隔步骤5:去掉首尾空格步骤6:大小写步骤7:定位步骤8:替换步骤9:练习-每个单词的首字母都转换为大写步骤10:答案-每个单词的首字母都转换...
阅读全文
摘要:java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在步骤1:四舍五入, 随机数,开方,次方,π,自然常数步骤2:练习-数学方法步骤3:答案-数学方法步骤4:练习-质数步骤5:答案...
阅读全文
摘要:步骤1:创建字符串步骤2:final步骤3:immutable步骤4:字符串格式化步骤5:字符串长度步骤6:练习-随机字符串步骤7:答案-随机字符串步骤8:练习-字符串数组排序步骤9:答案-字符串数组排序步骤10...
阅读全文
摘要:步骤1:创建字符串步骤2:final步骤3:immutable步骤4:字符串格式化步骤5:字符串长度步骤6:练习-随机字符串步骤7:答案-随机字符串步骤8:练习-字符串数组排序步骤9:答案-字符串数组排序步骤10...
阅读全文
摘要:步骤1:保存一个字符的时候使用char步骤2:char对应的封装类步骤3:Character常见方法步骤4:常见转义步骤5:练习-Character步骤6:答案-Character示例 1 : 保存一个字符的时候...
阅读全文
摘要:步骤1:保存一个字符的时候使用char步骤2:char对应的封装类步骤3:Character常见方法步骤4:常见转义步骤5:练习-Character步骤6:答案-Character示例 1 : 保存一个字符的时候...
阅读全文
摘要:步骤1:格式化输出步骤2:printf和format步骤3:换行符步骤4:总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达步骤5:练习-黄鹤步骤6:答案-黄鹤步骤 1 : 格式化输出如果不使用格式化输出,...
阅读全文
摘要:步骤1:格式化输出步骤2:printf和format步骤3:换行符步骤4:总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达步骤5:练习-黄鹤步骤6:答案-黄鹤步骤 1 : 格式化输出如果不使用格式化输出,...
阅读全文
摘要:java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在步骤1:四舍五入, 随机数,开方,次方,π,自然常数步骤2:练习-数学方法步骤3:答案-数学方法步骤4:练习-质数步骤5:答案...
阅读全文
摘要:步骤1:数字转字符串步骤2:字符串转数字步骤3:练习-字符串转换步骤4:答案-字符串转换步骤 1 : 数字转字符串方法1: 使用String类的静态方法valueOf 方法2: 先把基本类型装箱为对象,然后调用对...
阅读全文
摘要:步骤1:数字转字符串步骤2:字符串转数字步骤3:练习-字符串转换步骤4:答案-字符串转换步骤 1 : 数字转字符串方法1: 使用String类的静态方法valueOf 方法2: 先把基本类型装箱为对象,然后调用对...
阅读全文
摘要:步骤1:封装类步骤2:Number类步骤3:基本类型转封装类步骤4:封装类转基本类型步骤5:自动装箱步骤6:自动拆箱步骤7:int的最大值,最小值步骤8:练习-装箱拆箱步骤9:答案-装箱拆箱步骤 1 : 封装类所...
阅读全文
摘要:步骤1:封装类步骤2:Number类步骤3:基本类型转封装类步骤4:封装类转基本类型步骤5:自动装箱步骤6:自动拆箱步骤7:int的最大值,最小值步骤8:练习-装箱拆箱步骤9:答案-装箱拆箱步骤 1 : 封装类所...
阅读全文
摘要:内部类分为四种: 非静态内部类 静态内部类 匿名类 本地类步骤1:非静态内部类步骤2:静态内部类步骤3:匿名类步骤4:本地类步骤5:在匿名类中使用外部的局部变量步骤6:练习-内部类步骤7:答案-内部类步骤 1 :...
阅读全文
摘要:内部类分为四种: 非静态内部类 静态内部类 匿名类 本地类步骤1:非静态内部类步骤2:静态内部类步骤3:匿名类步骤4:本地类步骤5:在匿名类中使用外部的局部变量步骤6:练习-内部类步骤7:答案-内部类步骤 1 :...
阅读全文
摘要:在类中声明一个方法,这个方法没有实现体,是一个“空”方法 这样的方法就叫抽象方法,使用修饰符“abstract" 当一个类有抽象方法的时候,该类必须被声明为抽象类步骤1:抽象类步骤2:抽象类可以没有抽象方法步骤3...
阅读全文
摘要:在类中声明一个方法,这个方法没有实现体,是一个“空”方法 这样的方法就叫抽象方法,使用修饰符“abstract" 当一个类有抽象方法的时候,该类必须被声明为抽象类步骤1:抽象类步骤2:抽象类可以没有抽象方法步骤3...
阅读全文
摘要:final修饰类,方法,基本类型变量,引用的时候分别有不同的意思。步骤1:final修饰类步骤2:final修饰方法步骤3:final修饰基本类型变量步骤4:final修饰引用步骤5:常量步骤6:练习-final...
阅读全文
摘要:final修饰类,方法,基本类型变量,引用的时候分别有不同的意思。步骤1:final修饰类步骤2:final修饰方法步骤3:final修饰基本类型变量步骤4:final修饰引用步骤5:常量步骤6:练习-final...
阅读全文
摘要:Object类是所有类的父类步骤1:Object类是所有类的父类步骤2:toString()步骤3:finalize() 步骤4:equals()步骤5:==步骤6:hashCode()步骤7:线程同步相关方法步...
阅读全文
摘要:Object类是所有类的父类步骤1:Object类是所有类的父类步骤2:toString()步骤3:finalize() 步骤4:equals()步骤5:==步骤6:hashCode()步骤7:线程同步相关方法步...
阅读全文
摘要:super关键字步骤1:准备一个显式提供无参构造方法的父类步骤2:实例化子类,父类的构造方法一定会被调用步骤3:父类显式提供两个构造方法步骤4:子类显式调用父类带参构造方法步骤5:调用父类属性步骤6:调用父类方法...
阅读全文
摘要:super关键字步骤1:准备一个显式提供无参构造方法的父类步骤2:实例化子类,父类的构造方法一定会被调用步骤3:父类显式提供两个构造方法步骤4:子类显式调用父类带参构造方法步骤5:调用父类属性步骤6:调用父类方法...
阅读全文
摘要:与重写类似,方法的重写是子类覆盖父类的对象方法 隐藏,就是子类覆盖父类的类方法步骤1:父类步骤2:子类隐藏父类的类方法步骤3:练习-隐藏步骤4:答案-隐藏步骤 1 : 父类父类有一个类方法 :battleWin ...
阅读全文
摘要:与重写类似,方法的重写是子类覆盖父类的对象方法 隐藏,就是子类覆盖父类的类方法步骤1:父类步骤2:子类隐藏父类的类方法步骤3:练习-隐藏步骤4:答案-隐藏步骤 1 : 父类父类有一个类方法 :battleWin ...
阅读全文
摘要:操作符的多态 + 可以作为算数运算,也可以作为字符串连接 类的多态 父类引用指向子类对象步骤1:操作符的多态步骤2:观察类的多态现象步骤3:类的多态条件步骤4:类的多态-不使用多态步骤5:类的多态-使用多态步骤6...
阅读全文
摘要:操作符的多态 + 可以作为算数运算,也可以作为字符串连接 类的多态 父类引用指向子类对象步骤1:操作符的多态步骤2:观察类的多态现象步骤3:类的多态条件步骤4:类的多态-不使用多态步骤5:类的多态-使用多态步骤6...
阅读全文
摘要:子类可以继承父类的对象方法 在继承后,重复提供该方法,就叫做方法的重写 又叫覆盖 override步骤1:父类Item步骤2:子类LifePotion步骤3:调用重写的方法步骤4:如果没有重写这样的机制怎么样?步...
阅读全文
摘要:子类可以继承父类的对象方法 在继承后,重复提供该方法,就叫做方法的重写 又叫覆盖 override步骤1:父类Item步骤2:子类LifePotion步骤3:调用重写的方法步骤4:如果没有重写这样的机制怎么样?步...
阅读全文
摘要:步骤1:明确引用类型与对象类型的概念步骤2:子类转父类(向上转型)步骤3:父类转子类(向下转型)步骤4:没有继承关系的两个类,互相转换步骤5:实现类转换成接口(向上转型)步骤6:接口转换成实现类(向下转型)步骤7...
阅读全文
摘要:步骤1:明确引用类型与对象类型的概念步骤2:子类转父类(向上转型)步骤3:父类转子类(向下转型)步骤4:没有继承关系的两个类,互相转换步骤5:实现类转换成接口(向上转型)步骤6:接口转换成实现类(向下转型)步骤7...
阅读全文
摘要:在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击 这时候,就可以使用接口来实现这个效果。 接口就像是一种约定,我们约定某些英雄是物理系英雄,那么他们就一定能够进行物理攻击。步骤1:...
阅读全文
摘要:在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击 这时候,就可以使用接口来实现这个效果。 接口就像是一种约定,我们约定某些英雄是物理系英雄,那么他们就一定能够进行物理攻击。步骤1:...
阅读全文
摘要:步骤1:预先定义的常量步骤2:使用枚举的好处步骤3:遍历枚举步骤4:练习-枚举步骤5:答案-枚举步骤 1 : 预先定义的常量枚举enum是一种特殊的类(还是类),使用枚举可以很方便的定义常量比如设计一个枚举类型 ...
阅读全文
摘要:类方法: 又叫做静态方法 对象方法: 又叫实例方法,非静态方法 访问一个对象方法,必须建立在有一个对象的前提的基础上 访问类方法,不需要对象的存在,直接就访问步骤1:类方法步骤2:调用类方法步骤3:什么时候设计对...
阅读全文
摘要:步骤1:预先定义的常量步骤2:使用枚举的好处步骤3:遍历枚举步骤4:练习-枚举步骤5:答案-枚举步骤 1 : 预先定义的常量枚举enum是一种特殊的类(还是类),使用枚举可以很方便的定义常量比如设计一个枚举类型 ...
阅读全文
摘要:类方法: 又叫做静态方法 对象方法: 又叫实例方法,非静态方法 访问一个对象方法,必须建立在有一个对象的前提的基础上 访问类方法,不需要对象的存在,直接就访问步骤1:类方法步骤2:调用类方法步骤3:什么时候设计对...
阅读全文
摘要:LOL里有一个怪叫大龙GiantDragon,只有一只,所以该类,只能被实例化一次步骤1:单例模式步骤2:饿汉式单例模式步骤3:懒汉式单例模式步骤4:什么时候使用饿汉式,什么时候使用懒汉式步骤5:单例模式三元素步...
阅读全文
摘要:步骤1:对象属性初始化步骤2:类属性初始化步骤3:练习-属性初始化步骤4:答案-属性初始化步骤 1 : 对象属性初始化对象属性初始化有3种1. 声明该属性的时候初始化 2. 构造方法中初始化3. 初始化块 p...
阅读全文
摘要:LOL里有一个怪叫大龙GiantDragon,只有一只,所以该类,只能被实例化一次步骤1:单例模式步骤2:饿汉式单例模式步骤3:懒汉式单例模式步骤4:什么时候使用饿汉式,什么时候使用懒汉式步骤5:单例模式三元素步...
阅读全文
摘要:步骤1:对象属性初始化步骤2:类属性初始化步骤3:练习-属性初始化步骤4:答案-属性初始化步骤 1 : 对象属性初始化对象属性初始化有3种1. 声明该属性的时候初始化 2. 构造方法中初始化3. 初始化块 p...
阅读全文
摘要:当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性 当一个属性被声明成类属性,那么所有的对象,都共享一个值 与对象属性对比: 不同对象的 对象属性 的值都可能不一样。 比如盖伦的hp 和 提莫的h...
阅读全文
摘要:变量有两种类型 基本类型 和类类型 参数也是变量,所以传参分为 基本类型传参 类类型传参步骤1:基本类型传参步骤2:引用与=步骤3:类类型传参步骤4:练习-传参步骤5:答案-传参步骤 1 : 基本类型传参基本类...
阅读全文
摘要:变量有两种类型 基本类型 和类类型 参数也是变量,所以传参分为 基本类型传参 类类型传参步骤1:基本类型传参步骤2:引用与=步骤3:类类型传参步骤4:练习-传参步骤5:答案-传参步骤 1 : 基本类型传参基本类...
阅读全文
摘要:包: package 把比较接近的类,规划在同一个包下步骤1:把比较接近的类,规划在同一个包下步骤2:使用其他包下的类,必须import步骤3:练习-包步骤4:答案-包步骤 1 : 把比较接近的类,规划在同一个包...
阅读全文
摘要:包: package 把比较接近的类,规划在同一个包下步骤1:把比较接近的类,规划在同一个包下步骤2:使用其他包下的类,必须import步骤3:练习-包步骤4:答案-包步骤 1 : 把比较接近的类,规划在同一个包...
阅读全文
摘要:成员变量有四种修饰符private 私有的package/friendly/default 不写protected 受保护的public 公共的比如public 表示公共的 public String nam...
阅读全文
摘要:成员变量有四种修饰符private 私有的package/friendly/default 不写protected 受保护的public 公共的比如public 表示公共的 public String nam...
阅读全文
摘要:当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性 当一个属性被声明成类属性,那么所有的对象,都共享一个值 与对象属性对比: 不同对象的 对象属性 的值都可能不一样。 比如盖伦的hp 和 提莫的h...
阅读全文
摘要:this这个关键字,相当于普通话里的“我” 小明说 “我吃了” 这个时候,“我” 代表小明 小红说 “我吃了” 这个时候,“我” 代表小红 "我"代表当前人物 this这个关键字,相当于普通话里的“我” this...
阅读全文
摘要:this这个关键字,相当于普通话里的“我” 小明说 “我吃了” 这个时候,“我” 代表小明 小红说 “我吃了” 这个时候,“我” 代表小红 "我"代表当前人物 this这个关键字,相当于普通话里的“我” this...
阅读全文
摘要:通过一个类创建一个对象,这个过程叫做实例化 实例化是通过调用构造方法(又叫做构造器)实现的步骤1:什么是构造方法步骤2:隐式的构造方法步骤3:如果提供了一个有参的构造方法步骤4:构造方法的重载步骤5:练习-构造方...
阅读全文
摘要:通过一个类创建一个对象,这个过程叫做实例化 实例化是通过调用构造方法(又叫做构造器)实现的步骤1:什么是构造方法步骤2:隐式的构造方法步骤3:如果提供了一个有参的构造方法步骤4:构造方法的重载步骤5:练习-构造方...
阅读全文
摘要:步骤1:预先定义的常量 步骤2:使用枚举的好处步骤3:遍历枚举步骤4:练习-枚举步骤5:答案-枚举 步骤 1 : 预先定义的常量 枚举enum是一种特殊的类(还是类),使用枚举可以很方便的定义常量比如设计一个枚举类型 季节,里面有4种常量 public enum Season { SPRING,SU
阅读全文
摘要:LOL里有一个怪叫大龙GiantDragon,只有一只,所以该类,只能被实例化一次 步骤1:单例模式步骤2:饿汉式单例模式步骤3:懒汉式单例模式步骤4:什么时候使用饿汉式,什么时候使用懒汉式步骤5:单例模式三元素步骤6:练习-单例模式步骤7:答案-单例模式 步骤 1 : 单例模式 单例模式又叫做 S
阅读全文
摘要:步骤1:对象属性初始化 步骤2:类属性初始化步骤3:练习-属性初始化步骤4:答案-属性初始化 步骤 1 : 对象属性初始化 对象属性初始化有3种1. 声明该属性的时候初始化 2. 构造方法中初始化3. 初始化块 package charactor; public class Hero { publi
阅读全文
摘要:类方法: 又叫做静态方法 对象方法: 又叫实例方法,非静态方法 访问一个对象方法,必须建立在有一个对象的前提的基础上 访问类方法,不需要对象的存在,直接就访问 步骤1:类方法步骤2:调用类方法步骤3:什么时候设计对象方法,什么时候设计类方法步骤4:练习-类方法步骤5:答案-类方法 步骤 1 : 类方
阅读全文
摘要:当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性 当一个属性被声明成类属性,那么所有的对象,都共享一个值 与对象属性对比: 不同对象的 对象属性 的值都可能不一样。 比如盖伦的hp 和 提莫的hp 是不一样的。 但是所有对象的类属性的值,都是一样的 步骤1:类属性步骤2:访问类属性步
阅读全文
摘要:成员变量有四种修饰符private 私有的package/friendly/default 不写protected 受保护的public 公共的比如public 表示公共的 public String name; 而maxHP 没有修饰符即代表package/friendly/default flo
阅读全文
摘要:包: package 把比较接近的类,规划在同一个包下 步骤1:把比较接近的类,规划在同一个包下步骤2:使用其他包下的类,必须import步骤3:练习-包步骤4:答案-包 步骤 1 : 把比较接近的类,规划在同一个包下 Hero,ADHero 规划在一个包,叫做charactor(角色)Item,W
阅读全文
摘要:变量有两种类型 基本类型 和类类型 参数也是变量,所以传参分为 基本类型传参 类类型传参 步骤1:基本类型传参步骤2:引用与=步骤3:类类型传参步骤4:练习-传参步骤5:答案-传参 步骤 1 : 基本类型传参 基本类型传参 在方法内,无法修改方法外的基本类型参数 public class Hero
阅读全文
摘要:this这个关键字,相当于普通话里的“我” 小明说 “我吃了” 这个时候,“我” 代表小明 小红说 “我吃了” 这个时候,“我” 代表小红 "我"代表当前人物 this这个关键字,相当于普通话里的“我” this即代表当前对象 步骤1:this代表当前对象步骤2:通过this访问属性步骤3:通过th
阅读全文
摘要:通过一个类创建一个对象,这个过程叫做实例化 实例化是通过调用构造方法(又叫做构造器)实现的 步骤1:什么是构造方法步骤2:隐式的构造方法步骤3:如果提供了一个有参的构造方法步骤4:构造方法的重载步骤5:练习-构造方法步骤6:答案-构造方法 步骤 1 : 什么是构造方法 方法名和类名一样(包括大小写)
阅读全文
摘要:方法的重载指的是方法名一样,但是参数类型不一样 步骤1:attack方法的重载步骤2:可变数量的参数步骤3:练习-治疗步骤4:答案-治疗 步骤 1 : attack方法的重载 有一种英雄,叫做物理攻击英雄 ADHero为ADHero 提供三种方法 public void attack() publi
阅读全文
摘要:方法的重载指的是方法名一样,但是参数类型不一样步骤1:attack方法的重载步骤2:可变数量的参数步骤3:练习-治疗步骤4:答案-治疗步骤 1 : attack方法的重载有一种英雄,叫做物理攻击英雄 ADHero...
阅读全文
摘要:方法的重载指的是方法名一样,但是参数类型不一样步骤1:attack方法的重载步骤2:可变数量的参数步骤3:练习-治疗步骤4:答案-治疗步骤 1 : attack方法的重载有一种英雄,叫做物理攻击英雄 ADHero...
阅读全文
摘要:在LOL中,武器是物品的一种,也是有名称和价格的 所以在设计类的时候,可以让武器继承物品,从而继承名称和价格属性 步骤1:物品类Item步骤2:武器类Weapon(不继承)步骤3:武器类Weapon(继承类Item)步骤4:练习-护甲步骤5:答案-护甲 步骤 1 : 物品类Item 物品类Item
阅读全文
摘要:在LOL中,武器是物品的一种,也是有名称和价格的 所以在设计类的时候,可以让武器继承物品,从而继承名称和价格属性步骤1:物品类Item步骤2:武器类Weapon(不继承)步骤3:武器类Weapon(继承类Item...
阅读全文
摘要:在LOL中,武器是物品的一种,也是有名称和价格的 所以在设计类的时候,可以让武器继承物品,从而继承名称和价格属性步骤1:物品类Item步骤2:武器类Weapon(不继承)步骤3:武器类Weapon(继承类Item...
阅读全文
摘要:引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用。 步骤1:引用和指向步骤2:多个引用,一个对象步骤3:一个引用,多个对象步骤4:练习-引用步骤5:答案-引用 步骤 1 : 引用和指向 new Hero(); 代表创建了一个Hero对象但是也仅仅是创建了一个对象,没有办法
阅读全文
摘要:引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用。步骤1:引用和指向步骤2:多个引用,一个对象步骤3:一个引用,多个对象步骤4:练习-引用步骤5:答案-引用步骤 1 : 引用和指向 ...
阅读全文
摘要:引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用。步骤1:引用和指向步骤2:多个引用,一个对象步骤3:一个引用,多个对象步骤4:练习-引用步骤5:答案-引用步骤 1 : 引用和指向 ...
阅读全文
摘要:Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。 步骤1:数组复制步骤2:转换为字符串步骤3:排序步骤4:搜索步骤5:判断是否相同步骤6:填充步骤7:练习-二维数组排序步骤8:答案-二维数组排序 步骤 1 : 数组复制 与使用System.arr
阅读全文
摘要:Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。步骤1:数组复制步骤2:转换为字符串步骤3:排序步骤4:搜索步骤5:判断是否相同步骤6:填充步骤7:练习-二维...
阅读全文
摘要:Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。步骤1:数组复制步骤2:转换为字符串步骤3:排序步骤4:搜索步骤5:判断是否相同步骤6:填充步骤7:练习-二维...
阅读全文
摘要:这是一个一维数组, 里面的每一个元素,都是一个基本类型int int a[] =new int[]{1,2,3,4,5}; 这是一个二维数组,里面的每一个元素,都是一个一维数组 所以二维数组又叫数组...
阅读全文
摘要:这是一个一维数组, 里面的每一个元素,都是一个基本类型int int a[] =new int[]{1,2,3,4,5}; 这是一个二维数组,里面的每一个元素,都是一个一维数组 所以二维数组又叫数组...
阅读全文
摘要:这是一个一维数组, 里面的每一个元素,都是一个基本类型int int a[] =new int[]{1,2,3,4,5}; 这是一个二维数组,里面的每一个元素,都是一个一维数组 所以二维数组又叫数组的数组 int b[][] = new int[][]{ {1,2,3}, {4,5,6}, {7,8
阅读全文
摘要:数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少 步骤1:复制数组步骤2:练习-合并数组步骤3:答案-合并数组 步骤 1 : 复制数组 把一个数组的值,复制到另一个数组中 System.arraycopy(src, srcPos, dest, destPos, length)
阅读全文
摘要:数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少步骤1:复制数组步骤2:练习-合并数组步骤3:答案-合并数组步骤 1 : 复制数组把一个数组的值,复制到另一个数组中 System.ar...
阅读全文

浙公网安备 33010602011771号