Java 集合框架:HashSet 与 TreeSet
理解 HashSet 的哈希机制、TreeSet 的排序规则及 Comparable、Comparator。 HashSet存储字符串并遍历 Set集合概述及特点 通过API查看即可 案例演示 HashSet存储字符串并遍历 HashSet<String> hs = new HashSet<>(); boolean b1 = hs.add("a"); boolean b2 = hs.add("a"); //当存储不成功的时候,返回false System.out.println(b1); System.out.println(b2); for(String s : hs) { System.out.println(s); } 12345678910111213141516 ## HashSet存储自定义对象保证元素唯一性- 案例演示 - 存储自定义对象,并保证元素唯一性。 ```java Ha...
Java 集合框架:LinkedList、泛型与 Set
整理 LinkedList、泛型、增强 for 循环、可变参数及 Set 集合。 去除ArrayList中重复字符串元素方式 案例演示 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) 思路:创建新集合方式 1234567891011121314151617181920212223242526272829303132333435363738/** * A:案例演示 * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) * 思路:创建新集合方式 */public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("a"); list.add("a"); list.add("b"); list.add("b"); list.add("b"); list.add("c&quo...
Java 集合框架:List 与迭代器
从集合框架入门,理解 Collection、List、迭代器与 ArrayList 的常见操作。 对象数组的概述和使用 案例演示 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。 12345678910Student[] arr = new Student[5]; //存储学生对象arr[0] = new Student("张三", 23);arr[1] = new Student("李四", 24);arr[2] = new Student("王五", 25);arr[3] = new Student("赵六", 26);arr[4] = new Student("马哥", 20);for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]);} 画图演示 把学生数组的案例画图讲解 数...
Java 正则表达式与常用工具类
汇总正则表达式、Math、Random、System、BigDecimal、Date 与 Calendar 等工具类。 正则表达式的概述和简单使用 正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的 案例演示 需求:校验qq号码. 1:要求必须是5-15位数字 2:0不能开头 3:必须都是数字 a:非正则表达式实现 b:正则表达式实现 字符类演示 字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围) [0-9] 0到9的字符都包括 预定义字符类演示 预定义字符类 . 任何字符。 \d 数字:[0-9] \w 单词字符:[a-zA-Z*0-9] 数量词 Greedy 数量词 X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n...
Java StringBuffer、排序与包装类型
整理 StringBuffer、StringBuilder、数组排序与查找,以及基本类型包装类。 StringBuffer类的概述 StringBuffer类概述 通过JDK提供的API,查看StringBuffer类的说明 线程安全的可变字符序列 StringBuffer和String的区别 String是一个不可变的字符序列 StringBuffer是一个可变的字符序列 StringBuffer类的构造方法 StringBuffer的构造方法: public StringBuffer():无参构造方法 public StringBuffer(int capacity):指定容量的字符串缓冲区对象 public StringBuffer(String str):指定字符串内容的字符串缓冲区对象 StringBuffer的方法: public int capacity():返回当前容量。 理论值(不掌握) public int length():返回长度(字符数)。 实际值 案例演示 构造方法和长度方法的使用 StringBuffer的添加功能 Str...
Java 字符串与常用对象
介绍 Scanner、String 等常用对象及字符串判断、查找、截取和转换操作。 Scanner的概述和方法介绍 Scanner的概述 Scanner的构造方法原理 Scanner(InputStream source) System类下有一个静态的字段: public static final InputStream in; 标准的输入流,对应着键盘录入。 一般方法 hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个字符串,则可以省略Xxx nextXxx() 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同,默认情况下,Scanner使用空格,回车等作为分隔符 Scanner获取数据出现的小问题及解决方案 两个常用的方法: public int nextInt():获取一个int类型的值 public String nextLine():获取一个String类型的值 案例演示 a:先演示获取多个int值,多个String值的情况 b:再演示先获取int值,然后获取Strin...
Eclipse 开发技巧与 Java Object 类
整理 Eclipse 项目开发、调试和快捷操作,并认识 Java Object 类的核心方法。 常见开发工具介绍 操作系统自带的记事本软件 高级记事本软件 集成开发环境 IDE (Integrated Development Environment) Eclipse和MyEclipse的区别 a:Eclipse是一种可扩展的开放源代码的IDE。 b:Eclipse的特点描述 免费 纯Java语言编写 免安装 扩展性强 c:MyEclipse 在Eclipse基础上追加的功能性插件,对插件收费 在WEB开发中提供强大的系统架构平台 下载 http://eclipse.org/ org是非盈利团体 安装 绿色版 解压就可以使用(Eclipse) 安装版 双击运行,一路next即可(JDK) 卸载 绿色版 直接删除文件夹即可 安装版 专业卸载软件或者控制面板添加删除程序 Eclipse中HelloWorld案例以及汉化 选择工作空间 工作空间 其实就是我们写的源代码所在的目录 用Eclipse来完成一个HelloWorld案例 代码以项目为基本单位...
Java 包、权限修饰符与内部类
介绍 package、import、访问权限,以及成员内部类、局部内部类和匿名内部类。 package关键字的概述及作用 为什么要有包 将字节码(.class)进行分类存放 包其实就是文件夹 包的概述 举例: 123学生:增加,删除,修改,查询老师:增加,删除,修改,查询... 112345678910111213 1方案1:按照功能分 com.heima.add AddStudent AddTeacher com.heima.delete DeleteStudent DeleteTeacher com.heima.update UpdateStudent UpdateTeacher com.heima.find FindStudent FindTeacher 11234567891011 1方案2:按照模块分 com.heima.teacher AddTeacher DeleteTeacher UpdateTeacher FindTeacher com.heima.student AddStudent DeleteStudent ...
Java 多态、抽象类与接口
总结多态与类型转换、抽象类、接口以及它们在面向对象设计中的关系。 多态的概述及其代码体现 多态(polymorphic)概述 事物存在的多种形态 多态前提 a:要有继承关系。 b:要有方法重写。 c:要有父类引用指向子类对象。 案例演示 代码体现多态 多态中的成员访问特点之成员变量 成员变量 编译看左边(父类),运行看左边(父类)。 多态中的成员访问特点之成员方法 成员方法 编译看左边(父类),运行看右边(子类)。 多态中的成员访问特点之静态成员方法 静态方法 编译看左边(父类),运行看左边(父类)。 (静态和类相关,算不上重写,所以,访问还是左边的) 只有非静态的成员方法,编译看左边,运行看右边 超人的故事 案例分析 通过该案例帮助学生理解多态的现象 多态中向上转型和向下转型 案例演示 详细讲解多态中向上转型和向下转型Person p = new SuperMan();向上转型SuperMan sm = (SuperMan)p;向下转型 多态的好处和弊端 多态的好处 a:提高了代码的维护性(继承保证) b:提高...
Java 继承、方法重写与 final
理解 Java 继承体系、构造方法调用、方法重写以及 final 关键字。 代码块的概述和分类 代码块概述 在Java中,使用{}括起来的代码被称为代码块。 代码块分类 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。 常见代码块的应用 a:局部代码块 在方法中出现;限定变量生命周期,及早释放,提高内存利用率 b:构造代码块 (初始化块) 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行 c:静态代码块 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。 一般用于加载驱动 代码块的面试题 看程序写结果 1 1class Student { static { System.out.println("Student 静态代码块"); } { System.out.println("Student 构造代码块"); }...