摘要:什么是泛型 背景:Java推出泛型前,程序员可以构建一个元素类型为 Object 的集合,该集合能够存储任意的数据类型对象,而在使用该集合的过程中,需要程序员明确知道存储每个元素的数据类型,否则很容易引发ClassCastException异常。 package com.heima.demo;//泛
阅读全文
摘要:上一阶段小结 在实际操作中,取得类的信息的操作代码,并不会经常使用。 一定要熟悉java.lang.reflect包的作用,反射机制。 如何取得属性、方法、构造器的名称,修饰符等。 有了Class对象能做什么 创建类的对象:调用Class对象的newInstance()方法 类必须有一个无参数的构造
阅读全文
摘要:反射 静态/动态语言 动态语言 是一类在运行时可以改变其结构的语言:如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或者是其他结构上的变化,通俗点说就是在运行时代码可以根据某些条件改变自身结构。 主要动态语言:Object-C、C#、JavaScript、PHP、Python functi
阅读全文
摘要:什么是注解 Annotation是从JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别),它有检查和规范的作用。 可以被其他程序(比如 编译器)读取 Annotation的格式: 注解是以“@注释名”在代码中存在的,
阅读全文
摘要:信号灯 并发协作模型:生产者/消费者模式-->信号灯法(判断标志位) package com.kuang.hyperprocess;//测试生产者消费者问题2:信号灯法,通过标志位解决。public class TestPc2{ public static void main(String[] ar
阅读全文
摘要:线程协作 这是一个线程同步问题,生产者和消费者共享同一个资源,并且二者相互依赖互为条件。 对于生产者,没有生产产品前要通知消费者等待,生产了产品之后,需要马上通知消费者消费。 对于消费者,在消费之后要通知生产者已经完成消费,需要生产者供应新的消费品。 在生产者消费者问题中仅有 synchronize
阅读全文
摘要:死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,从而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形;某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的情况。 package com.kuang.thread;public class Dead
阅读全文
摘要:线程同步 用在多个线程操作同一个资源的时候 并发:同一个对象被多个线程同时操作 多个线程访问同一个对象(就叫并发),并且某些线程还想修改这个对象,这时候我们就需要线程同步。线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕下一个线程再使用。
阅读全文
摘要:线程五大状态 创建状态 阻塞状态 死亡状态 启动→ ↘↙ ↑待输入 ↖↗ 完成↑ 求资源→ 就绪状态 得资源→ 运行状态 中止↑ Thread t = new Thread()线程对象一旦创建就进入到了新生状态 当调用start()方法时线程立即进入就绪状态,但不意味着立即调度执行 CPU给了资源进
阅读全文
摘要:lambda表达式 希腊字母表中排序第十一位的字母,英文名Lambda。 为什么要使用lambda表达式 避免匿名内部类定义过多 可以让你的代码看起来很简洁 去掉了没有意义的代码,只留下核心的逻辑。 其实质属于函数式编程的概念,它出现就是为了简化代码。 (params) -> expression
阅读全文
摘要:静态代理模式 //静态代理模式总结/** 真实对象和代理对象都要实现同一个接口或是共同继承某个类 * 代理对象要代理真实角色 * 好处:代理对象可以做很多真实对象做不了的事情 * 真实对象专注做自己的事情 */public class StaticProxy{ public static void
阅读全文
摘要:实现Runnable 学习提示:查看JDK帮助文档 定义 MyRunnable 类实现 Runnable 接口 实现 run() 方法,编写线程执行体。 创建线程对象,调用 start() 方法启动线程。 public class StartThread implements Runnable{ @
阅读全文
摘要:方法调用和多线程 仅主线程一条执行路径 多条执行路径,主线程和子线程并行交替执行。 在操作系统中运行的程序就是进程,如QQ、播放器、游戏、IDE。 一个进程可以有多个线程,如视频中同时听声音,看图像,看弹幕等。 Process与Thread 程序是指令和数据的有序集合,其本身没有运行的含义,是一个静
阅读全文
摘要:异常机制 Java把异常当作对象来处理,并定义一个基类 java.lang.Throwable作为所有异常的超类(最顶层的类)。 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。 Error类对象由Java虚拟机生成并抛出,大多数错误与代码编写
阅读全文
摘要:面向对象 本质:以类的方式组织代码,以对象的形式封装数据。 从认识论的角度考虑是先有对象后有类。对象是对具体的事物,而类是抽象的,是对对象的抽象。 从代码运行的角度考虑是先有类后有对象,类是对象的模版。 方法回顾 静态方法:加static,可以直接类名点方法名调用Student.say();。 非静
阅读全文