第13章:随堂复习与企业真题(泛型)
第13章:随堂复习与企业真题(泛型)
一、随堂复习1. 泛型的理解
,泛型参数,使用引用数据类型来赋值。
2. 泛型在集合、比较器中的使用(重点)
集合:ArrayList、HashMap、Iterator
比较器:Comparable、Comparator
3. 自定义泛型类/泛型接口、泛型方法(熟悉)
class Order{ }
public 返回值类型 方法名(形参列表){}
具体的细节,见IDEA中的笔记。
4. 泛型在继承上的体现123456781. 类SuperA是类A的父类,则G<SuperA> 与 G<A>的关系:G<SuperA> 和 G<A>是并列的两个类,没有任何子父类的关系。比如:ArrayList<Object> 、ArrayList<String>没有关系2. 类SuperA是类A的父类或接口,SuperA<G> 与 A<G>的关系:SuperA<G> 与A<G> 有继承或实现的关系。即A<G>的实例可以赋 ...
第12章:随堂复习与企业真题(集合框架)
第12章:随堂复习与企业真题(集合框架)
一、随堂复习1. 数组存储数据方面的特点和弊端123456789101112131415161718数组存储多个数据方面的特点:> 数组一旦初始化,其长度就是确定的。> 数组中的多个元素是依次紧密排列的,有序的,可重复的> (优点) 数组一旦初始化完成,其元素的类型就是确定的。不是此类型的元素,就不能添加到此数组中。 int[] arr = new int[10]; arr[0] = 1; arr[1] = "AA";//编译报错 Object[] arr1 = new Object[10]; arr1[0] = new String(); arr1[1] = new Date();> (优点)元素的类型既可以是基本数据类型,也可以是引用数据类型。数组存储多个数据方面的弊端:> 数组一旦初始化,其长度就不可变了。> 数组中存储数据特点的单一性。对于无序的、不可重复的场景的多个数据就无能为力了。> 数组中可用的方法、属性都极少。具体的需求,都需要自己来组织相关的 ...
第11章:随堂复习与企业真题(常用类与基础API)
第11章:随堂复习与企业真题(常用类与基础API)
一、随堂复习1. String类
String的声明:final修饰、实现了Comparable接口
String的不可变性
String的两种定义方式:① 字面量的定义方式 String s = “hello” ② new 的方式:String s = new String(“hello”);
String的内存解析:字符串常量池、堆内存的使用
String s = new String(“hello”);在内存中创建的对象的个数。
String的连接操作:+
常量 + 常量 、变量 + 常量 、变量+变量、concat(String otherString)
String intern()
熟悉String的构造器、与其他结构之间的转换、常用方法
编码和解码
编码:字符、字符串 –> 字节、字节数组。对应着编码集
解码:字节、字节数组 –> 字符、字符串。对应着解码集
规则:解码集必须使用当初编码时使用的编码集。只要不一致,就可能出现乱码!
String相关的算法问题。
...
第10章:随堂复习与企业真题(多线程)
第10章:随堂复习与企业真题(多线程)
一、随堂复习1. 几个概念1234567程序(program):为完成特定任务,用某种语言编写的`一组指令的集合`。即指一段静态的代码。进程(process):程序的一次执行过程,或是正在内存中运行的应用程序。程序是静态的,进程是动态的。 进程作为操作系统调度和分配资源的最小单位。线程(thread):进程可进一步细化为线程,是程序内部的一条执行路径。 线程作为CPU调度和执行的最小单位
1234线程调度策略分时调度:所有线程`轮流使用` CPU 的使用权,并且平均分配每个线程占用 CPU 的时间。抢占式调度:让`优先级高`的线程以`较大的概率`优先使用 CPU。如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度。
12> 单核CPU与多核CPU> 并行与并发
2. 如何创建多线程(重点)
方式1:继承Thread类
方式2:实现Runnable接口
方式3:实现Callable接口 (jdk5.0新增)
方式4:使用线程池(jdk5.0新增)
...
第09章:随堂复习与企业真题(异常处理)
第09章:随堂复习与企业真题(异常处理)
一、随堂复习1. 异常的概述1234567891011121. 什么是异常?指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。2. 异常的抛出机制Java中把不同的异常用不同的类表示,一旦发生某种异常,就`创建该异常类型的对象`,并且抛出(throw)。然后程序员可以捕获(catch)到这个异常对象,并处理;如果没有捕获(catch)这个异常对象,那么这个异常对象将会导致程序终止。3. 如何对待异常 对于程序出现的异常,一般有两种解决方法:一是遇到错误就终止程序的运行。另一种方法是程序员在编写程序时, 就充分考虑到各种可能发生的异常和错误,极力预防和避免。实在无法避免的,要编写相应的代码进行异常的检测、 以及`异常的处理`,保证代码的`健壮性`。
2. 异常的体系结构及常见的异常1234567891011121314151617java.lang.Throwable:异常体系的根父类 |---java.lang.Error:错误。Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况 ...
第08章:随堂复习与企业真题(面向对象-高级)
第08章:随堂复习与企业真题(面向对象-高级)
一、随堂复习1. 关键字:static
static:静态的,随着类的加载而加载、执行。
static用来修饰:属性、方法、代码块、内部类
熟悉:static修饰的类变量、类方法与不使用static修饰的区别。
类变量:类的生命周期内,只有一个。被类的多个实例共享。
掌握:我们遇到属性或方法时,需要考虑是否声明为static的。
2. 单例模式(或单子模式)
经典的设计模式有23种
解决的问题:在整个软件系统中,只存在当前类的唯一实例。
实现方式:饿汉式、懒汉式、枚举类等
对比饿汉式和懒汉式
饿汉式:“立即加载”,线程安全的。
懒汉式:”延迟加载”,线程不安全。
需要会手写饿汉式和懒汉式
3. 理解main()方法
public static void main(String[] args){}
理解1:作为程序的入口;普通的静态方法
理解2:如何使用main()与控制台进行数据的交互。
命令行:java 类名 “Tom” “Jerry” “123”
4. 类的成员之四:代码块
分类:静态代码块、非静态代码块
使 ...
第07章:随堂复习与企业真题(面向对象-进阶)
第07章:随堂复习与企业真题(面向对象-进阶)
一、随堂复习1. this关键字的使用
this调用的结构:属性、方法;构造器
this调用属性或方法时,理解为:当前对象或当前正在创建的对象。
1234567public void setName(String name){ //当属性名和形参名同名时,必须使用this来区分 this.name = name;}public Person(String name){ this.name = name;}
this(形参列表)的方式,表示调用当前类中其他的重载的构造器。
2. 面向对象的特征二:继承性
继承性的好处
减少了代码的冗余,提高了复用性;
提高了扩展性
为多态的使用,提供了前提。
Java中继承性的特点
局限性:类的单继承性。后续我们通过类实现接口的方式,解决单继承的局限性。
支持多层继承,一个父类可以声明多个子类。
基础:class A extends B{}
理解:子类就获取了父类中声明的全部的属性、方法。可能受封装性的影响,不能直接调用。
3. 方法的重写(o ...
第06章:随堂复习与企业真题(面向对象-基础)
第06章:随堂复习与企业真题(面向对象-基础)
一、随堂复习1. (了解)面向过程 vs 面向对象
不管是面向过程、面向对象,都是程序设计的思路。
面向过程:以函数为基本单位,适合解决简单问题。比如:开车
面向对象:以类为基本单位,适合解决复杂问题。比如:造车
2. 类、对象
类:抽象的,概念上的定义
对象:具体的,类的一个一个的实例。
面向对象完成具体功能的操作的三步流程(非常重要)
123步骤1:创建类,并设计类的内部成员(属性、方法)步骤2:创建类的对象。比如:Phone p1 = new Phone();步骤3:通过对象,调用其内部声明的属性或方法,完成相关的功能
对象的内存解析
创建类的一个对象;创建类的多个对象;方法的调用的内存解析
Java中内存结构的划分
Java中内存结构划分为:虚拟机栈、堆、方法区;程序计数器、本地方法栈
虚拟机栈:以栈帧为基本单位,有入栈和出栈操作;每个栈帧入栈操作对应一个方法的执行;方法内的局部变量会存储在栈帧中。
堆空间:new 出来的结构(数组、对象):① 数组,数组的元素在堆中 ② 对象的成员变量在堆中。
方法区:加载的类的模板 ...
第05章:随堂复习与企业真题(数组)
第05章:随堂复习与企业真题(数组)
一、随堂复习1. 数组的概述
数组,就可以理解为多个数据的组合。
是程序中的容器:数组、集合框架(第12章,List、Set、Map)
数组存储的数据的特点:依次紧密排列的、有序的、可以重复的
此时的数组、集合框架都是在内存中对多个数据的存储。
数组的其它特点:一旦初始化,其长度就是确定的、不可更改的
2. 一维数组的使用(重要)123456789101112> 数组的声明和初始化 int[] arr = new int[10]; String[] arr1 = new String[]{"Tom","Jerry"};> 调用数组的指定元素:使用角标、索引、index >index从0开始!> 数组的属性:length,表示数组的长度> 数组的遍历> 数组元素的默认初始化值> 一维数组的内存解析(难) 前提:在main()中声明变量:int[] arr = new int[]{1,2,3}; > 虚拟机栈:main()作 ...
第04章:随堂复习与企业真题(IDEA安装与使用)
第04章:随堂复习与企业真题(IDEA安装与使用)
一、随堂复习1. IDEA的认识
IDEA(集成功能强大、符合人体工程学(设置人性化))
Eclipse
2. IDEA的下载、安装、卸载
卸载:使用控制面板进行卸载,注意删除c盘指定目录下的两个文件目录:jetbrains
下载:从官网进行下载:旗舰版(收费版)
安装:傻瓜式的安装–>注册
3. 工程等结构
工程、模块、包、类等概念。
掌握:如何创建工程、如何创建模块、如何导入其他项目中的模块、如何创建包、如何创建类、如何运行
了解:如何删除模块
4. 熟悉JDK的结构
5. 详细的设置略
6. 代码模板、快捷键、调试程序(debug)后续讲解。
二、企业真题1. 开发中你接触过的开发工具都有哪些?IDEA
2. 谈谈你对Eclipse和IDEA使用上的感受?Eclipse不够人性化。