摘要: 静态VS 动态语言 动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。 主要动态语言:Object-C、C#、JavaScript、PHP、Python等。 静态语言 阅读全文
posted @ 2022-02-07 23:08 摘星丶仙 阅读(25) 评论(0) 推荐(0)
摘要: 使用@interface自定义注解时﹐自动继承了java.lang.annotation.Annotation接口 分析∶ @interface用来声明一个注解﹐格式:public @interface注解名{定义内容} 其中的每一个方法实际上是声明了一个配置参数. 方法的名称就是参数的名称. 返回 阅读全文
posted @ 2022-02-07 23:03 摘星丶仙 阅读(30) 评论(0) 推荐(0)
摘要: 元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型作说明. 这些类型和它们所支持的类在java.lang.annotation包中可以找到.( @Target , @Retention ,@Documented 阅读全文
posted @ 2022-02-07 22:52 摘星丶仙 阅读(27) 评论(0) 推荐(0)
摘要: Annotation是从JDK5.0开始引入的新技术. Annotation的作用: 不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别) 可以被其他程序(比如:编译器等)读取. Annotation的格式: 注解是以"@注释名"在代码中存在的﹐还可以添加一些参数值﹐例如: 阅读全文
posted @ 2022-02-07 22:40 摘星丶仙 阅读(39) 评论(0) 推荐(0)
摘要: 使用线程池 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用 阅读全文
posted @ 2022-02-07 22:34 摘星丶仙 阅读(27) 评论(0) 推荐(0)
摘要: package com.wang.multiThread.gaoji; //测试生产者消费者问题2:信号灯法:标志位解决 public class TestPC2 { public static void main(String[] args) { TV tv = new TV(); new Pla 阅读全文
posted @ 2022-02-07 22:23 摘星丶仙 阅读(34) 评论(0) 推荐(0)
摘要: package com.wang.multiThread.gaoji; //测试:生产者消费者模型-->利用缓冲区解决:管程法 //生产者,消费者,产品,缓冲区 public class TestPC { public static void main(String[] args) { SynCon 阅读全文
posted @ 2022-02-07 22:01 摘星丶仙 阅读(29) 评论(0) 推荐(0)
摘要: 线程通信 应用场景∶生产者和消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费. 如果仓库中没有产品,则生产者将产品放入仓库﹐否则停止生产并等待,直到仓库中的产品被消费者取走为止. 如果仓库中放有产品﹐则消费者可以将产品取走消费﹐否则停止消费并等待,直 阅读全文
posted @ 2022-02-07 21:45 摘星丶仙 阅读(28) 评论(0) 推荐(0)
摘要: Lock(锁) 从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Loc 阅读全文
posted @ 2022-02-07 21:37 摘星丶仙 阅读(196) 评论(0) 推荐(0)
摘要: 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题。 package com.wang.multiThread.thread; //死锁:多个线程互 阅读全文
posted @ 2022-02-07 21:27 摘星丶仙 阅读(24) 评论(0) 推荐(0)
摘要: package com.wang.multiThread.syn; import java.util.concurrent.CopyOnWriteArrayList; //测试JUC安全类型的集合 public class TestJUC { public static void main(Stri 阅读全文
posted @ 2022-02-07 21:10 摘星丶仙 阅读(18) 评论(0) 推荐(0)
摘要: 同步方法 由于我们可以通过private关键字来保证数据对象只能被方法访问,所以我们只需要针对方法提出一套机制,这套机制就是synchronized关键字,它包括两种用法:synchronized方法和synchronized 块. 同步方法: "public synchronized void m 阅读全文
posted @ 2022-02-07 19:55 摘星丶仙 阅读(32) 评论(0) 推荐(0)
摘要: package com.wang.multiThread.syn; //不安全的买票 //线程不安全,有负数 public class UnsafeBuyTicket { public static void main(String[] args) { BuyTicket station = new 阅读全文
posted @ 2022-02-07 19:45 摘星丶仙 阅读(25) 评论(0) 推荐(0)
摘要: 线程同步 多个线程操作同一个资源 并发 并发:同一个对象被多个线程同时操作 线程同步 现实生活中,我们会遇到”同一个资源,多个人都想使用”的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队,一个个来. 处理多线程问题时,多个线程访问同一个对象﹐并且某些线程还想修改这个对象﹒这时候 阅读全文
posted @ 2022-02-07 19:18 摘星丶仙 阅读(31) 评论(0) 推荐(0)
摘要: 守护(daemon)线程 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待.. package com.wang.multiThread.state; //测试守护线程 //上帝守护你 public class 阅读全文
posted @ 2022-02-07 19:09 摘星丶仙 阅读(25) 评论(0) 推荐(0)