4.斗地主发牌 4.1案例介绍 按照斗地主的规则,完成洗牌发牌的动作。具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。 4.2案例分析 准备牌:牌可以设计为一个ArrayList<String>,每个字符串为一张牌。每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每张牌的组装。牌由Collections类的shuffle方法进行随机排序。 发牌将每个人以及底牌设计为ArrayList<String>,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。 看牌直接打印每个集合。 ...

  3TFSCw4fNxMj   2023年12月23日   195   0   0 Systemi++Appi++AppSystem

1.不可变集合 1.1什么是不可变集合 是一个长度不可变,内容也无法修改的集合 1.2使用场景 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。 当集合对象被不可信的库调用时,不可变形式是安全的。 简单理解: 不想让别人修改集合中的内容 比如说: 1,斗地主的54张牌,是不能添加,不能删除,不能修改的 2,斗地主的打牌规则:单张,对子,三张,顺子等,也是不能修改的 3,用代码获取的操作系统硬件信息,也是不能被修改的 1.3不可变集合分类 不可变的list集合 不可变的set集合 不可变的map集合 1.4不可变的list集合 publicclassImmutabl...

 2.Stream流 2.1体验Stream流【理解】 案例需求按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 把集合中所有以"张"开头的元素存储到一个新的集合 把"张"开头的集合中的长度为3的元素存储到一个新的集合 遍历上一步得到的集合 原始方式示例代码 publicclassMyStream1{ publicstaticvoidmain(String[]args){ //集合的批量添加 ArrayList<String>list1=newArrayList<>(List.of("张三丰","张无忌","张翠山","王二...

  3TFSCw4fNxMj   2023年12月22日   22   0   0 SystemListSystemList数据数据

 1.Map集合 1.1Map集合概述和特点【理解】 Map集合概述 interfaceMap<K,V>K:键的类型;V:值的类型 Map集合的特点 双列集合,一个键对应一个值 键不可以重复,值可以重复 Map集合的基本使用 publicclassMapDemo01{ publicstaticvoidmain(String[]args){ //创建集合对象 Map<String,String>map=newHashMap<String,String>(); //Vput(Kkey,Vvalue)将指定的值与该映射中的指定键...

 2.List集合 2.1List集合的概述和特点【记忆】 List集合的概述 有序集合,这里的有序指的是存取顺序 用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素 与Set集合不同,列表通常允许重复的元素 List集合的特点 存取有序 可以重复 有索引 2.2List集合的特有方法【应用】 方法介绍 方法名 描述 voidadd(intindex,Eelement) 在此集合中的指定位置插入指定的元素 Eremove(intindex) 删除指定索引处的元素,返回被删除的元素 Eset(int...

  3TFSCw4fNxMj   2023年12月12日   64   0   0 SystemList迭代器迭代器SystemList

 JDK8时间相关类 JDK8时间类类名 作用 ZoneId 时区 Instant 时间戳 ZoneDateTime 带时区的时间 DateTimeFormatter 用于时间的格式化和解析 LocalDate 年、月、日 LocalTime 时、分、秒 LocalDateTime 年、月、日、时、分、秒 Duration 时间间隔(秒,纳,秒) Period 时间间隔(年,月,日) ChronoUnit 时间间隔(所有单位) 4.1ZoneId时区 / staticSet<string>getAvailab...

 Calendar类 3.1概述 java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。 有两种方式可以获取GregorianCalendar对象: 直接创建GregorianCalendar对象; 通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象【本次课使用】 3.2常用方法 方法名 说明 publicstaticCalendargetInstance() 获取一个它的子...

  3TFSCw4fNxMj   2023年12月07日   15   0   0 System字段System数组字段数组

 1.8本地数据爬取 Pattern:表示正则表达式Matcher:文本匹配器,作用按照正则表达式的规则去读取字符串,从头开始读取。在大串中去找符合匹配规则的子串。 代码示例: packagecom.itheima.a08regexdemo; importjava.util.regex.Matcher; importjava.util.regex.Pattern; publicclassRegexDemo6{ publicstaticvoidmain(String[]args){ /有如下文本,请按照要求爬取数据。 Java自从95年问世以来,经历了很多版本,目前企业中用的最...

 7BigDecimal类 7.1引入 首先我们来分析一下如下程序的执行结果: publicclassBigDecimalDemo01{ publicstaticvoidmain(String[]args){ System.out.println(0.09+0.01); } } 这段代码比较简单,就是计算0.09和0.01之和,并且将其结果在控制台进行输出。那么按照我们的想法在控制台输出的结果应该为0.1。那么实际的运行结果是什么呢?我们来运行一下程序,控制台的输出 结果如下所示: 0.09999999999999999 这样的结果其实就是一个丢失精度的结果。为什么...

  3TFSCw4fNxMj   2023年12月04日   14   0   0 SystemSystemide数据数据ide

 5Objects类 5.1概述 tips:了解内容 查看API文档,我们可以看到API文档中关于Objects类的定义如下: 编辑 Objects类所在包是在java.util包下,因此在使用的时候需要进行导包。并且Objects类是被final修饰的,因此该类不能被继承。 Objects类提供了一些对象常见操作的方法。比如判断对象是否相等,判断对象是否为null等等。 接下来我们来查看一下API文档,看一下Objects类中的成员,如下所示: publicclassObjectsDemo02{ publicstaticvoidmain(String[]args){...

 4Object类 4.1概述 tips:重点讲解内容 查看API文档,我们可以看到API文档中关于Object类的定义如下: 编辑 Object类所在包是java.lang包。Object是类层次结构的根,每个类都可以将Object作为超类。所有类都直接或者间接的继承自该类;换句话说,该类所具备的方法,其他所有类都继承了。 查看API文档我们可以看到,在Object类中提供了一个无参构造方法,如下所示: 编辑 但是一般情况下我们很少去主动的创建Object类的对象,调用其对应的方法。更多的是创建Object类的某个子类对象,然后通过子类对象调用Object类中的方法。 4...

  3TFSCw4fNxMj   2023年11月26日   12   0   0 System字符串SystemUser字符串User

 4Object类 4.1概述 tips:重点讲解内容 查看API文档,我们可以看到API文档中关于Object类的定义如下: 编辑 Object类所在包是java.lang包。Object是类层次结构的根,每个类都可以将Object作为超类。所有类都直接或者间接的继承自该类;换句话说,该类所具备的方法,其他所有类都继承了。 查看API文档我们可以看到,在Object类中提供了一个无参构造方法,如下所示: 编辑 但是一般情况下我们很少去主动的创建Object类的对象,调用其对应的方法。更多的是创建Object类的某个子类对象,然后通过子类对象调用Object类中的方法。 4...

  3TFSCw4fNxMj   2023年11月26日   15   0   0 System字符串SystemUser字符串User

 3.1概述 Runtime表示Java中运行时对象,可以获取到程序运行时设计到的一些信息 3.2常见方法 常见方法介绍 我们要学习的Object类中的常见方法如下所示: publicstaticRuntimegetRuntime() //当前系统的运行环境对象 publicvoidexit(intstatus) //停止虚拟机 publicintavailableProcessors() //获得CPU的线程数 publiclongmaxMemory() //JVM能从系统中获取总内存大小(单位byte) publiclongtotalMemory() //...

  3TFSCw4fNxMj   2023年11月25日   15   0   0 SystemMemoryJVMJVMSystemMemory

 3.1概述 Runtime表示Java中运行时对象,可以获取到程序运行时设计到的一些信息 3.2常见方法 常见方法介绍 我们要学习的Object类中的常见方法如下所示: publicstaticRuntimegetRuntime() //当前系统的运行环境对象 publicvoidexit(intstatus) //停止虚拟机 publicintavailableProcessors() //获得CPU的线程数 publiclongmaxMemory() //JVM能从系统中获取总内存大小(单位byte) publiclongtotalMemory() //...

  3TFSCw4fNxMj   2023年11月25日   17   0   0 SystemMemoryJVMJVMSystemMemory

 2System类 2.1概述 tips:了解内容 查看API文档,我们可以看到API文档中关于System类的定义如下: 编辑 System类所在包为java.lang包,因此在使用的时候不需要进行导包。并且System类被final修饰了,因此该类是不能被继承的。 System包含了系统操作的一些常用的方法。比如获取当前时间所对应的毫秒值,再比如终止当前JVM等等。 要想使用System类我们就需要先创建该类的对象,那么创建对象就需要借助于构造方法。因此我们就需要首先查看一下API文档,看看API文档中针对System类有没有提供对应的构造方法。通过API文档来 查看一下...

  3TFSCw4fNxMj   2023年11月24日   11   0   0 SystemSystem数组API数组API

 3.1概述 3.1.1什么是内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。可以把内部类理解成寄生,外部类理解成宿主。 3.1.2什么时候使用内部类 一个事物内部还有一个独立的事物,内部的事物脱离外部的事物无法独立使用 人里面有一颗心脏。 汽车内部有一个发动机。 为了实现更好的封装性。 3.2内部类的分类 按定义的位置来分 成员内部类,类定义在了成员位置(类中方法外称为成员位置,无static修饰的内部类) 静态内部类,类定义在了成员位置(类中方法外称为成员位置,有static修饰的内部类) 局部内部类,类定义在方法内 匿名内部类,没有名...

2.1概述 我们已经学完了抽象类,抽象类中可以用抽象方法,也可以有普通方法,构造方法,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,JDK7之前,包括JDK7,接口中全部是抽象方法。接口同样是不能创建对象的。 2.2定义格式 //接口的定义格式: interface接口名称{ //抽象方法 } //接口的声明:interface //接口名称:首字母大写,满足“驼峰模式” 2.3接口成分的特点 在JDK7,包括JDK7之前,接口中的只有包含:抽象方法和常量 2.3.1.抽象方法 注意:接口中的抽象方法默认会自动加上publicabstract修饰程序员无需自己手写!!按照规范:...

1.1概述 1.1.1抽象类引入 父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了(因为子类对象会调用自己重写的方法)。换句话说,父类可能知道子类应该有哪个功能,但是功能具体怎么实现父类是不清楚的(由子类自己决定),父类只需要提供一个没有方法体的定义即可,具体实现交给子类自己去实现。我们把没有方法体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。 抽象方法:没有方法体的方法。 抽象类:包含抽象方法的类。 1.2abstract使用格式 abstract是抽象的意思,用于修饰方法方法和类...

包 2.1包 包在操作系统中其实就是一个文件夹。包是用来分门别类的管理技术,不同的技术类放在不同的包下,方便管理和维护。 在IDEA项目中,建包的操作如下: 编辑 包名的命名规范: 路径名.路径名.xxx.xxx //例如:com.itheima.oa 包名一般是公司域名的倒写。例如:黑马是www.itheima.com,包名就可以定义成com.itheima.技术名称。 包名必须用”.“连接。 包名的每个路径名必须是一个合法的标识符,而且不能是Java的关键字。 2.2导包 什么时候需要导包? 情况一:在使用Java中提供的非核心包中的类时 情况二:使用自己写的其他包中的类时 ...

 1.1多态的形式 多态是继封装、继承之后,面向对象的第三大特性。 多态是出现在继承或者实现关系中的。 多态体现的格式: 父类类型变量名=new子类/实现类构造器; 变量名.方法名(); 多态的前提:有继承关系,子类对象是可以赋值给父类类型的变量。例如Animal是一个动物类型,而Cat是一个猫类型。Cat继承了Animal,Cat对象也是Animal类型,自然可以赋值给父类类型的变量。 1.2多态的使用场景 如果没有多态,在下图中register方法只能传递学生对象,其他的Teacher和administrator对象是无法传递给register方法方法的,在这种情况下,只能...

  3TFSCw4fNxMj   2023年11月18日   17   0   0 父类子类父类多态子类多态
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~