上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页
摘要: 对象照镜子后可以得到的信息:某个类的属性、方法和构造器、某个类到底实现了哪些接口。对于每个类而言,JRE都为其保留一个不变的Class类型的对象。一个Class对象包含了特定某个结构(class/interface/enum/annotation/primitive type/void/)的有关信息 阅读全文
posted @ 2022-05-22 19:50 Epiphany8Z 阅读(27) 评论(0) 推荐(0) 编辑
摘要: Java反射: Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 Class C=Class.forName("java.lang.String") 加载完类之后,在堆内 阅读全文
posted @ 2022-05-22 19:18 Epiphany8Z 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构 主要动态语言:Object-C、C#、JavaScript、PHP、Python等 静态语言 与动态语言相对应的,运行 阅读全文
posted @ 2022-05-22 19:12 Epiphany8Z 阅读(53) 评论(0) 推荐(0) 编辑
摘要: Annotation是从JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别) 可以被其他程序(比如:编译器等)读取 Annotation的格式: 注解是以"@注释名"在代码中存在的﹐还可以添加一些参数值,例如:@S 阅读全文
posted @ 2022-05-21 22:29 Epiphany8Z 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用线程池中线程 阅读全文
posted @ 2022-05-20 19:09 Epiphany8Z 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 线程通信: 应用场景:生产者和消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库﹐消费者将仓库中产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止 如果仓库中放有产品,则消费者可以将产品取走消费﹐否则停止消费并等待,直到 阅读全文
posted @ 2022-05-20 18:48 Epiphany8Z 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 从JDK5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开 阅读全文
posted @ 2022-05-15 02:38 Epiphany8Z 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 死锁: 多个线程各自占有一些共享资源﹐并且互相等待其他线程占有的资源才能运行﹐而导致两个或者多个线程都在等待对方释放资源﹐都停止执行的情形﹒某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题. 产生死锁的四个必要条件: 互斥条件:一个资源每次只能被一个进程使用。 请求与保持条件: 阅读全文
posted @ 2022-05-15 02:30 Epiphany8Z 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 同步方法: 由于我们可以通过private关键字来保证数据对象只能被方法访问,所以我们只需要针对方法提出一套机制,这套机制就是synchronized关键字,它包括两种用法:synchronized方法和synchronized块. 同步方法:public synchronized void met 阅读全文
posted @ 2022-05-15 01:55 Epiphany8Z 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 1. 不安全买票 public class UnSafeBuyTicket { public static void main(String[] args) { BuyTicket buyTicket = new BuyTicket(); new Thread(buyTicket,"张三").sta 阅读全文
posted @ 2022-05-15 01:19 Epiphany8Z 阅读(26) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页